簡體   English   中英

如何在git中將文件歷史記錄從一個分支合並到另一個分支?

[英]How can I merge a file history from a branch to another in git?

因此,首先檢查下圖,我試圖代表我的需求 git情況

綠色方塊是提交,黃色,棕色和紅色是這些提交的一部分(在我的情況下,具體來說是提交中分布的3個文件)。

對開發人員沒有進一步的更改

實際發生的情況:我在一個分支上工作,發現一些更改實際上對dev分支有用,而實際上與dev2分支dev2 所以我希望在dev分支上進行這些更改。

git checkout
git merge

我實際上希望修改脫離dev2分支並進入dev分支,所以如果我執行checkout> commit,則修改將在兩個分支上進行,這就是為什么我不願意這樣做。

這有可能嗎? 我該怎么做?

您可以使用git log來找到應該在dev(紅色方塊)中的最后一次提交的sha ,然后轉到master分支checkout master然后說git merge SHA ,其中紅色方塊的SHA。 這在git中很常見。 分叉的回購經常發生,合並到原始版本的更新中。

請記住,盡管這可以獲取全部提交,但是我不確定這是否是您想要的。 如果您只想從這些提交中獲取一些文件,則要困難得多。 那你應該看看這個問題

是的,這是可能的。 您需要做三件事:

  • 簽出原始分支: git checkout dev
  • 應用所需的提交: git cherry-pick yellowgit cherry-pick browngit cherry-pick red
  • dev2 devgit checkout dev2git rebase --onto dev

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM