CI/CD-分布式版本控制系统-Git分支命令实践
- 默认版本只有一个分支,master
# 查看当前版本仓库,有哪些分支
# 以及星星的那个分支,就是你在用的分支
[root@localhost RuoYi]# git branch
* master
- 创建分支
[root@localhost RuoYi]# git branch liangliang
[root@localhost RuoYi]# git branch wenjie
[root@localhost RuoYi]# git branch
liangliang
* master
wenjie
- 切换分支
[root@localhost RuoYi]# git checkout wenjie
切换到分支 'wenjie'
[root@localhost RuoYi]# git status
# 位于分支 wenjie
无文件要提交,干净的工作区
- dev分支下写代码
[root@localhost RuoYi]# git checkout wenjie
切换到分支 'wenjie'
[root@localhost RuoYi]# git branch
liangliang
master
* wenjie
[root@localhost RuoYi]# echo "我是wenjie 分支" >> wenjie.py
[root@localhost RuoYi]# git status
# 位于分支 wenjie
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# wenjie.py
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
[root@localhost RuoYi]# git add wenjie.py
[root@localhost RuoYi]# git status
# 位于分支 wenjie
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 新文件: wenjie.py
[root@localhost RuoYi]# git log
commit 97d4aea0c75d63a8b4fe5d274cdc9207c5b91d70
Author: pyyu <yc_uuuu@163.com>
Date: Fri Aug 2 05:34:45 2024 -0400
v1 提交wenjie.py
- 合并分支
master作为约定默认分支,代码合并到master即可
# 要先回到master分支
[root@localhost RuoYi]# git checkout master
切换到分支 'master'
[root@localhost RuoYi]# git merge wenjie
更新 ef6326b..97d4aea
Fast-forward
wenjie.py | 2 ++
1 file changed, 2 insertions(+)
create mode 100644 wenjie.py
- 分支冲突
[root@localhost RuoYi]# git checkout wenjie
切换到分支 'wenjie'
[root@localhost RuoYi]# git status
# 位于分支 wenjie
无文件要提交,干净的工作区
[root@localhost RuoYi]# git log -2
commit 18312c64a4f1371d40b307e13c225b70db089ff2
Author: pyyu <yc_uuuu@163.com>
Date: Fri Aug 2 07:00:29 2024 -0400
wen修改wenjie.py
[root@localhost RuoYi]# echo "wenjie分支, wenjie修改了wenjie.py " > wenjie.py
[root@localhost RuoYi]# git add wenjie.py
[root@localhost RuoYi]# git commit -m "wenjie分支,wenjie再次修改wenjie.py"
[wenjie 68a57a1] wenjie分支,wenjie再次修改wenjie.py
1 file changed, 1 insertion(+), 1 deletion(-)
[root@localhost RuoYi]# git status
# 位于分支 wenjie
无文件要提交,干净的工作区
[root@localhost RuoYi]# git checkout master
切换到分支 'master'
您的分支领先 'origin/master' 共 13 个提交。
(使用 "git push" 来发布您的本地提交)
[root@localhost RuoYi]# echo "master分支,修改wenjie.py文件" wenjie.py
[root@localhost RuoYi]# git add wenjie.py
[root@localhost RuoYi]# git commit -m "master分支 修改wenjie.py文件 "
[master f298638] master分支 修改wenjie.py文件
1 file changed, 1 insertion(+), 1 deletion(-)
[root@localhost RuoYi]# git merge wenjie
自动合并 wenjie.py
冲突(内容):合并冲突于 wenjie.py
自动合并失败,修正冲突然后提交修正的结果。
[root@localhost RuoYi]# cat wenjie.py
<<<<<<< HEAD
master分支,修改wenjie.py文件
=======
wenjie分支, wenjie修改了wenjie.py
>>>>>>> wenjie
[root@localhost RuoYi]# cat wenjie.py # 只保留wenjie分支下的内容,删除master分支修改的内容,然后进行合并
wenjie分支, wenjie修改了wenjie.py
- 修改为git协议
[root@localhost RuoYi]# git remote -v
origin https://gitee.com/y_project/RuoYi.git (fetch)
origin https://gitee.com/y_project/RuoYi.git (push)
[root@localhost RuoYi]# git remote remove origin
[root@localhost RuoYi]# git remote -v
[root@localhost RuoYi]# git remote add origin git@gitee.com:qs_gitee/ruoyi.git #gitee仓库关联本地仓库
[root@localhost RuoYi]# git remote -v
origin git@gitee.com:qs_gitee/ruoyi.git (fetch)
origin git@gitee.com:qs_gitee/ruoyi.git (push)
##### push代码到远程仓库失败,ssh认证失败
[root@localhost RuoYi]# git push -u origin master #push失败
The authenticity of host 'gitee.com (180.76.198.77)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
ECDSA key fingerprint is MD5:27:e5:d3:f7:2a:9e:eb:6c:93:cd:1f:c1:47:a3:54:b1.
Are you sure you want to continue connecting (yes/no)?
##### 远程仓库添加ssh公钥
[root@localhost RuoYi]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:33jWdVePaBEZITa1mdY59ZluivYt2WLBoGtKyGAh0XA root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| ooE +.=+ .|
| o. . o.* o+|
| . . * +oo|
| . . o o.oo|
| o S . = .o=|
| . o . o +.+o.o|
| o . +o+.= |
| . o.o.=.. |
| .o ..o. |
+----[SHA256]-----+
[root@localhost RuoYi]#
[root@localhost RuoYi]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCw7xfqqc9tfEEEGQBMyjKO4nxDMH2OYSMNkEHeUaBKQ4NZSU4g1zyLjBfdVa0HJrFFAr1Y7u+usKFDSI7GYU+a40X3lh3GJkotAutibHk/L64JqnTPcUBzP5oEhhAUCC6tORwmcai8T+CHCegOnEKIo9s+/xQBeyKD5EY+fVeQEST9e7nyP3JbZJRvcu2AzR3AZiRr1QANe90e32E3FAwwH9n9HTV41RKnfFvbi/mGLLgvqQd5rWJPky6/NVt4s/xnPPj3rMCfb7X9DARBG401kkgJZ3lDyD2+SwrZ5fh4Euuay8RRRIwrLDhm8mOZr3C5aui5VmltPzfeHbPokhmR root@localhost.localdomain
##### 再次推送代码到远程仓库
[root@localhost RuoYi]# git push -u origin master #推从成功
Warning: Permanently added the ECDSA host key for IP address '180.76.198.77' to the list of known hosts.
Counting objects: 31111, done.
Compressing objects: 100% (9789/9789), done.
Writing objects: 100% (31111/31111), 11.59 MiB | 1.04 MiB/s, done.
Total 31111 (delta 14939), reused 31069 (delta 14925)
remote: Resolving deltas: 100% (14939/14939), done.
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:qs_gitee/ruoyi.git
* [new branch] master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
- 删除分支
[root@localhost RuoYi]# git branch -d liangliang
已删除分支 liangliang(曾为 ef6326b)。
[root@localhost RuoYi]# git branch -d wenjie
error: 分支 'wenjie' 没有完全合并。
如果您确认要删除它,执行 'git branch -D wenjie'。
[root@localhost RuoYi]# git branch -d zhangsan
已删除分支 zhangsan(曾为 c75f5e8)。
[root@localhost RuoYi]# git branch
* master
wenjie
- 实现远程仓库代码下载
首先在gitee上新建测试文件
[root@localhost RuoYi]# git pull
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
来自 gitee.com:qs_gitee/ruoyi
f97febf..16f8773 master -> origin/master
更新 f97febf..16f8773
Fast-forward
test.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 test.txt
[root@localhost RuoYi]# ls
444.sh 777.sh bin doc LICENSE pom.xml README.md ruoyi-admin ruoyi-common ruoyi-framework ruoyi-generator ruoyi-quartz ruoyi-system ry.bat ry.sh sql test.sh test.txt
[root@localhost RuoYi]# cat test.
cat: test.: 没有那个文件或目录
[root@localhost RuoYi]# cat test.txt
这是测试本地仓库是否能正常拉取代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)