美文网首页
git分支管理

git分支管理

作者: 小裴走世界 | 来源:发表于2018-01-30 10:03 被阅读0次

本地分支管理

创建和切换分支

创建分支

在本地终端运行 git branch『分支名称』 新建一个分支,如新建一个名为『learn-branch』的分支命令如下:

python

$ git branch learn-branch

切换分支

创建完分之后使用git branch命令查看分支:

python

$ git branch

* master

  learn-branch

可以看到『 master 』分支上有一个『*』,说明当前是处在『 master 』分支上,也就是说创建完分支后需要我们手动切换到『learn-branch』,使用git checkout 『分支名称』命令:

python

$ git checkout learn-branch

Switched to branch 'learn-branch'

再使用git branch命令查看,会发现已经切换到『learn-branch』分支:

python

$ git branch

* learn-branch

  master

创建和切换分支两条命令可以合起来,使用git checkout -b『分支名称』命令可以创建一个分支并切换到此分支上。

合并分支

快进模式合并

快进式合并分支,也叫『Fast Foreword』,简单的理解就是当要合并的分之和目标分支之间没有冲突,只是多做了一些修改时就会采取『Fast Foreword』模式

例如,我们切换到新建的『learn-branch』分支上,对『learn-git.txt 』文件加一行文字:

I am learning to use git.

然后提交此文件:

$git add learn-branch.txt

$git commit -m "edit learn-git.txt"

[learn-git fce6c4e] branch test

  1 files changed, 1 insertions(+)

接着使用$ git checkout master命令切换回『 master 』分支,再查看『learn-git.txt 』文件,发现刚才添加的内容并不存在!因为那个提交是在『learn-branch』分支上,而『 master 』分支此刻的提交点并没有变。

现在,我们把『learn-branch』分支的内容合并到『 master 』分支上:

$ git merge learn-branch

Updating ca62ea0..fce6c4e

Fast-forward

  learn-branch.txt | 1 +

  1 file changed, 1 insertion(+)

git merge命令用于合并指定分支到当前分支,示例中是把指定分支『learn-branch』合并到『 master 』分支上。

合并完成后会发现『 master 』分支上的『learn-git.txt 』文件内容和在『learn-branch』分支上编辑后的内容完全一样。此时如果想删除『learn-branch』分支,可以使用命令$ git branch -d 『分支名称』。

普通模式合并

当要合并的分之和目标分支之间存在冲突,就无法使用快进合并模式,需要先手动解决冲突,再提交。

例如,我们先切换到『learn-branch』分支,在『learn-git.txt 』文件中写入下面文字并提交

I am on "learn-branch" branch.

然后切换到『 master 』分支,在『learn-git.txt 』文件中写入下面文字并提交

I am on "master" branch.

接着输入git merge learn-branch命令:

$ git merge learn-branch

  Auto-merging learn-branch.txt

  CONFLICT (content): Merge conflict in learn-git.txt

  Automatic merge failed; fix conflicts and then commit the result.

Git 返回结果提醒我们『learn-git.txt 』文件存在冲突,需要我们手动解决冲突。运行 git status 命令,也可以看到出现冲突状况:

$ git status

On branch master

You have unmerged paths.

  (fix conflicts and run "git commit")

Unmerged paths:

  (use "git add ..." to mark resolution)

      both modified:      learn-git.txt

no changes added to commit (use "git add" and/or "git commit -a")

现在我们打开『learn-git.txt 』,会发现 Git 加入了冲突解决标记:

  <<<<<<< HEAD

  I am on master branch

  =======

  I am on learn-branch branch

  >>>>>>> learn-branch

可以看到 ======= 隔开的上半部分,是 HEAD(即 master 分支,在运行 merge 命令时的工作分支)中的内容,下半部分是在 learn-branch 分支中的内容。解决冲突的办法无非是二者选其一或者人工亲自整合到一起。把上述内容修改为这样:

I am on master branch

接下来运行 git add 来告诉 Git 冲突已经解决,并运行 git commit 来完成合并:

$git add learn-git.txt

$git commit -m "conflict resolved"

[master cadd265] conflict resloved

相关文章

  • git常用命令

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

  • Git命令整理

    Git命令 ———————————————— git配置: git基本步骤: git分支管理: 创建分支命令: 切...

  • GIT分支管理

    GIT 分支管理 参考:在阿里,我们如何管理代码分支?GitHub Flow & Git Flow 基于Git...

  • git常用操作

    Basic Operation 分支管理切换分支git checkout git checkout -b #...

  • git提交代码规范管理

    GIT分支管理 git远程分支主要包括:master develop fixbugmaster:整个项目主分支,...

  • 2021-11-30

    一、分支管理 1、创建分支 git branch 2、查看分支 git branch...

  • git分支仓库管理

    git分支和标签管理 创建分支 git branch banchName git checkout -b bra...

  • git分支管理与使用规范

    git分支管理与使用规范 分支管理 flow git flow github flow gitlab flow f...

  • git 创建分支提交远程分支

    Git创建与管理远程分支 1.创建本地分支 git branch 分支名,例如:git branch 2.0.1....

  • 2016-06-24 阅读整理

    Git Git 基础命令Git 分支管理Git 分支合并Git 公钥提交Git 常用技巧Git 设置别名 Andr...

网友评论

      本文标题:git分支管理

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