1
jybox 2018-05-10 15:02:53 +08:00
> 在我 commitB 提交记录之后,同事提交了一个 commitA
你要看这个「之后」是时间上的先后还是存在父子关系 >照理来说没有修改文件 无法 commit git commit --allow-empty |
2
jasonyang9 2018-05-10 15:05:53 +08:00
可能是假个 Git。
``` git reset --hard commitB ``` 然后再试着玩玩 commit |
3
jasonyang9 2018-05-10 15:14:21 +08:00
怀疑是 force push,忘记 pull 先
|
4
mcfog 2018-05-10 15:15:56 +08:00
commitA 是不是一个 merge commit ? 可能是同事 merge 的时候用 GUI 的类似” Resolve Conflict With My Code “的功能,相当于自动删掉你的代码,并且 merge commit 由于有 2 个 parent,可能 GUI 上看不到这样的删除,手动选你的 commit 做比较,或者命令行里和 parent2 比较就能看到删除
|
6
mcfog 2018-05-10 15:25:07 +08:00
@6yong 如果是多人用同一条分支开发,建议团队统一用 fetch&rebase,命令行的话`git pull --rebase`,SourceTree 在 pull 的时候勾选 rebase instead of merge,乌龟直接就叫 fetch&rebase
这样冲突合并以后由于提交的不是 merge commit,还是普通的 commit,比较容易发现这种问题,另外大大减少 commit 的数量和 git log 的复杂程度 |
7
6yong OP |
8
6yong OP 感谢楼上各位建议
|
9
luoer 2018-05-10 16:18:33 +08:00
我觉得 commitA 的 parent 是 commitB 导致的
|