天天看点

Git操作(二)

Git操作(二)

很久以前写的git入门,最近又巩固了一下Git分支操作,下面是我的一些整理。

1、分支与合并  

#创建并切换到该分支
    git checkout -b xxx

#查看当前分支
    git branch  

#进行一些正常的提交等

#分支工作完成,就可以切换回到master分支
    git checkout master

#将xxx分支合并到当前分支上
    git merge xxx

#删除分支

  # 合并完成后 
     git branch -d xxx

  # 未合并的分支的删除
     git branch -D xxx      

2、BUG分支||分支暂存(将开发一半的分支进行保存,在适当的时候进行代码恢复)

# 当手头工作没有完成时,先把工作现场`git stash`一下,然后去修复bug


#  修复完成后,`git stash list`  列出所有的暂存状态


#  从暂存区之中恢复回到工作现场
  # 先恢复,而后再删除暂存
     git stash apply
     git stash drop
  # 恢复的同时也将stash内容删除
     git stash pop
# 在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动。      

3、多人协作的工作模式

  • 首先,可以试图用

    git push origin <branch-name>

    推送自己的修改;
  • 如果推送失败,则因为远程分支比你的本地更新,需要先用

    git pull

    试图合并;
    • 如果

      git pull

      提示

      no tracking information

      ,则说明本地分支和远程分支的链接关系没有创建,用命令

      git branch --set-upstream-to <branch-name> origin/<branch-name>

  • 如果合并有冲突,则解决冲突,并在本地提交;
  • 没有冲突或者解决掉冲突后,再用

    git push origin <branch-name>

    推送就能成功!

4、合并分支

  • git merge

    命令用于合并指定分支到当前分支
  • 使用

    fast-forward

    方式进行分支合并,只是简单改变了分支指针,而不会产生新的

    commit

    记录。
  • git merge --no-ff -m "msg" <branch_name>

    // 合并分支时禁用Fast forward模式
  • git rebase操作可以把本地未push的分叉提交历史整理成直线;
  • git rebase 和 git merge 区别
    •   http://blog.sina.com.cn/s/blog_14c2211450102vp66.html