请教下如何解决 git push 冲突的问题

2015-12-10 15:54:18 +08:00
 tedd
git 用得很浅,平时就是 clone, pull, push, merge, revert...其他都没有用到过...汗 -_-!!!

最近我们开发三个人都涉及到改同一个文件不同的地方( JS 函数),每次动手之前都会先 pull 一下,改完就 push 到 master ,如果我还没有 push ,另外一位快一步先 merge 了改动,多半我的 push 会由于冲突失败,我就只有将我的改动拷贝出来,通过 checkout 将我的改动抹掉,然后 pull 下来最新的代码,然后将我的改动拷贝回去再 push...这样很蠢...

请问 git 达人们,如果我们都改的是同一文件的不同位置,那通过什么方法能规避冲突让 push 能成功呢?我刚才搜索了下,好像有个 rebase 命令,不知道是否是可以应对我当前的情况的,我也去深入了解下。
3263 次点击
所在节点    git
7 条回复
FrankFang128
2015-12-10 15:57:35 +08:00
百度:阮一峰 diff
uuspider
2015-12-10 16:02:30 +08:00
写了这么多字,这点时间何不 google ?
cxbig
2015-12-10 16:03:01 +08:00
怎么会有这么高强度在一个文件上工作,还在同一个 branch ?显然工作安排上有问题啊。
1. 首先把功能有效拆分到多个文件,再用 Gulp 之类的工具合并。
2. 然后每个人的工作用不同的 branch 分别提交,最后功能点完成再合并到上级 branch 。 conflict 统一一次性解决。
cxbig
2015-12-10 16:07:39 +08:00
@tedd 另外你 pull 的时候遇到的冲突文件不多的话,用 stash 。
firefox12
2015-12-10 16:29:41 +08:00
就是用 git pull --rebase

传不上去 就 git pull --rebase 然后会把最新的版本拿下来,提示 会有很多冲突 改好上传。 rebase 的另一个好处是 单根 无旁系,这样可以退到任何一个节点,如果你用 merge 的方法 其实功能的上线是并行的。
msg7086
2015-12-10 21:48:07 +08:00
1. 不同功能改动用 branch + PR
2. 不同功能的 JS 不要放在同一个文件中
3. Pull 的时候可以用--rebase
4. 如果对 Git 不熟但是又想快速入门,那就用 GUI 。等熟悉 GUI 里各种概念以后再切换回 CLI 。
keithsun80
2015-12-11 09:18:40 +08:00
如果你是分支, 每天将主干中的内容更新至分支
如果你在同一个分支下开发,开发性质的小版本发布, 降低冲突

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

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

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

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

© 2021 V2EX