繁体   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