美文网首页
分支管理

分支管理

作者: yz_wang | 来源:发表于2016-10-24 23:51 被阅读0次

几个基本操作

  • git add
    命令实际上就是把要提交的所有修改放到暂存区(Stage)
屏幕快照 2016-10-24 下午11.21.48.png
  • 执行git commit
    就可以一次性把暂存区的所有修改提交到分支
屏幕快照 2016-10-24 下午11.21.26.png
  • 管理修改
    Git跟踪并管理的是修改,而非文件
    什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。
    第一次修改 -> git add -> 第二次修改 -> git add -> git commit
    每次修改,如果不add
    到暂存区,那就不会加入到commit
    中。

  • 撤销修改
    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
    ,就回到了场景1,第二步按场景1操作。
    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

  • 删除文件
    一般情况下,你通常直接在文件管理器中把没用的文件删了,这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status
    命令会立刻告诉你哪些文件被删除了。
    现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm
    删掉,并且git commit
    现在,文件就从版本库中被删除了。

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
$ git checkout -- test.txt
git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

远程仓库

  • Github是个提供Git仓库托管服务的网站,本地Git仓库和Github仓库之间传输通过SSH加密。
  • git clone 是把Github远程仓库克到自己电脑上的本地仓库
  • $ git remote add origin git@github.com:michaelliao/learngit.git 用于将远程仓库和自己本地已存在的仓库关联
  • git push命令,把当前分支master推送到远程
  • 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
    $ git push -u origin master
    从现在起,只要本地作了提交,就可以通过命令:
    $ git push origin master
    把本地master分支的最新修改推送至GitHub

分支管理

  • 每次提交(commit),Git都把它们串成一条时间线,这条时间线就是一个分支。默认master一个分支。
  • 当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
$ git checkout -b dev
Switched to a new branch 'dev'

这条命令等价于
$ git branch dev$ git checkout devSwitched to branch 'dev'
转换完成后,可以用命令查看当前处于哪个分支
$ git branch* dev master

屏幕快照 2016-10-24 下午11.40.58.png

从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:


屏幕快照 2016-10-24 下午11.41.29.png
$ git add readme.txt 
$ git commit -m "branch test"
[dev fec145a] branch test 1 file changed, 1 insertion(+)

假如我们在dev上的工作完成了,就可以把dev
合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:

$ git checkout master
Switched to branch 'master'

$ git merge dev
Updating d17efd8..fec145a
Fast-forward readme.txt | 1 + 
1 file changed, 1 insertion(+)
屏幕快照 2016-10-24 下午11.42.45.png

合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:

$ git branch -d dev
Deleted branch dev (was fec145a).
屏幕快照 2016-10-24 下午11.43.18.png

相关文章

  • Git | 分支管理

    git分支管理 主分支 功能分支 - feature 预发布分支 - release 修补bug分支 - fixbug

  • git 常用命令

    Git 分支管理 查看本地分支 查看远程分支 创建本地分支 切换本地分支 删除本地分支 删除远程分支

  • Git分支

    内容简介 分支简介 创建分支 查看分支 切换分支 分支合并 删除分支 分支管理 远程分支 分支简介 为了真正理解 ...

  • Git规范

    分支管理 分支命名 master 分支 master 为主分支,也是用于部署生产环境的分支,确保master分支稳...

  • Git 分支开发规范

    分支管理 分支命名 master 分支 master 为主分支,也是用于部署生产环境的分支,确保master分支稳...

  • git 和 github

    分支管理 查看本地分支 查看远程分支 查看所有分支 创建分支 切换分支 将新分支推送到github 删除本地分支 ...

  • git常用命令

    分支管理 git 切换分支 git 查看远程分支 git 查看本地分支 git 创建本地分支 git 删除本地分支...

  • ProGit读书笔记-2.Git分支

    分支的新建与合并 分支的新建与合并 分支的合并 删除分支 分支的管理 远程分支 远程分支 (远程仓库名)/(分支名...

  • 分支管理

    本节内容: 创建与合并分支 解决冲突 分支管理策略 bug分支 Feature分支 多人协作

  • 14 分支管理-分支管理策略

    http://www.liaoxuefeng.com/wiki/0013739516305929606dd1836...

网友评论

      本文标题:分支管理

      本文链接:https://www.haomeiwen.com/subject/rqtruttx.html