[英]How can I merge a specific file from one branch into another branch in Git
[英]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.txt的branchA
中,並且您碰巧知道branchB
包含文件B.txt並且您希望該文件的版本存在於branchA
中。 然后說
git checkout branchB -- B.txt
Presto,文件出現在工作樹中。 當然,它現在是一個“新”文件,就像任何其他“新”文件一樣; 在您add
並commit
(在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.