zoukankan      html  css  js  c++  java
  • 分支管理

    分支管理

    • 每次提交,Git都将它们串成一条时间线,这条时间线就是一条分支。

    • 最开始都有一条主分支--master分支

    • master指向最新的提交,而HEAD指向master

    创建与合并分支

    • 当创建新的分支时,切换到新的分支如dev,此时dev指向master相同的指向,HEAD指向dev

    • 此后master保持不变,每有一次新的提交,由dev向前移动一步

    • 当需要将dev合并到master上时,最简单的方法是直接把master指向dev的当前提交

    • 合并完成后,可以将dev删除,只保留主分支master,删除dev就是把dev指针删除掉

    # 查看分支
    git branch
    # 创建分支
    git branch <name>
    # 切换分支
    git checkout <name>
    # 切换分支
    git switch <name>
    # 创建+切换分支
    git checkout -b <name>
    # 创建+切换分支
    git switch -c <name>
    # 合并某分支到当前分支
    git merge <name>
    # 删除分支
    git branch -d <name>

    解决冲突

    • Git无法自动合并分支时,就必须首先解决冲突。解决冲突后再提交,合并完成,就可以删除不必要的分支

    • 解决冲突就是把Git合并失败的文件手动编辑成我们希望的内容,再提交。

    • git log --graph可以看到分支合并图

    分支管理

    • master分支应该是非常稳定的,仅用来发布新版本,平时不能在上面干活

    • 都在dev上干活,在发布新版本时,再将dev合并到master

    • 团队中的伙伴都在自己的分支上干活,时不时往dev上合并

    • 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出曾经做过合并,而fast forword合并就看不出来

    # 使用--no-ff模式,同时进行了commit,这样从分支历史上就可以看出分支信息
    git merge --no-ff -m "merge with no-ff" dev

    Bug分支

    • 当在分支dev上工作时,需要处理masterbug,而dev的工作还不想提交。可以通过git stash来保存当前为提交的状态。

    • 切换到master,新建分支更改了bug并合并后回到dev

    • 可以通过git stash list查看保存的所有状态

      • 可以通过git stash apply恢复,但是恢复后stash内容并未删除,需要用git stash drop删除

      • 还可以通过git stash pop,恢复的同时把stash内容也删了

    • master上修复的bug,想要合并到当前dev时,可以通过git cherry-pick <commit>命令,把bug的修改同步到dev

    Feature分支

    • 开发一个新feature,最好新建一个分支;

    • 如果要丢弃一个没有被合并过的分支,可以通过git branch -D强行删除。

    多人协作

    工作模式

    • 首先,推送修改--git push origin <branch-name>

    • 如果推送失败,则代表远程的分支有所更新,需要先通过git pull试图抓取远程分支并合并

    • 如果合并有冲突,则解决冲突,并在本地提交

    • 没有冲突或解决后,在通过上述方法推送

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

    • 查看远程库信息--git remote -v

    rebase操作

    • rebase操作可以把本地未push的分叉提交历史整理成直线;

    • rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

  • 相关阅读:
    双节来临之际田洪川及全家恭祝大家节日快乐!
    郁闷..一级教程我录了两次都失败了!
    Visual Studio 2005入门 之 HyperLink [视频]
    Visual Studio 2005入门 之 镶套\包含类型[视频]
    vs2005入门 之 状态处理(Application,Seeeion,Cookie) [视频]
    vs2005入门 之 类共享成员
    vs2005入门 之 HiddenField、LinkButton、Literal [视频]
    Visual Studio 2005入门 之 日历[Calender]一 [视频]
    9月24号25号搬家,26号休息,不能发布,请勿关注!
    Visual Studio 2005入门 之 Asp.Net中的事件(页面事件)[视频]
  • 原文地址:https://www.cnblogs.com/ashen1999/p/12559927.html
Copyright © 2011-2022 走看看