Git实战演练,模拟日常使用,快速掌握命令

01 引言
上一期借助Idea,完成了Git仓库的建立、配置、代码提交等操作,初步入门了Git的使用。然而日常开发中经常面临各种各样的问题,入门级的命令远远不够使用。
这一期,我们将展开介绍Git的日常处理命令,解决日常问题,熟悉Git操作。
02 Git分支管理
一个新的项目开始,我们需要从主干分支上拉取开发分支。我们还是以上一期的project-test 仓库为例。

2.1 创建新的分支
按照下图所示操作:

创建dev-20250520分支:

Git命令:
# 创建新分支
git checkout -b dev-20250520 origin/main# 切换分支
git checkout dev-20250520
查看所有本地和远程分支:

对应的命令:
# 查看所有本地和远程分支
git branch -a# 查看远程分支
git branch -r# 查看本地所有分支
git branch

2.2 提交代码
编写实例代码,直接提交到本地仓库。

其实也可以直接从控制台看看Git执行了哪些命令:

2.3 推送到远程仓库
首次推送到远程仓库会自动创建分支名的远程仓库分支。正常开发中我们的代码应该是直接从分支项目检出的,不需要创建远程仓库的分支。

远程仓库查看:

03 处理冲突
为了制造冲突,直接在GitHub上修改GitTest.java文件。

3.1 制造冲突
本地修改同一个文件(GitTest.java),提交本地仓库没有冲突,但是推送远程仓库时,就会出现冲突。

3.2 解决冲突
冲突的解决保留历史分支记录,我们一般会选择Merge处理。

选择Merge之后,Git会自动从远程仓库拉取最新的代码,并在工作区标记处冲突的位置(如上图)。我们通过Idea继续Merge处理冲突。

左右两侧分别表示本地仓库和远程仓库,中间是处理的最终结果。黄色代表相对去中间工作区的改动的地方。点击箭头即可完成代码移动。
假设我们两边的代码都需要,我们只要一次点击箭头即可完成代码的合并(冲突的解决),再次提交到本地仓库。

代码提交到本地仓库之后,就可查看该分支的所有变更记录:

也可以通过命令查看:
# 查看历史提交记录
git log
命令结果:

最后推送到远程仓库即可。
04 代码回滚
代码回滚是一个优秀的设计。网上不是有这样的梗,产品做了第一版方案后给老板看,老板觉得不满意,然后来来回回的改,最后老板觉得还是第一版比较好。产品的心中一万只羊驼奔腾而过。
程序员同样面临的这样的场景,但是代码回滚完美的解决了这样的问题。
我们模拟三版提交方案。在GitTest.java增加提交的版本信息:
/*** 第一版提交方案*/
private void firstCase() {System.out.println("第一版Case");
}/*** 第二版提交方案*/
private void secondCase() {System.out.println("第二版Case");
}/*** 第三版提交方案*/
private void thirdCase() {System.out.println("第三版Case");
}

假设我们要回到第一版的方案:
选中第一版记录,然后右键复制版本号

4.1 未推送远程的回滚


命令:
# --hard 底回退到指定提交,丢弃所有未提交的更改
# –mixed(默认):移动 HEAD 并重置暂存区,但保留工作区修改
# –soft:仅移动 HEAD,保留工作区和暂存区
git reset --hard 回退的版本号
结果迅速到达第一版:

4.2 已推送至远程的回滚
命令:
# 回退到指定的版本号
git revert 版本号

如果是相同的位置的代码修改可能会出现冲突,正常解决即可

解决之后,需要重洗提交代码。
05 合并分支
代码合并阶段一般是出现在开发分支过久,迭代多次需要合并新分支,另外一个就是发布代码之后,必须将代码合并到主干上。
案例中我们一直在dev-20250520开发,我们将开发分支合并到主干(main)分支上。首先我们需要需要切换分支到主干分支上。
切换分支的命令:
# 切换到主干分支上
git checkout main
Idea的操作:

切到主干分支发现并没有GitTest.java的文件:

分支合并:

合并之后代码会之间保存到暂存区,直接推送到远程即可:

06 小结
今天就一个简单的模拟实战项目,练习了Git日常处理问题的命令。如果有什么更加有趣的命令,评论区留言讨论!
