当前位置:   article > 正文

Git系列6--分支 (branch)

Git系列6--分支 (branch)

很多时候我们需要给自己或者客户用一个稳定的版本库, 然后同时还在开发另外一个升级版. 自然而然, 我们会想到把这两者分开处理, 用户使用稳定版, 我们开发我们的开发版. 不过 git 的做法却不一样, 它把这两者融合成了一个文件, 使用不同的分支来管理. 所以这一节我们来说说 git 中的 分支 Branch.


分支 图例 

之前我们说编辑的所有改变都是在一条主分支 master 上进行的. 通常我们会把 master 当作最终的版本, 而开发新版本或者新属性的时候, 在另外一个分支上进行, 这样就能使开发和使用互不干扰了. 

使用 branch 创建 dev 分支 

我们之前的文件当中, 仅仅只有一条 master 分支, 我们可以通过 --graph 来观看分支:

  1. $ git log --oneline --graph
  2. # 输出
  3. * 47f167e back to change 1 and add comment for 1.py
  4. * 904e1ba change 2
  5. * c6762a1 change 1
  6. * 13be9a7 create 1.py

使用 checkout 创建 dev 分支 

接着我们建立另一个分支 dev, 并查看所有分支:

  1. $ git branch dev # 建立 dev 分支
  2. $ git branch # 查看当前分支
  3. # 输出
  4. dev
  5. * master # * 代表了当前的 HEAD 所在的分支

当我们想把 HEAD 切换去 dev 分支的时候, 我们可以用到上次说的 checkout:

  1. $ git checkout dev
  2. # 输出
  3. Switched to branch 'dev'
  4. --------------------------
  5. $ git branch
  6. # 输出
  7. * dev # 这时 HEAD 已经被切换至 dev 分支
  8. master

 

在 dev 分支中修改 

使用 checkout -b + 分支名, 就能直接创建和切换到新建的分支:

  1. $ git checkout -b dev
  2. # 输出
  3. Switched to a new branch 'dev'
  4. --------------------------
  5. $ git branch
  6. # 输出
  7. * dev # 这时 HEAD 已经被切换至 dev 分支
  8. master

将 dev 的修改推送到 master 

dev 分支中的 1.py 和 2.py 和 master 中的文件是一模一样的. 因为当前的指针 HEAD 在 dev分支上, 所以现在对文件夹中的文件进行修改将不会影响到 master 分支.

我们在 1.py 上加入这一行 # I was changed in dev branch, 然后再 commit:

$ git commit -am "change 3 in dev"  # "-am": add 所有改变 并直接 commit

 

好了, 我们的开发板 dev 已经更新好了, 我们要将 dev 中的修改推送到 master 中, 大家就能使用到正式版中的新功能了.

首先我们要切换到 master, 再将 dev 推送过来.

  1. $ git checkout master # 切换至 master 才能把其他分支合并过来
  2. $ git merge dev # 将 dev merge 到 master 中
  3. $ git log --oneline --graph
  4. # 输出
  5. * f9584f8 change 3 in dev
  6. * 47f167e back to change 1 and add comment for 1.py
  7. * 904e1ba change 2
  8. * c6762a1 change 1
  9. * 13be9a7 create 1.py

要注意的是, 如果直接 git merge dev, git 会采用默认的 Fast forward 格式进行 merge, 这样 merge 的这次操作不会有 commit 信息. log 中也不会有分支的图案. 我们可以采取 --no-ff 这种方式保留 merge 的 commit 信息.

  1. $ git merge --no-ff -m "keep merge info" dev # 保留 merge 信息
  2. $ git log --oneline --graph
  3. # 输出
  4. * c60668f keep merge info
  5. |\
  6. | * f9584f8 change 3 in dev # 这里就能看出, 我们建立过一个分支
  7. |/
  8. * 47f167e back to change 1 and add comment for 1.py
  9. * 904e1ba change 2
  10. * c6762a1 change 1
  11. * 13be9a7 create 1.py
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/381247
推荐阅读
相关标签
  

闽ICP备14008679号