说我尝试合并后输入git status
:
# Unmerged paths:
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# added by them: myfile1.xhtml
# added by them: myfile2.xhtml
# added by them: myfile3.xhtml
...我知道我想为每个文件执行此操作:
git checkout --theirs myfile1.xhtml
git add myfile1.xhtml
......但其中有很多。我怎么能批量生产呢?
答案 0 :(得分:25)
我的案例的解决方案最终只是在目录路径中使用通配符,因为文件已分组:
git checkout --theirs directory_name/*
git add directory_name/*
答案 1 :(得分:2)
如果您的文件比一个目录更深(即有子目录),并且您希望有选择地递归选择目录的所有their
文件,请使用以下命令:
grep -lr '<<<<<<<' directory_name/ | xargs git checkout --theirs
git add directory_name/*
(来自this page)
答案 2 :(得分:2)
您可以使用以下命令检查未合并路径上的多个文件
git checkout --theirs `git status | grep "added by them:" | awk '{print $NF}'`
执行以下命令提交上述文件
git commit `git status | grep "added by them:" | awk '{print $NF}'`
答案 3 :(得分:0)
这将检出所有未合并的文件,而不指定目录:
git ls-files --unmerged | perl -n -e'/\t(.*)/ && print "$1\n"' | uniq | xargs -r git checkout --theirs --