我不是Git专家,但在我的情况下,我无法理解git rebase
的奇怪行为:
1.使用git init
创建一个本地空的git reposiory
2.使用以下内容创建一个简单的文本文件 file.txt :
111
222
333
3。使用git add file.txt
将 file.txt 添加到索引,并使用git commit
提交更改
4.使用git checkout -b feature
来切换到新分支
5.更改 file.txt ,现在它具有以下内容:
111
333
6。使用git add file.txt
将 file.txt 添加到索引,并使用git commit
提交更改
7.更改 file.txt ,现在它具有以下内容:
111
444
333
8。使用git add file.txt
将 file.txt 添加到索引,并使用git commit
提交更改
9.使用git checkout master切换到master分支;现在 file.txt 包含以下内容:
111
222
333
10。更改 file.txt ,现在它具有以下内容:
111
777
222
333
11。使用git add file.txt
将 file.txt 添加到索引,并使用git commit
提交更改
12.更改 file.txt ,现在它具有以下内容:
111
777
222
888
333
13。使用git add file.txt
将 file.txt 添加到索引,并使用git commit
提交更改
14.使用git checkout功能切换到功能分支;现在 file.txt 包含以下内容:
111
444
333
15。使用git rebase master
将rebase 功能分支到主分支;现在我在 file.txt 中存在冲突,该文件包含以下内容:
111
<<<<<<< HEAD
777
222
888
=======
>>>>>>> 2
333
而非预期:
111
<<<<<<< HEAD
777
222
888
=======
444
>>>>>>> 2
333
所以我的问题是:为什么文字444
会从 file.txt 中消失?可以吗?
答案 0 :(得分:3)
执行git rebase master
时会发生这种情况:
master
示例中的冲突发生在fork point之后的feature
中的第一次提交中。这是您使用222
删除该行的提交。
所以我的问题是:为什么文本444从file.txt中消失了?可以吗?
它没有消失。 它还没有出现。解决了这个冲突后rebase --continue
,它将在下次提交时出现。