簡體   English   中英

合並分支中特定的更改,從提交到母版

[英]Merge specific changes from a branch from a commit to master

如果我有一個分支並且已提交2個文件中的更改。
如果我決定合並分支但只更改一個文件,那么我將如何在git做到這一點?
還是應該在master分支中手動進行更改?

您可以通過不同的方式來做到這一點。 由於您只想應用部分提交,因此純合並可能不是最佳方法。 我想到的最簡單的方法是,從另一個分支的提交中檢出文件並將其提交到當前分支中:

git checkout <commit> <path to file>
git add <path to file>
git commit

請注意,這將有效地另一個分支中的一個覆蓋當前分支/工作副本中的文件。 因此,沒有合並完成!

另一種可能的解決辦法是簽在您想要的變化將被應用的分支,然后摘櫻桃從另一分支的單提交到你的工作副本和索引和索引不應 COMMITED,即刪除該文件:

git checkout <branch>
git cherry-pick --no-commit <hash of commit>
git reset HEAD <file which should not be commited>
# resolve any conflicts
git commit

這比較復雜,但是它將其他文件合並到當前分支中。

像往常一樣合並分支,並修改上一次提交,取消選擇目標文件的更改。 或者,要求合並在提交之前停止,然后僅暫存所需的文件。

使用git gui非常簡單。

不要忘記在合並提交中注意您所做的事情。

git merge mybranch
git gui

選擇“修改上一次提交”按鈕,然后在暫存面板中單擊不需要的文件的圖標。 重寫消息並點擊提交。

如果您只想進行新的提交而不在歷史記錄中顯示合並,請執行以下操作,只是從

git merge --squash mybranch

暫無
暫無

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

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