Git读书笔记

第三章 分支

2018-12-30  本文已影响4人  行知路

1.1 概述

1.2 分支简介

Git在处理分支的时候主要是通过指针的增删改查,所以其速度优势很明显

# 新建testing分支,但保持当前分支不变,实际操作是在当前分支的基础之上新建一个指针,新的指针被命名为testing
$ git branch testing

# --decorate 可以查看当前分支所指的对象
$ git log --oneline --decorate

# 把分支从当前分支切换为testing分支
$ git checkout testing

# 新建且切换分支
$ git checkout -b testing


1.3 分支的新建与合并

# 切换到master分支并把test分支合并入master分支
# 如果遇到冲突,合并会自动终止,解决完冲突后执行git add 、git merge --continue继续合并
# 除了fast forward的情况外,会在master上新建一个节点
$ git checkout master
$ git merge testing


1.3 分支管理

# 查看当前所有分支,当前分支前面会有*号
$ git branch
     iss53
  * master
    testing

# -v 参数可以查看每个分支最后一次提交
$ git branch -v
    iss53   93b412c fix javascript issue
  * master  7a98805 Merge branch 'iss53'
    testing 782fd34 add scott to the author list in the readmes

# 查看哪些分支已合入当前分支,--no-merged查看没有合入当前分支的分支
$ git branch --merged
    iss53
* master

# 删除分支
$ git branch -d testing
  error: The branch 'testing' is not fully merged.
  If you are sure you want to delete it, run 'git branch -D testing'.

1.4 分支开发工作流

每个公司的分支策略会有不同,建议问问度娘,有个基本的了解

1.5 远程分支

# 查看远程分支
$ git ls-remote

# 想远程分支推送
$ git push origin serverfix
  Counting objects: 24, done.
  Delta compression using up to 8 threads.
  Compressing objects: 100% (15/15), done.
  Writing objects: 100% (24/24), 1.91 KiB | 0 bytes/s, done.
  Total 24 (delta 2), reused 0 (delta 0)
  To https://github.com/schacon/simplegit
   * [new branch]      serverfix -> serverfix

# 跟踪远程分支
#  git checkout -b [branch] [remotename]/[branch] 创建一个本地分支并跟踪远程某分支
$ git checkout --track origin/serverfix
  Branch serverfix set up to track remote branch serverfix from origin.
  Switched to a new branch 'serverfix'

# 查看设置的所有跟踪分支
$ git branch -vv
    iss53     7e424c3 [origin/iss53: ahead 2] forgot the brackets
    master    1ae2a45 [origin/master] deploying index fix
  * serverfix f8674d9 [teamone/server-fix-good: ahead 3, behind 1] this
  should do it
    testing   5ea463a trying something new

# 删除远程分支
$ git push origin --delete serverfix
  To https://github.com/schacon/simplegit
   - [deleted]         serverfix

1.6 变基

# 变基的例子,在编辑过程中有冲突发生,先解决冲突,然后git add、git rebase --continue
$ git checkout testing
$ git rebase master
$ git checkout master
$ git merge testing
上一篇下一篇

猜你喜欢

热点阅读