`

git实战-分支管理与合并

    博客分类:
  • git
 
阅读更多

显示所有分支

huangyineng@HUANGYINENG-PC ~/hello-world (master)

$ git branch

* master

增加分支

huangyineng@HUANGYINENG-PC ~/hello-world (master)

$ git branch b1

切换分支

huangyineng@HUANGYINENG-PC ~/hello-world (master)

$ git checkout b1

Switched to branch 'b1'

 

huangyineng@HUANGYINENG-PC ~/hello-world (b1)

$

切换到不同的分支对 helloworld.naxsu 这个文件进行修改并提交,并查看他们的内容

原先 helloworld.naxsu 的内容是

huangyineng@HUANGYINENG-PC ~/hello-world (b1)

$ cat helloworld.naxsu

hello world

add something

b1 分支修改并提交,然后查看文件内容

huangyineng@HUANGYINENG-PC ~/hello-world (b1)

$ vim helloworld.naxsu

 

huangyineng@HUANGYINENG-PC ~/hello-world (b1)

$ git commit -a -m "b1 update helloworld.naxsu"

warning: LF will be replaced by CRLF in helloworld.naxsu.

The file will have its original line endings in your working

[b1 warning: LF will be replaced by CRLF in helloworld.naxsu

The file will have its original line endings in your working

b9c5de1] b1 update helloworld.naxsu

warning: LF will be replaced by CRLF in helloworld.naxsu.

The file will have its original line endings in your working

 1 file changed, 1 insertion(+)

 

huangyineng@HUANGYINENG-PC ~/hello-world (b1)

$ git status

# On branch b1

nothing to commit (working directory clean)

 

huangyineng@HUANGYINENG-PC ~/hello-world (b1)

$ cat helloworld.naxsu

hello world

add something

b1 branch add something

切换到 master 分支,进行和上面一样的操作

huangyineng@HUANGYINENG-PC ~/hello-world (b1)

$ git checkout master

Switched to branch 'master'

Your branch is ahead of 'origin/master' by 7 commits.

 

huangyineng@HUANGYINENG-PC ~/hello-world (master)

$ vim helloworld.naxsu

 

huangyineng@HUANGYINENG-PC ~/hello-world (master)

$ git commit -a -m "master update helloworld.naxsu"

[master d9f15c9] master update helloworld.naxsu

 1 file changed, 1 insertion(+)

 

huangyineng@HUANGYINENG-PC ~/hello-world (master)

$ cat helloworld.naxsu

hello world

add something

master branch add something

从中可以看出两个分支是没有影响的。

##########NextPage##########

列出各分支之间的信息

huangyineng@HUANGYINENG-PC ~/hello-world (master)

$ git show-branch

! [b1] b1 update helloworld.naxsu

 * [master] master update helloworld.naxsu

--

 * [master] master update helloworld.naxsu

+  [b1] b1 update helloworld.naxsu

+* [master^] delete test.naxsu

比较 master b1 这两个分支文件的不同

huangyineng@HUANGYINENG-PC ~/hello-world (master)

$ git diff master b1

diff --git a/helloworld.naxsu b/helloworld.naxsu

index 9e73a56..7929722 100644

--- a/helloworld.naxsu

+++ b/helloworld.naxsu

@@ -1,3 +1,3 @@

 hello world

 add something

-master branch add something

+b1 branch add something

分支合并 merge

huangyineng@HUANGYINENG-PC ~/hello-world (master)

$ git merge "merge" HEAD b1

Auto-merging helloworld.naxsu

CONFLICT (content): Merge conflict in helloworld.naxsu

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

显示自动合并失败,我们看一下状态,可以看到 helloworld.naxsu 被两个分支修改过了

huangyineng@HUANGYINENG-PC ~/hello-world (master|MERGING)

$ git status

# On branch master

# Your branch is ahead of 'origin/master' by 8 commits.

#

# Unmerged paths:

#   (use "git add/rm ..." as appropriate to mark resolution)

#

#       both modified:      helloworld.naxsu

#

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

我们来看一下 helloworld.naxsu 的内容

huangyineng@HUANGYINENG-PC ~/hello-world (master|MERGING)

$ cat helloworld.naxsu

hello world

add something

<<<<<<< HEAD

master branch add something

=======

b1 branch add something

>>>>>>> b1

把们用 vim 编辑工具人为的把冲突去掉,然后保存、提交,切换到其他分支,也可以看到没有冲突了

huangyineng@HUANGYINENG-PC ~/hello-world (master|MERGING)

$ vim helloworld.naxsu

 

huangyineng@HUANGYINENG-PC ~/hello-world (master|MERGING)

$ git commit -a -m "merging"

[master 34908f4] merging

 

huangyineng@HUANGYINENG-PC ~/hello-world (master)

$ cat helloworld.naxsu

hello world

add something

master branch add something

b1 branch add something

 

huangyineng@HUANGYINENG-PC ~/hello-world (master)

$ git checkout b1

Switched to branch 'b1'

 

huangyineng@HUANGYINENG-PC ~/hello-world (b1)

$ cat helloworld.naxsu

hello world

add something

b1 branch add something

另一种合并的做法,自行去查帮助文档:

$ git checkout master

$ git pull . b1

本文链接: http://www.656463.com/portal.php?mod=view&aid=7 2 ,转载请注明出处

下一节: 标签

分享到:
评论

相关推荐

    git实战-多分支开发-2022新项目.doc

    本文档“git实战-多分支开发-2022新项目.doc”详细介绍了在实际开发环境中如何利用Git进行多分支开发。 在多分支开发模式下,每个开发人员通常都有自己的独立开发分支,以便于进行独立的工作,同时保持主线分支的...

    Git-2.19.1-32-bit(Git工具)

    4. 强大的分支和合并:Git的分支机制使得开发者可以轻松创建并切换分支,进行平行开发,然后再合并回主分支,促进团队协作。 5. 图形化界面和命令行工具:Git提供强大的命令行工具,同时也有如SourceTree、Git...

    git零基础实战

    #### 四、Git实战 - **项目管理** - 如何利用Git管理和跟踪自己的工作。 - 团队协作的最佳实践。 - **学习环境** - 支持的操作系统:Ubuntu 14.04、Ubuntu 10.04、Fedora、Windows 7等。 - 远程仓库托管服务:...

    Git实战操作(Idea)

    本文档主要介绍了在IDEA(IntelliJ IDEA)中进行Git实战操作时的一些基本命令。 - **mkdir 文件夹名**:在当前目录下创建一个新的文件夹。 - **cd 文件夹名**:进入指定的文件夹。 - **cd ..**:返回当前目录的父级...

    git实战命令

    在本文中,我们将深入探讨Git实战中的常用命令,帮助你更好地理解和运用Git。 #### 起步 1. **添加远程仓库**:使用`git remote add`命令将本地仓库与远程仓库关联,例如: ```bash git remote add origin git@...

    Git实战IDEA操作

    Git实战IDEA操作详解 Git是一款分布式版本控制系统,它在软件开发中扮演着至关重要的角色,帮助团队协作和代码管理。IntelliJ IDEA(简称IDEA)是广受欢迎的Java集成开发环境,同样也提供了强大的Git集成功能。本文...

    GitHack-master.rar

    1. **Git基础**:Git的基础概念包括版本控制、分支管理、提交历史、合并冲突等。学习如何创建、克隆、添加、提交、拉取和推送代码到远程仓库是Git的基本操作。 2. **Git工作流**:理解Git的工作流模型,如主分支...

    Git-2.17.0-64 for windows

    1. 分支管理:Git的分支模型非常灵活,允许快速创建和切换分支,便于开发人员并行工作和合并代码。 2. 版本历史:Git能够保存每个提交的完整快照,使得查看和回溯版本历史变得简单。 3. 钩子:Git的钩子机制允许在...

    高级软件人才培训专家-7月27日Java直播-GitFlow

    ### 企业级Git实战系列公开课知识点总结 #### 一、Git的重要性及应用场景 - **代码版本控制**:Git能够帮助开发者记录每一次代码修改的历史版本,方便随时查阅或回滚到历史版本。 - **团队协作**:通过使用Git,...

    git分支原理命令图文解析

    ### Git分支原理与命令详解 #### 一、Git分支机制概览 在深入探讨Git分支的具体操作之前,首先需要理解Git是如何管理和维护不同版本的。Git通过一系列的指针(称为引用,通常简称ref)来追踪项目的不同版本。每个...

    git入门手册-第一版

    - 有分叉的分支合并:使用`git merge --no-ff &lt;branch_name&gt;`保留合并历史。 - 冲突解决:在合并时遇到冲突,手动编辑冲突文件,然后`git add`和`git commit`。 8. **GitHub/Gitee** - 注册账户:在GitHub或...

    路飞学城Alex7小时快速学会GIT协作开发实战(完整版)课堂笔记PDF 路飞git实战课堂笔记pdf

    - **合并分支**:使用`git merge`将dev分支合并到master,然后推送至远程master分支。 以上是Git的基本操作和协作开发流程,通过熟练掌握这些命令,可以有效地进行团队合作,确保代码版本控制的高效和准确。在...

    git零基础入门到实战详解

    ### Git零基础入门到实战详解 #### 一、Git简介 **Git** 是一个开源的分布式版本控制系统,用于跟踪在软件开发过程中对文件的修改。它最初由Linus Torvalds于2005年创建,目的是为了更高效地管理Linux内核的源代码...

    Git相关资源

    - **拉取并合并远程分支**:`git pull origin &lt;branch&gt;`,从指定远程分支拉取并合并到本地分支。 6. **撤销操作** - **取消暂存**:`git reset &lt;file&gt;` 或 `git reset`,将文件从暂存区移回工作区。 - **撤销...

    Git实战入门.docx

    Git的主要优点包括其高效、灵活性以及强大的分支管理功能。本文档详细介绍了Git的基础知识,适合没有版本控制经验的新手入门。 1. **Git概述**: - **版本控制**:Git是一个用于追踪文件内容变化的系统,方便团队...

    git实战笔记.pdf

    Git 提供离线开发能力,可以更快地进行分支合并,而 SVN 需要网络连接才能进行大部分操作。此外,Git 的分支模型更加灵活,适合并行开发。 2. 基本名词解释: - Repository(仓库):存储所有版本信息的地方。 - ...

    Git教程(分支管理、分支命令、命令详解、gitignore)

    Git不仅支持快速分支切换与合并,还提供了强大的历史记录查询与恢复能力,成为现代软件开发不可或缺的工具。 优点: 系统性:本教程从Git基础概念讲起,逐步深入分支管理、命令详解及.gitignore配置等核心内容,...

    Git Version Control Cookbook 2nd Ed-2018.7.pdf

    - **合并分支**:使用`git merge &lt;branch-to-merge&gt;`命令将指定分支合并到当前分支。 - **回滚操作**: - **撤销提交**:使用`git reset --hard &lt;commit-hash&gt;`命令可以撤销指定提交后的所有更改。 - **还原文件*...

Global site tag (gtag.js) - Google Analytics