場景:我分叉了一個github項目並開始對它進行處理(在將原始項目添加爲遠程時稱爲「上游」)。在使用我的fork時,上游項目發佈了許多版本:v1.3-stable,v1.4-stable,v1.5-experimental等。現在我需要將上游提交合併到我的主分支,但僅限於特定發行版,例如發行版v1.4-stable。這種情況下最好的工作流程是什麼?Git合併提交來自特定的上游版本
回答
假設V1.4穩定的遙控器上的一個標籤,你可以通過包含您的工作的分支調用此將這些更改應用到本地回購:
git fetch
git rebase --onto $(git rev-list -n1 v1.4-stable)
版本列表找到ID從v1.4-stable開始的最新提交,之後這些提交被重播,你自己的工作放在最上面。如果遙控器在分叉後發生了顯着變化,將會發生衝突。
如果V1.4穩定是遙控器上的一個分支,你反而會想要做
git pull --rebase origin v1.4-stable
爲什麼不合並分支或標籤?爲什麼這個rebase?這只是合併跟蹤。 – jszakmeister
我可能會在這裏回答我自己的問題,但我認爲這是因爲您認爲OP正在尋求將他們的工作整合到上游......在這種情況下,rebase是有道理的。 – jszakmeister
首先確保您在v1.5-experimental
的專用分支中工作。
其次,reset你的主分支上行/ V1.4(確保你沒有任何正在進行的工作:一個硬復位將消滅他們)
git fetch upstream
git checkout master
git reset --hard upstream/v1.4
git push -f
最後,衍合V1。在主控制器上的5分支分支(即在v1.4之上)
第一個,activate rerere(如果您之後必須做多個rebase:這會記錄您在過去如何解決類似衝突)
git config --global rerere.enabled true
然後變基(重播你從你的分支上提交V1.4的頂部):
git checkout v1.5-experimental
git rebase master
git push -f
的衝突,你將不得不解決,應該只有兩個感興趣的上游和完成併發修改衝突(你的實驗分支)。
你正在告訴某人在其repo上運行'git reset --hard'。至少警告可能造成的後果...... –
@HaraldNordgren謝謝你。我相應地編輯了我的答案。 – VonC
是什麼讓你覺得他們沒有工作進展?這個問題的重點似乎是重新將個人工作與偏遠地區的變化結合起來。 git重置似乎是徹頭徹尾的破壞性。 –
這假定v1.4-stable
是一個提交指示釋放,在主分支中的標籤。 結帳主拉的最新變化:
git checkout master
git pull --rebase
其次,重訂對這次提交頂端的開發分支。確保你的工作樹是乾淨的,你的頭指向您的開發分支:
git rebase v.14-stable
這個命令將改變你的分支的基地,包括標籤的v.1.4-stable
提交,並在它之前所有其他版本。
底墊之前:
o---o---v.1.2---v.1.3---v.1.4---v.1.5-exp master
\
o---o---o dev
後:
o---o---v.1.2---v.1.3---v.1.4---v.1.5-exp master
\
o---o---o dev
git pull --rebase origin v1.4-stable
- 1. git - 合併時跳過特定提交
- 2. Git Log =顯示來自特定修訂版的合併版本號
- 3. (git):如何從上游分支提交特定提交?
- 4. 沒有自動提交的git合併
- 5. Git標記分支特定的提交併防止合併
- 6. 如何覆蓋上游版本未合併的git結帳
- 7. 的Git合併提交
- 8. 的Git版本號從TeamCity的8.1中特定分支提交
- 9. Git:如何合併上游更改而不會導致合併提交?
- 10. 合併來自上游Git回購的新變更
- 11. 如何將我的提交與上游更改合併回來?
- 12. git簽出特定提交前的版本
- 13. 如何合併特定的提交從主到git標記?
- 14. 從一些特定的提交合並兩個git存儲庫
- 15. 查找所有符合特定「提交次數」的git提交
- 16. Git合併上游分支
- 17. Git合併細節提交
- 18. Git合併提交丟失
- 19. 強制git合併提交
- 20. Git合併跳過提交
- 21. Git合併分支提交
- 22. Git在合併之前合併提交
- 23. SVN提交和合並舊版本
- 24. Git:來自特定提交的淺拷貝
- 25. Git-如何在TeamCity中籤出特定版本(提交哈希)?
- 26. 子樹與特定的合併提交
- 27. 合併到一個特定的提交
- 28. git提交併推送本地git文件夾,無需合併
- 29. 自上次合併後提交顯示提交,包括合併提交
- 30. git撤消合併提交另一個合併提交
你能提供一個鏈接到GitHub的回購? –