一個git回購我現在有GitHub上的私人資料庫,我想公開。但是,一些初始提交包含我不想公開的信息(硬編碼創意等)。複製沒有歷史
是什麼力量讓最新的公開承諾(我並不真的需要或想要在公共倉庫以前提交),而不包括一些或全部提交歷史的最簡單的途徑?
一個git回購我現在有GitHub上的私人資料庫,我想公開。但是,一些初始提交包含我不想公開的信息(硬編碼創意等)。複製沒有歷史
是什麼力量讓最新的公開承諾(我並不真的需要或想要在公共倉庫以前提交),而不包括一些或全部提交歷史的最簡單的途徑?
可以限制歷史的深度,同時cloning:
--depth <depth>
Create a shallow clone with a history truncated to the specified
number of revisions.
使用這個,如果你想有限的歷史,但仍然有一些。
的文件夾,INIT再做一個git給這個人一個cookie(以紀念這一回答正確的形式):) – FateNuller 2016-08-08 18:03:41
使用以下命令:
git clone --depth <depth> -b <branch> <repo_url>
其中:
depth
是要包括提交的量。也就是說,如果你只是想在最新提交使用git clone --depth 1
branch
是要從克隆遠程分支的名字。也就是說,如果你想從master
分支中的最後3個提交使用git clone --depth 3 -b master
repo_url
是你的倉庫這實際上是比戈蒂埃而更多的是同樣的答案完整並舉例說明。 – 2017-08-05 23:24:11
確實如此。有時候這個例子就是需要的。對我來說,寫出來是什麼澄清了問題 – 2017-08-07 13:32:35
#!/bin/bash
set -e
# Settings
user=xxx
pass=xxx
dir=xxx
repo_src=xxx
repo_trg=xxx
src_branch=xxx
repo_base_url=https://$user:[email protected]/$user
repo_src_url=$repo_base_url/$repo_src.git
repo_trg_url=$repo_base_url/$repo_trg.git
echo "Clone Source..."
git clone --depth 1 -b $src_branch $repo_src_url $dir
echo "CD"
cd ./$dir
echo "Remove GIT"
rm -rf .git
echo "Init GIT"
git init
git add .
git commit -m "Initial Commit"
git remote add origin $repo_trg_url
echo "Push..."
git push -u origin master
了'--depth 1'在這種情況下不必要的,因爲歷史上也與'室射頻.git' – rayphi 2017-06-01 13:17:51
我想我會做這樣的刪除:'混帳clone --depth 1 -b $ src_branch $ repo_src_url $ dir && cd ./$dir && git commit --amend --author「Some One <[email protected]>」-m「Initial Commit」&& git遠程設置網址起源$ repo_trg_url && 混帳推-u起源master'的 – rayphi 2017-06-01 13:24:58
@rayphi是的'--depth 1'是不必要的,但它也是無害的,這樣可以節省一點的網絡帶寬(沒有點取歷史,你」反正要刪除) – 2018-02-16 10:35:35
你爲什麼不只是創建一個新的存儲庫的網址是什麼? – Stephan 2015-03-31 12:38:59
@Stephan我很好地創建了一個新的存儲庫,但是如何從舊的存儲庫中獲取最新狀態並將其提交給新的? – Rafe 2015-03-31 12:43:05
您可以直接刪除。git的文件夾,你的來源是 – Stephan 2015-03-31 12:43:48