git分支管理(分支的创建、查看、切换、合并、删除)

1.分支的概念理解示意图

svn创建分支比较笨:一份数据多大,创建时候就是多大,所以创建分支很慢。

git创建分支很快:不管一份数据多大,只记录变化的数据,创建分支都是秒级别的。

2.分支管理:(查看分支、创建分支,切换分支、合并分支)

A)分支查看、创建、切换格式

git branch                 #查看当前所在分支

git branch  新分支名       #创建新分支

git checkout  新分支名     #切换到新分支

B)分支合并格式

先切到要合并到的分支,如:master

$git checkout 要合并到的分支

$git merge 要合并的分支           如:将dev分支合并到master则: $git  checkout  master  &&   $git  merge  dev

C)删除分支格式:

git branch -d 要删除的分支名   如删除dev分支:git branch -d dev

例子:

yuanww@yuanww-PC MINGW64 /

$ cd e:/

yuanww@yuanww-PC MINGW64 /e

$ ls

'$RECYCLE.BIN'/   'System Volume Information'/           安装后虚拟机/

 KuGou/            teamviewer13破解版(双击即可运行)/   光盘/

 new_cangku/       test/                                 计划任务相关/

 QMDownload/       test01/                               未安装软件/

 qqpcmgr_docpro/   test2/                                重要笔记/

yuanww@yuanww-PC MINGW64 /e

$ mkdir fenzhi_cangku

yuanww@yuanww-PC MINGW64 /e

$ cd fenzhi_cangku

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku

$ git init

Initialized empty Git repository in E:/fenzhi_cangku/.git/

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ ls -a

./  ../  .git/

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

工作区创建开发代码:

fenzhi1.txt    内容:fenzhi1 111111111

将工作区代码依次提交到暂存区和本地仓库:

yuanww@yuanww-PC MINGW64 /

$ cd e:/fenzhi_cangku

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ ls

fenzhi1.txt

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git add .

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git commit -m "第一个提交代码到仓库"

[master (root-commit) c813b6f] 第一个提交代码到仓库

 1 file changed, 1 insertion(+)

 create mode 100644 fenzhi1.txt

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

 

查看本地仓库的所在分支,并创建新的分支dev,然后切换到新分支dev创建代码2:

$ git branch                                                   #a)查看分支

* master

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git branch dev                                              #b)创建新分支:dev

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git branch

  dev

* master

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git checkout dev                                           #c)切换到新分支dev

Switched to branch 'dev'

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ git branch

* dev

  master

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

相应的工作目录虽然文件内容还和之前一样,但是其也成了一个全新的目录,此时在dev分支上开发代码,如下:

在新分支dev上开发代码后,依次提交到本地仓库dev分支:

yuanww@yuanww-PC MINGW64 /

$ cd e:/fenzhi_cangku

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ ls

fenzhi1.txt  new_dev.txt

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ git status

On branch dev

Untracked files:

  (use "git add <file>..." to include in what will be committed)

        new_dev.txt

nothing added to commit but untracked files present (use "git add" to track)

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ git branch

* dev

  master

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ git add .

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ git status

On branch dev

Changes to be committed:

  (use "git reset HEAD <file>..." to unstage)

        new file:   new_dev.txt

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ git commit -m "提交dev分支代码到dev分支"

[dev dd917bb] 提交dev分支代码到dev分支

 1 file changed, 1 insertion(+)

 create mode 100644 new_dev.txt

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ git status

On branch dev

nothing to commit, working tree clean

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

切换到原来master分支,查看代码:(查看master分支代码)

$ cd e:/fenzhi_cangku

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ git branch

* dev

  master

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ git checkout master                               #切换到master分支

Switched to branch 'master'

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git branch

  dev

* master

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

到本地工作目录查看代码:(master的)

fenzhi1.txt:   fenzhi1 111111111

再切换到dev分支,查看dev分支的代码:

yuanww@yuanww-PC MINGW64 /

$ cd e:/fenzhi_cangku

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git branch

  dev

* master

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git checkout dev                                     #再切换到dev分支

Switched to branch 'dev'

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ git branch

* dev

  master

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

到本地工作目录查看代码:(dev的)

fenzhi1.txt:   fenzhi1 111111111

new_dev.txt:   dev 222222222222

dev分支的代码合并到master分支:

yuanww@yuanww-PC MINGW64 /

$ cd e:/fenzhi_cangku

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ git branch

* dev

  master

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (dev)

$ git checkout master

Switched to branch 'master'

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git branch

  dev

* master

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git merge dev                         #合并分支dev到master上,需要先切换到master分支,然后再合并dev分支

Updating c813b6f..dd917bb

Fast-forward

 new_dev.txt | 1 +

 1 file changed, 1 insertion(+)

 create mode 100644 new_dev.txt

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git branch

  dev

* master

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git branch -d dev                       #删除分支dev

Deleted branch dev (was dd917bb).

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

$ git branch

* master

yuanww@yuanww-PC MINGW64 /e/fenzhi_cangku (master)

此时,到本地工作目录查看代码:(master的)查看,dev分支的代码已经合并过来,如下

fenzhi1.txt:     fenzhi1 111111111

new_dev.txt:     dev 222222222222

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维实战课程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值