新鸟入职,请教老哥们三个关于 git 的问题!感谢!

2019-06-30 12:01:03 +08:00
 WhoCanBeRich
三个问题哈~
1、lz 平时写项目写项目都喜欢用 rebase,因为这样到时候追 bug 的时候可以将多条 commit 的记录翻出来修,但是公司比较推荐用 merge,这样别人看你的提交只会是一条 commit,比较简洁。
2、刚入职我操作公司的 git 总是会出现一些问题,总让自己的 mentor 帮忙解决非常不好意思,顺便也问一下老哥们我下面的这样的操作 git 的方式 OK 吗,会不会存在什么潜在的问题?
-->[trunk_myself](我自己的分支):
git fetch
git rebase origin/company_trunk
[出现冲突:开始修冲突]
git add 冲突文件
git rebase --continue
git add .
git commit -m 'xxx'
-->[company_trunk](公司的分支):
git co company_trunk
git rebase trunk_myself
git st
[Your branch is ahead of 'origin/company_trunk'
[编译,防止合并代码的时候有人提交新的代码]
git fetch
git rebase
[查看 sourceTree 节点是否正常]
git push
3、如果用 merge 的话,直接把上面的'rebase'替换成'merge'会不会出现什么问题呢?
2086 次点击
所在节点    问与答
23 条回复
Xbluer
2019-07-08 19:35:13 +08:00
@leo108 #13 company_trunk rebase 自己的分支不是问题。你再看看前面的操作,楼主自己分支 也 rebase origin/company_trunk 了。只要 push 之前没有其他同事 push 更新 origin/company_trunk 就好了。即便有人更新了,直接在 company_trunk 分支执行 pull --rebase 并解决冲突就好了。
leo108
2019-07-08 20:52:33 +08:00
@Xbluer #21
你看我在 #16 的回复,「你的方法可能在大多数时候是可行的,但不代表这是一个正确的方法」,你都知道 pull --rebase 这个命令了,为何不直接在自己的分支 rebase 一下 company_trunk 而是要绕那么大一圈。
Xbluer
2019-07-08 20:58:55 +08:00
@leo108 #22 我只是按照楼主的现状说明过程的。实践中并不需要一个所谓的自己的分支,直接本地 company_trunk
分支开发就好了,并设置跟踪 origin/company_trunk。

你引用你自己的那句话并不正确,一直是可行的。问题其实就是本地分支落后远端分支,不管 rebase 和 merge 总是一直都是可行的。至于解决冲突耗费时间长短,那只能说明操作习惯有问题,应该及时和远端分支同步。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/578688

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX