我想在一个git库中的两个任意文件上利用git-merge算法。下面是我的工作目录:
folder/
file1
file2file1和file2很相似,但我想看看git如何将它们合并,就像它们是同一文件的不同版本一样。换句话说,我想要这样的东西:
git merge-files file1 file2 > merge_of_file1_file2有没有办法做到这一点?
发布于 2018-07-08 14:47:32
为了补充manojlds的答案,这里有一个很好的、完整的函数,您可以将它添加到.bashrc中来完成这项工作。它的好处是在“合并冲突”块中正确识别两个文件的名称。
merge() {
local ext
[ $# -ne 2 ] && echo "Error: Need exactly two args." && return 1
[[ ! -r $1 || ! -r $2 ]] && echo "Error: One of the files is not readable." && return 1
if [[ ${1##*/} =~ '.' || ${2##*/} =~ '.' ]]; then
[ ${1##*.} != ${2##*.} ] && echo "Error: Files must have same extension." && return 1
ext=.${1##*.}
fi
touch tmp$ext # use empty file as the 'root' of the merge
cp $1 backup$ext
git merge-file $1 tmp$ext $2 # will write to file 1
mv $1 merge$ext
mv backup$ext $1
rm tmp$ext
echo "Files merged into \"merge$ext\"."
}https://stackoverflow.com/questions/9122948
复制相似问题