[英]How can I copy many files, defined by extension, in many folders, from one remote repository branch to another?
看来,我不仅更改了远程分支上的后端文件,而且还更改了许多前端文件。 现在它们在我的分支中已更改,我无法将其合并到master分支。
如何将扩展名选择的文件从一个分支复制到另一个分支?
Git不允许分支的部分合并。 也就是说,合并时,您需要合并所有信息-您不能忽略某些文件而包括其他文件...(可以,但是,这是非常糟糕的做法,只是假装您进行了合并)。
也就是说,有几种方法可以进行。
您可以忽略分支位于远程的事实-在git分支中,分支是分支,无论它们在哪里。 git pull
/ fetch
将下载您的远程更改,以便您可以进行更改。
这涉及在功能分支中进行所有更改,仅添加具有扩展名的更改,然后对master
更改进行大量提交:
git checkout feature
git reset master..feature
重置为master
和feature
的交集 git add -- *.txt
添加所有.txt
文件 git commit
git reset --hard
很难清除不需要的文件) git merge
git rebase -i
以交互方式将每个提交分为2个 -例如编辑.txt
文件的提交和不编辑.txt
文件的提交 。 git cherry-pick
仅将想要的提交带入新分支,例如, feature-txt-files-only
称为feature-txt-files-only
。 master
分支合并。 我将举一个.py
文件的例子。 尝试进行合并,然后
find -name '*.py' -print0|xargs -0 git checkout --ours --
要么
find -name '*.py' -print0|xargs -0 git checkout --theirs --
“我们的”是指本地分支,“他们的”是指远程分支(重新定级时,交换其含义时除外)。
对于要用来掩盖其他更改的文件类型,您可以根据需要多次执行此操作。
然后以正常方式完成合并。
唯一的问题是,这对于在一个分支上已删除但在另一个分支上已更改的文件可能无法可靠地工作。 因此,请注意此类情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.