V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
tedd
V2EX  ›  git

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

  •  
  •   tedd · 2015-12-10 15:54:18 +08:00 · 3242 次点击
    这是一个创建于 3273 天前的主题,其中的信息可能已经有所发展或是发生改变。
    git 用得很浅,平时就是 clone, pull, push, merge, revert...其他都没有用到过...汗 -_-!!!

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

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

    传不上去 就 git pull --rebase 然后会把最新的版本拿下来,提示 会有很多冲突 改好上传。 rebase 的另一个好处是 单根 无旁系,这样可以退到任何一个节点,如果你用 merge 的方法 其实功能的上线是并行的。
    msg7086
        6
    msg7086  
       2015-12-10 21:48:07 +08:00   ❤️ 1
    1. 不同功能改动用 branch + PR
    2. 不同功能的 JS 不要放在同一个文件中
    3. Pull 的时候可以用--rebase
    4. 如果对 Git 不熟但是又想快速入门,那就用 GUI 。等熟悉 GUI 里各种概念以后再切换回 CLI 。
    keithsun80
        7
    keithsun80  
       2015-12-11 09:18:40 +08:00   ❤️ 1
    如果你是分支, 每天将主干中的内容更新至分支
    如果你在同一个分支下开发,开发性质的小版本发布, 降低冲突
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5701 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 08:55 · PVG 16:55 · LAX 00:55 · JFK 03:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.