程序员必备技能之 多种场景下的Git操作

本文分享了在不同开发场景中使用Git命令的实战经验,包括简单提交、开发新功能、解决bug等常见流程,旨在帮助程序员提高工作效率,构建个人Git操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


本文默认读者使用过git,并且知道简单的git命令。本篇文章介绍git学习中的重点,以及利用git构建自己的workflow

Git学习的动力和重点

1 兴趣驱动。很多朋友能在网上看到各种各样git教程,但是这些文章仅仅是写出git各种命令的操作。当看到这种文章时,我们往往只是找到需要的命令就直接离开,这导致每次使用git都需要google搜索。

2 工作驱动。由于工作驱动学习git,如果公司代码全部托管在git仓库,程序员由于要多次提交代码,如果每次都要上网查询git命令则会大大影响效率,而且也不够“酷”。

我是由于工作驱动才认真学习git的操作,并在学习过程中结合工作中使用git的各种场景,制定了自己的workflow。

个人认为git学习的重点为以下两点:

  • 明确工作区,暂存区,暂存区分支的概念

  • 分支指针的概念
    在这里插入图片描述

常用的git命令

这是我工作中常用的Git命令,如果不知道每条命令的意思,请继续耐心往下看。我认为记忆git命令需要依托于各种使用场景,而不能简单的依靠记忆,否则很容易遗忘。

  • git status

  • git add

  • git commit

  • git stash

  • git log

  • git log --graph

  • git reflog

  • git cherry-pick

  • git checkout -b

  • git checkout

  • git reset --hard

  • git reset HEAD

  • git merge

Git构建workflow

场景一:简单提交

  • git add -A /*将工作区修改提交到暂存区 */

  • git commit -m “” /* 将暂存区修改提交到暂存区分支 */

  • git log --graph /* 强迫症的看一下commit记录 */

  • git push origin master /* 将本地分支的提交,push到远程master分支 */

场景二:开发新feature

  • git checkout -b /* 从本地master分支创建以feature命名的分支 */

  • [新feature开发中…]

  • git add -A /* 将新增代码从工作区更新到暂存区 */

  • git commit -m “information” /* 将暂存区代码提交到feature的本地分支 */

  • git log --graph /* 强迫症的查看以下commit的log */

  • git checkout master /* 切换到本地master分支 */

  • git merge /* 将feature分支的改动同步到本地master分支 */

  • git push origin master /* 将本地master分支的改动push到远程master分支 */

场景三:解决bug

  • git checkout -b (从master分支创建以ticket id命名的分支)

  • [解决bug中…]

  • git add -A (将ticket分支修改的代码更新到暂存区)

  • git commit -m “information” /* 将修改的代码提交到ticket分支 */

  • git log --graph /* 强迫症的看下提交记录 */

  • git checkout master /* 切换到master分支 */

  • git merge /* 将ticket分支的修改merge到master分支 */

  • git push origin master /* 将本地master分支的修改push到远程aster分支 */

场景四:开发新feature的过程中,需要立刻解决bug

  • git checkout -b /* 为某个feature创建新的分支 */

  • [新功能开发中…,突然来了一个优先级更高的bug需要解决]

  • git stash /* 保存feature分支工作区修改的代码 */

  • git checkout master /* 切换到本地master分支 */

  • git checkout -b /* 根据ticket id创建修改bug的分支 */

  • [解决bug中…]

  • git add -A /* 将修复bug改动的代码更新到暂存区 */

  • git commit -m “information” /* 将暂存区代码提交到本地ticket分支 */

  • git checkout master /* 切换到master分支 */

  • git merge /* 将ticket分支的修改merge到master分支 */

  • git checkout /* 切换到最初的feature分支 */

  • git log --graph /* 强迫症的看一下commit的历史记录 ,记录最新一次commit id的前6位*/

  • git stash pop /* 将feature分支工作区的修改还原 */

  • git cherry-pick /* 将master分支最新的提交同步到feature分支 */

场景五:正在修改代码,忽然发现某个文件修改错误,需要撤回

  • git checkout – /* 撤回工作区中某个文件的修改 */

场景六:修改的代码更新到暂存区,需要撤回暂存区的修改

  • git reset HEAD /* 将暂存区的修改撤回到工作区 */

场景七:修改的代码已经commit到本地分支,需要撤销修改

方法一:

  • git reset --hard HEAD^ /* 返回到上次提交 */

方法二:

  • git log --graph /* 查看每次commit的ID number */

  • git reset --hard /* 返回到某次提交 */

场景八:修改的代码已经push到远程仓库,需要重新提交修改

  • [在master分支修改代码]

  • git add -A /* 将工作区代码更新到暂存区 */

  • git commit -amend /* 在上次基础上继续提交 */

  • git push origin master /* 将修改push到远程master分支 */

Note:这是一种偷懒的做法,理论上不应该在master分支修改代码,但我目前还未找到好的替代方法。

场景九:同时开发多个feature

  • git checkout -b /* 为每个feature创建一个分支 */

场景十:在本地分支撤销了上次提交,你又后悔了怎么办

  • git reflog /* 该命令记录每次使用的git命令 / git reset --hard /
    返回上一次提交 */

总结

这篇文章主要介绍了在不同的开发场景中使用哪些git命令进行操作。我花了一上午的时间将GIT的操作学习了一遍,又花了一下午的时间根据工作中使用git的场景,构建了自己的workflow。如果你还未熟练使用git,这篇文章能在某种程度上为你提供帮助。

如果你没使用过git,那这篇文章对你来说无异于天书。我建议可以先去学习廖雪峰老师写的git操作手册

ps: 欢迎关注我的公众号[酷酷的coder],分享转行菜鸟程序员成长过程汇总的烦恼和反思.
酷酷的coder

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值