2012-03-20 71 views
0

我們要求我們班的學生使用github來保留所有課程項目代碼。每個學生創建他的回購。 (我想我應該創建回購和創建團隊,這是我的錯誤)。然後我在我的組織下分配了這些回購協議。從原始回購拉動更新

我認爲我可以簡單地將變化拉到學生更新其原始回購時。我認爲我理解拉隊的工作方式是錯誤的。

在下面的圖片中,我可以看到那個學生用一些新文件更新了他的回購,但是有什麼辦法可以簡單地更新我分叉的回購嗎?

enter image description here

+0

可能重複[?如何更新GitHub的分叉庫(http://stackoverflow.com/questions/7244321/how-to-update- github-fork-repository) – Nate 2012-03-20 19:55:07

回答

9

假設你有一箇中央存儲庫,你需要更新你的分叉回購,簡單地add the source repository as a remote然後使用標準git pull。然後,您可以將這些更改推送到您的分叉回購。

有兩個選項可以輕鬆地更新你的叉:

選項1

合併上游回購到自己的...

# 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 

選項2:

另外,你可以用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

+0

看起來不錯,雖然有些步驟和文本可能是不必要的。 'git pull source'應該足夠了,取指就會自動完成。 'git push'應該推送到您的倉庫(假設它正常檢出或啓用'tracking'設置) – harningt 2012-03-20 20:35:33

+0

您描述選項1 ...如果您在叉上完成了更改,則必須使用選項2爲了不丟失你的提交 – klaustopher 2012-03-20 21:29:02

+0

@klaustopher,選項1不會覆蓋你的提交,除非有傳入的工作會改變它。 (在這種情況下,你必須解決一些衝突)這取決於你想要做什麼。這兩個選項都是安全的,但如果您希望將提交應用於傳入提交之上,則可以使用rebase。關於該主題的更深入的討論(問答):http://stackoverflow.com/questions/457927/git-workflow-and-rebase-vs-merge-questions – 2012-03-20 21:39:22

相關問題