我有两个分支:
-- rakib/test1
- file1, file2, file3, file4, filex, filey
-- rakib/test2
- file3, file4, file5, file6
我想将file1
中的file2
和rakib/test1
添加到rakib/test2
,但是git merge rakib/test1
操作具有以下不良影响:
file3, file4
filex, filey
中的rakib/test2
也许我缺少真正明显的东西。像merge
或add
中是否有实现此目标的选项?还是我必须使用其他东西?
谢谢。
[ EDIT ]我尝试了this question中的git merge --no-commit --no-ff rakib/test1
,它会自动合并:
rakib.amin@rakibamin-mac:~/AndroidAuto$ git merge --no-commit --no-ff rakib/test1
Performing inexact rename detection: 100% (4347/4347), done.
Auto-merging xxxxxxxxxx
CONFLICT (add/add): Merge conflict in xxxxxx
....
Automatic merge failed; fix conflicts and then commit the result.
[ EDIT ]重复问题要求我一次执行一个文件,我也对如何基于目录/正则表达式感兴趣,因为这是我的常规做法为旧项目制作PR(我几个月没有接触过的PR)。如果您知道在使用旧分支的代码发出“拉取请求”时创建干净分支的更好做法,请同时添加,我们将很高兴学习。
答案 0 :(得分:3)
您可以尝试使用以下命令来查找从另一个分支到您的分支的特定文件。在这里,不是合并分支,而是专门从源分支到分支仅签出一个文件。请注意,在这种情况下,您的本地文件将被源分支文件完全覆盖。
git checkout rakib/test2 # checkout your target branch
git checkout rakib/test1 -- file1 # checkout only one file from source branch
git checkout rakib/test1 -- file2 # checkout only one file from source branch
这也适用于目录。
git checkout rakib/test1 -- dirname