1 dev 分支 checkout 我的分支 A 2 A 分支合并到远端 dev 分支, 然后删除本地 和远端的 A 分支 3 更新本地 dev 分支, 本地 checkout 远端 B 分支, 同事这时说自己的本地的 B 分支远端 dev 分支有冲突,在解决冲突。 4 没注意到我的 zsh 中显示的是 sha 值, 不是分支名称, 接着开发, 把修改的文件 git add git pull,一直不成功, 折腾 30 分钟,放弃 5 本地 checkout 远端 dev 分支 ,git pull, 新开分支 C,重新写一次,git pull, 然后把分支 c 合并到 dev 分支上
看来以后开发 还是各开各的分支。
1
msg7086 2017-12-18 01:30:20 +08:00
是的。不愿意学 git 又不愿意用直观的客户端的,还是不要乱折腾的好。不小心的话分分钟丢代码。
|
2
Arnie97 2017-12-18 01:33:51 +08:00 via Android 1
应该 git checkout B,而不是 git checkout origin/B,否则会进入 detached HEAD mode
|
3
luojiyin87 OP @Arnie97 不太明白两者的区别
|
4
fan123199 2017-12-18 09:51:57 +08:00
看了一遍不是很明白,怎么会有 checkout 远端分支的操作
|
5
sagaxu 2017-12-18 09:52:45 +08:00 via Android 1
@luojiyin87 把 pro git 完整看一遍就明白了。至少搞明白 head, index, working tree 之间的区别,add/rm 和 merge 以及 rebase 的内部做的事情
|
6
SourceMan 2017-12-18 10:28:30 +08:00
所以我要求大家统一用 sourcetree
|
7
luojiyin87 OP 当 git fetch 命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。它只会获取数据然后
让你自己合并。然而,有一个命令叫作 git pull 在大多数情况下它的含义是一个 git fetch 紧接着一个 git merge 命令。如果有一个像之前章节中演示的设置好的跟踪分支,不管它是显式地设置还是通过 clone 或 checkout 命令为你创建的,git pull 都会查找当前分支所跟踪的服务器与分支,从服务器上抓取数据然后尝 试合并入那个远程分支。 由于 git pull 的魔法经常令人困惑所以通常单独显式地使用 fetch 与 merge 命令会更好一些 看了 pro git |