• Git 分支管理


    创建与合并分支

    查看分支:git branch

    创建分支:git branch <name>

    切换分支:git checkout <name>

    创建+切换分支:git checkout -b <name>

    合并分支:$ git merge <name>

    删除本地分支:git branch -d <name>

    删除远程分支:git branch -d <branch name>

    切换分支前,要先add和commit,对于所有分支而言, 工作区和暂存区是公共的。

    解决冲突

    master与分支,修改同个位置后,合并会出现冲突
    Git用<<<<<<<=======>>>>>>>标记出不同分支的内容,我们修改后保存,然后再提交

    带参数的git log也可以看到分支的合并情况,最后再删除分支,完成

    分支管理策略

    合并分支时,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
    如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
    准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward

    $ git merge --no-ff -m "merge with no-ff" dev

    首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
    平时大家在dev分支上干活,需要发布时合并到master分支即可。

    Bug分支

    假设正在dev上开发,突然接到修复master上一个bug,就可以用如下命令把把当前工作现场“储藏”起来,等以后恢复现场后继续工作:

    $ git stash

    这时工作区就是干净的,刚才的改动不见了。然后把分支切换到master,并在此基础上新建并切换到bug分支issue-101,在这里修复bug。修复完成后回到master分支,进行非快速合并后删除bug分支,再切换回dev分支,可以通过加list参数看到 stash 的列表:

    $ git stash list
    stash@{0}: WIP on master: b1d5182 merge with no-ff

    工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
    一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
    另一种方式是用git stash pop,恢复的同时把stash内容也删了

    这时stash区什么都没了。如果将工作区内容多次保存到stash,则可以加 stash@{0} 这样的编号来指定恢复哪个(可用list参数查看编号)。

    $ git stash apply stash@{0}

    强行删除分支

    git branch -D

    多人协助

    1. 首先,可以试图用git push origin <branch-name>推送自己的修改;
    2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
    3. 如果合并有冲突,则解决冲突,并在本地提交;
    4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

    如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

    这就是多人协作的工作模式,一旦熟悉了,就非常简单。

  • 相关阅读:
    [文摘20090106]大量实战经验的真实网络创业经历分享(转)
    [转]MySQL 行号
    [转]C# Socket编程笔记
    [转]DirectShow:图片的抓取
    [书目20081213]抢在时间前面的7条捷径
    [文摘20090106]微软EPG老大让秘书发给大家的邮件
    [转]页面外仿 MSN 弹出提示信息的脚本改进版(仅能在IE下运行!)
    自此而后 加班 可以 不过 我只适度加班
    通过定时reload回发某页面请求 避免因用户一直不操作而引起的Session过期
    [转]ASP.NET2.0轻松搞定统计图表【月儿原创】
  • 原文地址:https://www.cnblogs.com/xiaobaiv/p/9363325.html
Copyright © 2020-2023  润新知