Git——分支详解

摘要:
Gitbranch现在让我们创建一个新的分支来开发函数G1。Gitcheckoutmaster。然后我们检查状态。只有V1和V2。然后我们将G1合并到master中以检查状态。与未合并的相比,当前主干上有更多G1。如果我们确认G1没有问题,我们可以从分支G1中删除gitbranch-dG1。如果G2也被开发出来,我们也可以将G2合并到master中。仍然切换到主节点,然后合并G2gitmergeG2。此时,我们发现一个错误,这表明合并文件中存在冲突。这是因为当G1被合并时,在它之前没有其他分支被合并。

  在Git中,假设写了第一个版本的代码VI,然后下面又写了第二个版本的代码V2,那么V2保留的内容是相对于V1新加的内容,他们之间的关系是V2指向V1。这一条线叫做主干:master

Git——分支详解第1张


   此时在V2的基础上,想新加一个功能G1,那么可以在V2的基础上添加一个分支,这个分支G1是创建了一个新环境来写的。再比如说此时想添加另外一个新功能G2,我们同样创建一个分支,这个分支用来写G2。G1和G2是完全不交涉的。最后如果我们确定G1和G2完成之后,我们只需要将他们合并到主干master上即可。

 Git——分支详解第2张


  •   现在我们有这样的一个版本的代码:

Git——分支详解第3张

  •    查看状态:
git log

 Git——分支详解第4张

  •    查看当前所处的分支,我们可以看见现在所处的分支是主干master。
git branch

 Git——分支详解第5张

  •  现在我们创建一个新分支,用于开发功能G1。然后我们查看分支,发现有两个分支:一个是当前所处主干master,一个就是刚刚创建的分支G1。
    git branch G1  # 用于创建新分支
    git branch  # 查看当前所处分支

    Git——分支详解第6张

  • 我们切换到分支G1去,然后查看分支,发现现在我们处在G1分支中。

    git checkout G1

    Git——分支详解第7张

  • 现在我们开发功能G1,注意我们现在处于分支G1中。

  Git——分支详解第8张

  上图开发完成之后,我们查看一下状态,发现文件被修改了,接着添加到git管理,提交到版本控制,最后查看状态。所以现在我们是在G1这个新的环境中修改代码。

git status
git add .
git commit -m 'G1'
git log

   Git——分支详解第9张

  •  现在我们切换回到主干master中,所以现在我们处在master中,然后查看刚刚修改的文件,发现刚刚修改的文件不见了,这是因为我们是在G1中修改的,而G1是单独的一个环境,并且没有合并到master中。
git checkout master

 Git——分支详解第10张

  •  现在我们创建另外一个分支G2,开发新功能G2。注意此时我们已经切换到主干master中了。
git branch G2
git checkout G2
...开发中
git add .
git commit -m 'G2'

 Git——分支详解第11张

   切换到G2之后,我们开发完G2,然后将他提交到版本控制中,并且查看他的状态,我们发现里面没有G1,只有G2和V2还有V1,这也再次说明G1和G2是单独的一个环境,没有任何交涉,他们都是通过指针指向V2。

Git——分支详解第12张

  •   现在我们觉得G1开发成熟了,此时我们将G1合并到master上。首先我们要切换到master中,这样我们才能合并。
git checkout master

 Git——分支详解第13张

   然后我们查看一下状态,只有V1,V2

Git——分支详解第14张

   接着我们合并G1到master中

git merge G1

 Git——分支详解第15张

   查看状态,相对于没有合并的,现在的主干上多了G1

Git——分支详解第16张

  •  如果确认G1没有问题之后,我们就可以将分支G1删掉
git branch -d G1
  •  若G2也开发完毕,这是我们也能够将G2合并到master中了。依旧切换到master上,然后合并G2
git merge G2

   此时我们发现出现了一个报错,这说明合并文件出现了冲突。因为我们之前合并过G1,而G1和G2都属于分支,当两个分支都合并到master中时,Git不知道如何将他们合并到一起,所以会产生冲突。

  为什么合并G1不会产生冲突了?这是因为合并G1时,没有其他分支在他之前合并过。

Git——分支详解第17张

   我们查看代码文件:

Git——分支详解第18张

   此时,我们手动将他们合并

Git——分支详解第19张

   最后我们执行版本控制,将他们提交即可

Git——分支详解第20张

 Git——分支详解第21张

 Git——分支详解第22张

免责声明:文章转载自《Git——分支详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[原]Windows下openssl的下载安装和使用【Docker】解析器指令之 escape下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

git clone速度太慢

git clone https://github.com/thomaslindstrom/color-picker 改成 git clone https://github.com.cnpmjs.org/thomaslindstrom/color-picker...

git 查看文件修改

查看某个文件的修改历史:   用git log -p filename。   git blame filename是查看目前的每一行是哪个提交最后改动的。 查看某次提交修改列表:     git show 版本号  (列出详细        git show --name-only 版本号 (改动文件列表 查看某个文件某次提交的修改详细   git sho...

Git 如何合并其他 Remote 上面的更新

coral@c:~/uva/AlgoLib$ git remote add new https://github.com/xxx/AlgoLib.git coral@c:~/uva/AlgoLib$ git fetch new remote: Counting objects: 55, done. remote: Compressing objects:...

Git-配置difftool和mergetool

git自带的difftool和mergetool使用不习惯,配置difftool和mergetool为Beyond Compare 3。 git的配置文件一般在C:Users用户名.gitconfig。我使用的MinGW Shell,git的配置文件在C:MinGWmsys1.0home用户名.gitconfig 1 [diff] 2 tool =...

git 修改已提交了的备注信息的方法

git 修改已提交了的备注信息的方法: 1、当我们已通过 git commit -m '已提交的最新的备注' 命令将代码提交到了缓存区,或者进一步执行了 git push origin master 命令已将代码推送至 git 服务端,发现已备注的信息并不能准确的表达我们的意思,想修改,那么我们可以执行 git commit --amend 命令:git...

Gitea安装笔记

什么是gitea Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证. 官网:https://gitea.io/zh-cn/ 为什么要用gitea 开源免费 系统要求低,节约资源 gitea的安装(centos 7源码安装) 相关环境安装 yum install -y wget yum install -...