我有一個情況,我在一個特定的分支上的兩個不同的項目。我已完成項目「A」,承諾進行更改,並將更改推向遠程。這個變化「A」目前正在審查中,所以它尚未合併到分支機構。與此同時,我開始在同一分支的另一個項目上進行無關的更改,將此更改稱爲「B」。我已經完成編碼這個改變,我準備好承諾並推動這一點。但是我不確定這是怎麼做的,因爲變化「A」還沒有合併。我怎樣才能將這兩個變化「A」和「B」作爲不相互依賴的單獨變化來推進?推送多個不相關的提交到遠程git回購
回答
首先,您需要確定將成爲變更A和B的共同父項的提交。如您所描述的,這是提交A的父項。使用git log
在A之前查找提交的哈希。您只需鍵入提交哈希的前幾個字母/數字即可。讓我們假設它是「parent_commit」
現在籤這個承諾,我們會作爲一個新的分支的變革B.
git checkout parent_commit
下一頁頭使用從它創建一個新的分支,在那裏我們將提交B更改。
git checkout -b changeB
最後,使用git add
和git commit
對這一新分支提交您的變動b。完成後,請執行git push
以將您的提交B從獨立於更改A的新分支推送。或者,如果您已經提交更改B,則使用git cherry-pick commitB
,然後使用git pull
。
現在你將有你用一原分公司,並與B中的新的分支,共享歷史最高A.
關閉句話的父母:如果已經提交B和做一個分支吧(和有它簽出),你可以做在對方的回答中提到的底墊中的一行:
git rebase --onto master commit_A_sha
我有點理解你在說什麼,但是你能描述一下如何通過給它提供共同父項的提交ID來創建一個新的分支「common_parent」。我需要這樣做,因爲我的更改「A」已經提交。 – DarezGhost
我會編輯我的答案,以更多的步驟,一秒。 – shelhamer
本質上相同的結果Shelhamer的響應;但是您可以使用git rebase --onto
在單個命令中實現相同的結果。找到'old'父代的SHA標識(在你的例子中是A),以及新父代的SHA標識(例如master)。然後,假設你有問題(B)的分支簽出,運行:
git rebase --onto <new parent> <old parent>
這將本質上是「回升」的分支B,從一開始的一切,所以它是基於關閉主會移動。然後就像平常一樣git push
。
- 1. 通過webhook提交併推送到遠程git回購?
- 2. GIT:如何擠壓已被推送到遠程回購的多個提交?
- 3. Git - 推送到遠程回購
- 4. 無法推送在遠程git回購
- 5. 更新遠程Git回購推送
- 6. 撤消已被推送到遠程回購的提交
- 7. 將Subgit git回購推送到遠程GitHub回購/服務器
- 8. git推遠程回購
- 9. Git推送並提交遠程混淆?
- 10. 錯誤推到遠程的Git回購
- 11. 未能推到Git的遠程回購
- 12. GIT推送不向遠程提交提交
- 13. 當提交被推入遠程Git回購
- 14. Git:限制被推送到遠程回購站的文件
- 15. Git推送到一個部署到多個其他遠程存儲庫的遠程回購站
- 16. 返回一個被推送到遠程的提交
- 17. 無法將更改推送到遠程Git回購
- 18. Git - 通過單一整合提交推送到新的遠程
- 19. Git合併我已經推送到遠程原點的提交
- 20. 如何「撤消」推送到遠程Bonobo Git Server的提交?
- 21. 無法看到最近提交的遠程git回購
- 22. Git回購自動提交和推
- 23. Git,推送到遠程
- 24. 將兩個提交合併爲一個並推送至遠程回購
- 25. git pull推送提交到遠程分支
- 26. 「chunked」是否推向遠程Git回購?
- 27. 不能推到提交叉狀回購
- 28. 到位桶GIT中推提交而不克隆回購
- 29. 讓git永不推送單個提交?
- 30. git推送到遠程不接受
我編輯了我的答案。步驟'git checkout parent_commit'其中parent_commit =提交哈希檢查在該提交回購的狀態,並且下面的'git checkout -b commitB'從它創建新的分支。 – shelhamer