Git学习笔记3

Git分支管理:

先来考虑一个问题: 开发者A开发软件的某一个功能模块, 还没有开发完成,但害怕进度丢失就提交。假设另一位开发者B并不知道A没有完成, 而直接使用了A开发的文件,这造成了问题。

解决方法: **开发者A创建一个属于自己的分支,这个分支只属于A,不会影响其他人。**开发完成后,合并到项目主分支即可。

分支可以看做是平行空间:

查看分支:

默认只有一个分支,前面*代表为当前分支。

查看分支:

创建分支:

bash 复制代码
[root@git-server GitTest]# git branch dev
[root@git-server GitTest]#
[root@git-server GitTest]# git branch
  dev
* master

切换分支:

使用 git checkout 分支名 来切换分支。

bash 复制代码
[root@git-server GitTest]# git checkout dev
Switched to branch 'dev'
[root@git-server GitTest]#
[root@git-server GitTest]# git branch
* dev
  master

合并分支:

1)在dev分支上新开发了一个代码文件,添加并提交。

bash 复制代码
[root@git-server GitTest]# echo "New feature" >> 5.py
[root@git-server GitTest]#
[root@git-server GitTest]# git add 5.py
[root@git-server GitTest]#
[root@git-server GitTest]# git commit -m "New feature 5.py"
[dev 51b959c] New feature 5.py
 1 file changed, 1 insertion(+)
 create mode 100644 5.py
[root@git-server GitTest]#
[root@git-server GitTest]# git checkout master
Switched to branch 'master'
[root@git-server GitTest]#
[root@git-server GitTest]# cat 5.py
cat: 5.py: No such file or directory

切换到master分支,没有找到5.py

2)合并分支,再查看,就能在master分支上查看到了。

bash 复制代码
[root@git-server GitTest]# git merge dev
Updating 8153d25..51b959c
Fast-forward
 5.py | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 5.py
[root@git-server GitTest]# cat 5.py
New feature

分支冲突:

有些复杂的情况会造成冲突,这个时候git就不能帮我们自动的合并分支。 我们就要手动处理冲突。

1)在dev上修改文件:

bash 复制代码
[root@git-server GitTest]# git checkout dev
Switched to branch 'dev'
[root@git-server GitTest]# echo "冲突测试" >> 5.py
[root@git-server GitTest]#
[root@git-server GitTest]# cat 5.py
New feature
冲突测试

2)提交分支上的修改:

bash 复制代码
[root@git-server GitTest]# git add 5.py
[root@git-server GitTest]# git commit -m "冲突测试"
[dev 844bd61] 冲突测试
 1 file changed, 1 insertion(+)

3)切换master分支,也修改相同的文件:

bash 复制代码
[root@git-server GitTest]# git checkout master
Switched to branch 'master'
[root@git-server GitTest]#
[root@git-server GitTest]# echo "哈哈" >> 5.py
[root@git-server GitTest]#
[root@git-server GitTest]# cat 5.py
New feature
哈哈

4)然后提交master分支上的修改:

bash 复制代码
[root@git-server GitTest]# git add 5.py
[root@git-server GitTest]# git commit -m "冲突测试"
[master 4721701] 冲突测试
 1 file changed, 1 insertion(+)

5)合并dev分支到master,就会出现冲突了。

bash 复制代码
[root@git-server GitTest]# git merge dev
Auto-merging 5.py
CONFLICT (content): Merge conflict in 5.py
Automatic merge failed; fix conflicts and then commit the result.

6)手工解决冲突:

git使用<<<<<<<<<,=========,>>>>>>>>符号分割冲突的内容,手动删除这些符号,并修改成你想要的内容。

bash 复制代码
[root@git-server GitTest]# cat 5.py
New feature
<<<<<<< HEAD
哈哈
=======
冲突测试
>>>>>>> dev
[root@git-server GitTest]# vim 5.py
[root@git-server GitTest]#
[root@git-server GitTest]# cat 5.py
New feature
冲突测试

7)解决冲突后添加并提交,最后再合并。

bash 复制代码
[root@git-server GitTest]# git add 5.py
[root@git-server GitTest]# git commit -m  "冲突解决"
[master b956e9d] 冲突解决
[root@git-server GitTest]#
[root@git-server GitTest]# git merge dev
Already up-to-date.

删除分支:

使用git branch -d 分支名来删除分支。==注意:== 不能删除当前使用的分支.

bash 复制代码
[root@git-server GitTest]# git branch
  dev
* master
[root@git-server GitTest]#
[root@git-server GitTest]# git branch -d dev
Deleted branch dev (was 844bd61).
[root@git-server GitTest]#
[root@git-server GitTest]# git branch
* master

感觉这样学下来,思路还是很清楚的。

之前自己看书操作,总感觉有点乱。这样整理了,思路也是很明确的。

相关推荐
hh随便起个名4 小时前
适合小白的git的基础使用方法
git
我会一直在的4 小时前
Devps持续集成
git·ci/cd
CoderJia程序员甲5 小时前
GitHub 热榜项目 - 日榜(2026-02-08)
git·ai·开源·llm·github
Serene_Dream7 小时前
git 常用命令
git
jiayong237 小时前
Detached HEAD 状态详解
git
李少兄16 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
先跑起来再说1 天前
Git 入门到实战:一篇搞懂安装、命令、远程仓库与 IDEA 集成
ide·git·后端·elasticsearch·golang·intellij-idea
承渊政道1 天前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
Doro再努力1 天前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
摇滚侠1 天前
MAC IDEA GIT 提交区显示了几个不存在的目录
git·idea