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。

image

  • 删除分支
[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上新建测试文件
image

[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 
这是测试本地仓库是否能正常拉取代码
posted @   钱超多  阅读(1)  评论(0编辑  收藏  举报
编辑推荐:
· 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)
点击右上角即可分享
微信分享提示