我已经有一个用于解决git
冲突的脚本,但是我仍然想要一种简单的方法来检查.git/rebase-merge
目录。基本上我正在寻找如下脚本(这个是rebase-apply
冲突):
#!/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 据说在进行交互式rebase时需要进行压缩提交。
答案 0 :(得分: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