Git学习笔记3
作者:小教学发布时间:2023-09-27分类:程序开发学习浏览:72
导读:Git分支管理:先来考虑一个问题:开发者A开发软件的某一个功能模块,还没有开发完成,但害怕进度丢失就提交。假设另一位开发者B并不知道A没有完成,而直接使用了A开发的文...
Git分支管理:
先来考虑一个问题: 开发者A开发软件的某一个功能模块, 还没有开发完成,但害怕进度丢失就提交。假设另一位开发者B并不知道A没有完成, 而直接使用了A开发的文件,这造成了问题。
解决方法: 开发者A创建一个属于自己的分支,这个分支只属于A,不会影响其他人。开发完成后,合并到项目主分支即可。
分支可以看做是平行空间:
查看分支:
默认只有一个分支,前面*代表为当前分支。
查看分支:
创建分支:
[root@git-server GitTest]# git branch dev
[root@git-server GitTest]#
[root@git-server GitTest]# git branch
dev
* master
切换分支:
使用 git checkout 分支名 来切换分支。
[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分支上新开发了一个代码文件,添加并提交。
[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分支上查看到了。
[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上修改文件:
[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)提交分支上的修改:
[root@git-server GitTest]# git add 5.py
[root@git-server GitTest]# git commit -m "冲突测试"
[dev 844bd61] 冲突测试
1 file changed, 1 insertion(+)
3)切换master分支,也修改相同的文件:
[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分支上的修改:
[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,就会出现冲突了。
[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使用<<<<<<<<<,=========,>>>>>>>>
符号分割冲突的内容,手动删除这些符号,并修改成你想要的内容。
[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)解决冲突后添加并提交,最后再合并。
[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 分支名
来删除分支。==注意:== 不能删除当前使用的分支.
[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
感觉这样学下来,思路还是很清楚的。
之前自己看书操作,总感觉有点乱。这样整理了,思路也是很明确的。
- 程序开发学习排行
-
- 1鸿蒙HarmonyOS:Web组件网页白屏检测
- 2HTTPS协议是安全传输,为啥还要再加密?
- 3HarmonyOS鸿蒙应用开发——数据持久化Preferences
- 4记解决MaterialButton背景颜色与设置值不同
- 5鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
- 6鸿蒙HarmonyOS实战-ArkUI组件(Stack)
- 7鸿蒙HarmonyOS实战-ArkUI组件(GridRow/GridCol)
- 8[Android][NDK][Cmake]一文搞懂Android项目中的Cmake
- 9鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
- 最近发表
-
- WooCommerce最好的WordPress常用插件下载博客插件模块的相关产品
- 羊驼机器人最好的WordPress常用插件下载博客插件模块
- IP信息记录器最好的WordPress常用插件下载博客插件模块
- Linkly for WooCommerce最好的WordPress常用插件下载博客插件模块
- 元素聚合器Forms最好的WordPress常用插件下载博客插件模块
- Promaker Chat 最好的WordPress通用插件下载 博客插件模块
- 自动更新发布日期最好的WordPress常用插件下载博客插件模块
- WordPress官方最好的获取回复WordPress常用插件下载博客插件模块
- Img to rss最好的wordpress常用插件下载博客插件模块
- WPMozo为Elementor最好的WordPress常用插件下载博客插件模块添加精简版