除了截图,我无法解释这个:
这对世界来说意味着什么? feat-zoo
分支似乎无处可去。
编辑:
根据请求,用于生成此脚本的脚本。运行脚本,查看图表,然后重新开始,删除sleep 2
调用,您将获得与上面的屏幕截图相匹配的不同结果。
#!/bin/sh
[ -d .git ] || git init
ACT="rebase"
echo "blah blah" > file1.txt
echo "another file" > file2.txt
git add file1.txt file2.txt
git commit -m "MASTER C1"
sleep 2
echo "new line here" >> file1.txt
echo "new file" > file3.txt
git add file3.txt
git commit -a -m "MASTER C2"
sleep 2
echo "bug fixes" >> file1.txt
echo "bug fixes" >> file3.txt
git commit -a -m "MASTER C3"
sleep 2
git branch feat-zoo
echo "MAGICAL" >> file2.txt
git commit -am "MASTER C4"
sleep 2
git checkout feat-zoo
git $ACT master
echo "new end" >> file3.txt
git commit -am "BR C1"
sleep 2
echo "**END" >> file2.txt
git commit -am "BR C2"
sleep 2
git checkout master
sed -i 's/blah blah/WHEEE/' file1.txt
git commit -am "MASTER C5"
sleep 2
git checkout feat-zoo
git $ACT master
echo "FINAL" >> file1.txt
git commit -am "BR C3"
sleep 2
git checkout master
echo "Done" > signoff
git add signoff
git commit -m "MASTER C6"
sleep 2
git merge feat-zoo
答案 0 :(得分:2)
当我运行该脚本时(对sed
命令进行一次更改,添加-e
,以便它在我的框中执行正确的操作,并将-m "Merge branch 'feat-zoo'"
添加到合并中,所以我不必手动完成编辑会话),无论是否有“睡眠2”,它都能正常工作。
$ git log --graph --decorate --oneline --all
* 5847d16 (HEAD, master) Merge branch 'feat-zoo'
|\
| * 42eb472 (feat-zoo) BR C3
| * 28f0d24 BR C2
| * 967e122 BR C1
* | 136b44a MASTER C6
|/
* 437cf27 MASTER C5
* 4c0edac MASTER C4
* 6dbf80e MASTER C3
* 95c61ec MASTER C2
* 597d9ba MASTER C1
如果我创建一个孤立分支并将其合并,那也可以。
您使用哪种观看者查看这些内容?我怀疑它正在尝试绘制图形,并使用提交时间戳放置提交,并且因为BR C1
的父级是MASTER C5
而感到困惑,但它已经在上面绘制了MASTER C5
,所以它没有“下方”BR C1
以连接下一行。当用完绘图时它就会停止绘制,给你看到的输出。尝试上面的git log
命令;我想它会告诉你我得到的东西。
(换句话说,它看起来像是查看器中的错误,而不是git。)
答案 1 :(得分:1)
哇。这意味着,当您运行shell脚本来模拟git操作时,请在提交之间插入一些sleep 2
语句。 :)显然所有这些都跑得太快,以至于混淆了git的地狱。