所有你想要做的就是創建另一個克隆。除非你有充分的理由不這樣做,否則它將複製所有的歷史記錄(不用擔心,它通常是svn repo大小的10%,並且通常比壓縮後的工作目錄小10%)。
創建第一個回購:
mkdir myrepo
cd !$
git init
echo one > one.txt
git add -A
git commit "my first commit"
git tag v1.0
echo two > two.txt
git add -A
git commit "my second commit"
git tag v2.0
創建一個模擬中央回購:
cd ..
mkdir centralrepo
cd !$
git init --bare # don't want to have a working directory here
cd -
創建一個模擬的同事回購:
mkdir coworkerrepo
cd !$
git init
告訴你的回購,其中中央回購協議
cd ../myrepo
git remote add origin ../centralrepo
告訴你的同事的回購,其中中央回購是
cd ../coworkerrepo
git remote add origin ../centralrepo
發佈您的工作到中央回購:
cd - # useful shortcut for flipping between two dirs (works for git checkout and branches too)
git push origin master
飛架主參考和內提交,但不是標籤。對於標籤,這樣做:
git push origin v1.0
git push origin v2.0
或只是把在你的回購所有標籤與
git push origin --tags
您現在可以檢查遠程具有這些標記,並引用與
git remote -v show origin
切換到你的同事的存儲庫,並獲得這些變化:
cd -
git fetch # will update tracking branches and tags
git merge origin/master # fast-forward master branch to what the remote tracking branch is pointing to
兩個操作fetch
和merge
與pull
同時完成。所以你可以這樣做,而不是
git pull origin master
因此,標籤獲取。這意味着當你意識到拉是取和合並(或者如果你想要的話)。
您好像是從SVN背景來的。忘掉你所知道的一切,從頭開始。 – Daenyth
我根本沒有背景。我只是簡單地複製我的教師在學校機器上做的事情,以便通過推送標籤提交來檢索我提交的作業。它們似乎在他們的機器上工作得很好。在家複製似乎產生不同的結果。 – ImpGuard