2014-06-22 85 views
-1

我已经有了解决git冲突的脚本,但是我仍然想要一个简单的方法来检查.git/rebase-merge目录。基本上,我正在寻找类似如下的脚本(这是给rebase-apply冲突):如何触发rebase-merge冲突?

#!/usr/bin/env bash 
set -eu 
rm -rf ~/_/1 
mkdir ~/_/1 
cd ~/_/1 
git init 
echo 1 >1 && git add 1 && git commit -m 1 
git checkout -b devel 
echo d1 >d1 && git add d1 && git commit -m d1 
echo d2 >m1 && git add m1 && git commit -m d2 
echo d3 >d4 && git add d3 && git commit -m d3 
git checkout master 
echo m1 >m1 && git add m1 && git commit -m m1 
echo m2 >m2 && git add m2 && git commit -m m2 
echo m3 >m3 && git add m3 && git commit -m m3 
git checkout devel 
git rebase master 

UPD理应有这样的互动变基时做挤压的提交。

回答

0

这是(在sed脚本交换最后两次提交):

#!/usr/bin/env bash 
set -eu 
rm -rf 1 
mkdir 1 
cd 1 
git init 
echo 1 >1 && git add 1 && git commit -m 1 
echo 2 >2 && git add 2 && git commit -m 2 
echo 3 >3 && git add 3 && git commit -m 3 
echo 4 >3 && git add 3 && git commit -m 4 
echo 5 >3 && git add 3 && git commit -m 5 
script=`mktemp` && trap 'rm "$script"' EXIT 
cat >"$script" <<\SCRIPT 
#!/usr/bin/env bash 
set -eu 
sed -i -rn ' 
    /^pick.*(4|5)$/!p 
    /^pick.*4$/{x;b} 
    /^pick.*5$/{p;x;p} 
' "$1" 
SCRIPT 
chmod u+x "$script" 
EDITOR="$script" git rebase -i HEAD~4 # GIT_SEQUENCE_EDITOR may be used in newer versions