git 提交时,有时会出现 merge?为什么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
yantianqi
V2EX    程序员

git 提交时,有时会出现 merge?为什么?

  •  
  •  yantianqi 2017-12-05 13:32:06 +08:00 11962 次点击
    这是一个创建于 2869 天前的主题,其中的信息可能已经有所发展或是发生改变。

    git 提交的时候,有的时候回出现 merge,自动合并,为什么?
    为什么两人的提交修改的文件互不影响,还会出现这种情况?

    8 条回复    2020-04-27 14:38:46 +08:00
    azygote
        1
    azygote  
       2017-12-05 13:34:12 +08:00
    Git 是基于指针的
    xubeiyan
        2
    xubeiyan  
       2017-12-05 14:08:20 +08:00
    当然了,如果 a 和 b 是加入到了代码库里的两个文件,你修改了 a 文件,commit,push,另一人修改了 b 文件,commit,push,后提交那个人(假设是你)的 b 文件和远端上是不一样的(因为被另一个人改了),所以就需要 merge,由于这两个 commit 是没有冲突的(指的两个人都修改的同一个文件),所以会自动 merge,不想出现这个问题的话可以(1)开分支,最后合并一下;(2)在另一个人往上 push 了之后,再在他的 push 的代码的基础上再修改
    Biwood
        3
    Biwood  
       2017-12-05 14:17:59 +08:00
    因为 pull 的时候会把远程的代码 merge 到本地,如果你们俩改的文件互不影响,那么默认会走 fast-forward 合并,不需要提交 merge 信息。如果你们改的文件有重叠,那么就可能会出现冲突,需要把文件合并起来,这时候会自动提交一个 merge 信息,当然,有冲突的时候需要手动提交 merge 信息。你看到的 merge 就是这么来的。
    sbw
        4
    sbw  
       2017-12-05 16:51:57 +08:00
    不想出现 merge 就自己 rebase 喽
    mineqiqi
        5
    mineqiqi  
       2017-12-05 17:26:19 +08:00
    因为在你 push 到远程库前, 远程库上的代码有了新的更新,并且该更新与你要提交的代码没有产生冲突,所以就 merge 了。每次本地 commit 前应该先 pull 的,这样就不会出现 merge (可能会冲突哦)
    koalli
        6
    koalli  
       2017-12-05 17:53:47 +08:00
    在你 push 到远程仓库时如果你的本地仓库落后于远程仓库,你需要先 pull 远程跟本地仓库 merge,在 merge 的时候会检查是否有文件存在冲突或者共同修改了某些文件,如果可以直接 merge 的话就会自动产生一个 commit,否则你就需要手动解决冲突后提交一个 merge 的提交
    zhaoyou
        7
    zhaoyou  
       2017-12-05 18:19:32 +08:00
    远程仓库指向最新的提交点, 你提交时落后了远程的提交点当然会要你合并。(不然在你拉取后,别人已经正常提交的不就被你覆盖掉了呀)。重点是不是你们是否修改了同一个文件。主要是有人在你提交前已经提交到了服务器(而他的那部分你本地并没有)。
    youcanwin8099
        8
    youcanwin8099  
       2020-04-27 14:38:46 +08:00
    @zhaoyou ,所以 git 这种基于整体仓库的版本管理,带来的开销和繁琐操作就是大,而实际上往往每个人只关心个别文件。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3302 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 11:47 PVG 19:47 LAX 04:47 JFK 07:47
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86