• Git-03-分支合并及冲突


    查看分支 git branch
    创建分支 git branch 分支名
    切换分支 git checkout 分支名
    删除分支 git branch -d 分支名 (不能删除当前分支)


    其他不能删除的情况: 包含 “未合并”的内容,删除分支之前 建议先合并

    强行删除git branch -D 分支名
    细节:
    1.如果在分支A中进行了写操作,但此操作局限在工作区中进行(没add/commit)。在master中能够看到该操作。 如果分支A中进行了写操作 进行了commit(对象区),则master中无法观察到此文件
    2.如果在分支A中进行了写操作,但此操作局限在工作区中进行(没add/commit)。删除分支A 是可以成功的。


    创建新分支 并切换 :git checkout -b 分支名
    git checkout -b new_branch

    假如在A分支删除了a文件,没有add/commit

    然后切换到B分支,这时在B分支中,a文件也是被删除的。你甚至可以在B分支中commit删除操作。在B分支中,a文件就是也就消失了。

    但在A分支中,a文件还是完好的(状态不是deleted),如果想在A分支中删除它,则要在A分支中git rm并commit。

    假如在A分支中修改了a文件,没有add 且 commit,然后切换到B分支,这时在B分支中也能看到这个修改的内容,但在B分支中无法提交该修改。只能在A分支中提交这次修改。

    在A分支中add然后commit,这时B分支就不能看到修改的内容了。

    合并分支

    git merge new_branch  (把new_branch分支合并到当前分支)

    查看所有分支:git branch -v

    分支本质:一个commit链,一条工作记录线

    分支名 :  分支名指向当前的提交(commit)
    HEAD:head是一个指针,指向当前分支(HEAD->分支名)


    如果一个分支靠前(dev),另一个落后(master)。则如果不冲突, master可以通过 merge 直接追赶上dev,称为 fast forward。
    fast forward本质就是 分支指针的移动.注意:跳过的中间commit,仍然会保存。
    fast forward:

    1. 两个分支 fast forward 归于一点commit
    2.没有分支信息(丢失分支信息)

    git在merge 时,默认使用fast fast forward ;也可以禁止 : git merge --no-ff
    1. 两个分支 fast forward ,不会归于一点commit (主动合并的分支 会前进一步)
    2.分支信息完整(不丢失分支信息)

    冲突

    合并:如果冲突 ,需要解决冲突。在不同的分支链中,合并有可能有冲突,因为同一个文件有可能内容不一样。而由于在不同的分支链中,故也没有落后/靠前的说法,故冲突会发生
    ,若在同一个分支链,那肯定是不会有冲突的,落后方直接合并到靠前方即可,文件内容最终跟靠前方一样。
    解决冲突:

    1.vi 修改文件内容,自己决定合并后的文件内容应该是怎样的

    2.git add a.txt  (假设冲突的文件是a.txt,这次操作是告诉git,a.txt文件的冲突解决了)

    3. git commit -m "解决冲突"


    git add xxxx(告知git,冲突已解决)
    注意:master在merge时 如果遇到冲突 并解决,则解决冲突 会进行2次提交: 1次是最终提交,1次是将对方dev的提交信息commit也拿来了(意思是master分支中会有dev分支的节点)

    如果一方 落后,另一方 靠前。则落后方可以直接通过merge合并到 靠前方。

  • 相关阅读:
    分化Oracle数据库日记文件(1)
    ORACLE稀有错误代码的阐发与经管(二)
    Oracle暗码文件的运用和维护
    在ORACLE中移动数据库文件
    ORACLE8的分区管理
    Oracle中如何间接运转OS号令(上)
    Oracle数据库平安计谋阐明 (三)
    Oracle7.X 回滚表空间数据文件误删除措置举动措施
    Oracle功用究极优化 中
    网络知识爆炸的年代~如何更好地学习吸收有用的知识
  • 原文地址:https://www.cnblogs.com/kenLoong/p/15202163.html
Copyright © 2020-2023  润新知