E哥的Git教程(四)分支管理

本文详细介绍了Git的分支管理,包括创建、切换、合并分支,解决冲突及撤销修改等操作。通过实例展示了如何在Git中有效管理分支,特别是解决合并时的文件冲突问题,帮助读者深入理解Git的分支机制。
摘要由CSDN通过智能技术生成

分支管理

“接下来我们学习git的‘必杀技技’分支管理。” E哥说。

“svn也有分支概念,我的上一个单位开发新版本时,先在分支上开发,再合并到主干,最后上进行上线。” 李靖又拿用过的版本管理工具和git做起了对比。

“ 不过有个小问题是版本多了的时候比较麻烦,要checkout多分代码到硬盘上用不同的目录保存,我刚去的时候,由于不熟悉经常弄错。“ 看来李靖深受被多版本切换之苦。

E哥说, “这也是git非常好用的一个原因。Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在瞬间完成,并且在不同分支间切换起来也差不多是秒级的。“

创建分支

如何创建一个新的分支的呢?比如我们的项目遇到个bug,在bug跟踪系统里编号issue53, 我们新建一个名叫 iss53的分支来进行修复。使用 git branch 命令:

$ git branch iss53

运行git status命令,查看当前在哪个分支上工作。

$ git status
# On branch master
nothing to commit, working directory clean

这里的第二行”#on branch master”,就是当前的分支。git保存着一个名为 HEAD 的特别指针,用来标识当前的分支。例如,我们执行完刚才的指令后,本地仓库的情况是这样的:
git-branch

版本1和2是以前项目的历史版本。 我们当前的版本是版本3。

切换分支

为了修复bug,要切换到刚建立的iss53分支。可以执行 git checkout 命令:

$ git checkout iss53
Switched to branch iss53
$ git status
# On branch iss53
nothing to commit, working directory clean

这样 HEAD 就指向了 iss53 分支

git-checkout

这时我们在当前目录下新增加一个文件 newbranch.txt 来模拟修复了issue53这个bug,

vi newbranch.txt 

输入”fixed issue55”,保存退出。 执行:

$ git status
# On branch iss53
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       newbranch.txt
nothing added to commit but untracked files present (use "git add" to track)

我们看见在iss53分支下有一个新文件newbranch.txt , 它的状态是untracked,标明这个文件还没有登记到git版本管理中。

“这时如果我们切换切换回master分支,会发生什么呢?”李靖问道。

E哥没有回答,在键盘上敲击命令:

$ git checkout master
Switched to branch 'master'
$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       newbranch.txt
nothing added to commit but untracked files present (use "git add" to track)

”在master分支下也有 newbranch.txt标志为untracked。“李靖自答到,”我记得你刚才说,untracked就是不在git版本管理范围内的文件。 “

”正确!”

“现在我们切换回iss53分支, 提交修改。”E哥说道。

$ git checkout iss53
$ git add newbranch.txt
$ git commit -m "add new file on test"
$ git status
# On branch iss53
nothing to commit, working directory clean

”已经没有untracked文件了,表示文件提交成功。 如果你用的windows,或者mac,我们打开资源浏览器,txt文件也在这里。”

add-newbranch

”我们在切换到master分支,看看发生了什么。”

$ git checkout master
$ git status
# On branch master
nothing to commit, working directory clean

”咦?addbranch.txt文件消失了!“李靖说道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值