我們要求我們班的學生使用github來保留所有課程項目代碼。每個學生創建他的回購。 (我想我應該創建回購和創建團隊,這是我的錯誤)。然後我在我的組織下分配了這些回購協議。從原始回購拉動更新
我認爲我可以簡單地將變化拉到學生更新其原始回購時。我認爲我理解拉隊的工作方式是錯誤的。
在下面的圖片中,我可以看到那個學生用一些新文件更新了他的回購,但是有什麼辦法可以簡單地更新我分叉的回購嗎?
我們要求我們班的學生使用github來保留所有課程項目代碼。每個學生創建他的回購。 (我想我應該創建回購和創建團隊,這是我的錯誤)。然後我在我的組織下分配了這些回購協議。從原始回購拉動更新
我認爲我可以簡單地將變化拉到學生更新其原始回購時。我認爲我理解拉隊的工作方式是錯誤的。
在下面的圖片中,我可以看到那個學生用一些新文件更新了他的回購,但是有什麼辦法可以簡單地更新我分叉的回購嗎?
假設你有一箇中央存儲庫,你需要更新你的分叉回購,簡單地add the source repository as a remote然後使用標準git pull。然後,您可以將這些更改推送到您的分叉回購。
有兩個選項可以輕鬆地更新你的叉:
合併上游回購到自己的...
# Add the remote, call it "upstream":
git remote add upstream git://github.com/whoever/whatever.git
# Make sure that you're on your master branch:
git checkout master
# Merge the upstream master branch to your master branch
git pull upstream master
# Now push your changes to your forked repository on github
git push origin master
另外,你可以用rebase來更新你的貨叉...
# Add the remote, call it "upstream":
git remote add upstream git://github.com/whoever/whatever.git
# Fetch all the branches of that remote into remote-tracking branches,
# such as upstream/master:
git fetch upstream
# Make sure that you're on your master branch:
git checkout master
# Rewrite your master branch so that any commits of yours that
# aren't already in upstream/master are replayed on top of that
# other branch:
git rebase upstream/master
# Now push your changes to your forked repo on github...
git push origin master
Github上有詳細的文檔上與分叉庫工作:Github: Fork a Repo
的看起來不錯,雖然有些步驟和文本可能是不必要的。 'git pull source'應該足夠了,取指就會自動完成。 'git push'應該推送到您的倉庫(假設它正常檢出或啓用'tracking'設置) – harningt 2012-03-20 20:35:33
您描述選項1 ...如果您在叉上完成了更改,則必須使用選項2爲了不丟失你的提交 – klaustopher 2012-03-20 21:29:02
@klaustopher,選項1不會覆蓋你的提交,除非有傳入的工作會改變它。 (在這種情況下,你必須解決一些衝突)這取決於你想要做什麼。這兩個選項都是安全的,但如果您希望將提交應用於傳入提交之上,則可以使用rebase。關於該主題的更深入的討論(問答):http://stackoverflow.com/questions/457927/git-workflow-and-rebase-vs-merge-questions – 2012-03-20 21:39:22
可能重複[?如何更新GitHub的分叉庫(http://stackoverflow.com/questions/7244321/how-to-update- github-fork-repository) – Nate 2012-03-20 19:55:07