簡體   English   中英

如何將特定文件從一個分支合並到另一個分支

[英]How to merge specific file from one branch to another branch

我在分支 B 中有兩個文件,名為 ComfirmPhone.java 和 DesignSignIn.java。 我只想在分支A中合並這兩個代碼。 這是我的問題。 ComfirmPhone.java 是一個全新的文件,branchA 不存在,而 DesignSignIn.java 已經存在於 branchA 中。 在 DesingSignIn.java 分支 B 中添加了更多代碼,希望合並分支 A 中的代碼。

這是我嘗試過的命令(我現在在 branchA 中):

 git checkout --patch branchB ConfirmPhone.java 

但是,該命令未檢測到 ConfirmPhone.java。 我也試過:

 git merge --no-ff --no-commit branchB

它確實合並,但沒有指定我正在尋找的兩個文件(ComfirmPhone.java 和 DesignSignIn.java)。

branchB 已經提交,並且兩個分支都是最新的(git pull)。 如果有人可以向我展示如何將僅有的兩個文件合並到分支 A 的命令,那將很有幫助

每個提交都是您所有文件的集合。 任何提交中的任何文件都可以復制到工作樹中。 分支名稱只是提交的名稱。

文件不存在的情況因此很簡單。 假設您在沒有文件B.txtbranchA中,並且您碰巧知道branchB包含文件B.txt並且您希望該文件的版本存在於branchA中。 然后說

git checkout branchB -- B.txt

Presto,文件出現在工作樹中。 當然,它現在是一個“新”文件,就像任何其他“新”文件一樣; 在您addcommit (在branchA中)之前,它不是branchA的“一部分”。

文件確實存在於兩個分支中的情況類似,但現在如果您不想完全覆蓋工作樹版本,則需要--merge簽出。 因此,假設您在branchA中,其中有一個文件A.txt 這意味着工作樹還包含該版本的文件A.txt 假設您碰巧知道branchB還包含一個文件A.txt並且您想將該文件版本合並到該文件版本中。 然后說

git checkout --merge branchB -- A.txt

結果是A.txt的兩個版本在工作樹中合並,如果它們可以自動合並的話。 如果它們不能自動合並,則留下一個帶有合並沖突標記的A.txt版本; 編輯它以解決沖突。 無論哪種方式,現在add文件,並commit .

暫無
暫無

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

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