文章目录
- Git 不要只会 pull 和 push,搞上 5 个提升效率的命令!
- 1. `git stash` —— 暂存修改,快速切换分支
- 2. `git cherry-pick` —— 单独拣选特定提交
- 3. `git rebase` —— 整理提交历史,让提交记录更清晰
- 4. `git reset` —— 恢复到指定状态,撤销错误提交
- 5. `git reflog` —— 找回误删除的提交
- 额外小技巧:组合使用 `rebase` 和 `cherry-pick` 修复代码冲突
- 总结
博主介绍:全网粉丝10w+、CSDN合伙人、华为云特邀云享专家,阿里云专家博主、星级博主,51cto明日之星,热爱技术和分享、专注于Java技术领域
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
Git 不要只会 pull 和 push,搞上 5 个提升效率的命令!
Git 是每个开发者的基本技能,但很多人只停留在 git pull
和 git push
的基础操作上,忽略了它更强大的功能。Git 其实包含了许多提升效率的命令,可以帮我们管理历史、优化提交、处理分支冲突,甚至挽救犯下的错误。今天就来介绍 5 个提升开发效率的 Git 命令,结合具体案例和代码示例,帮助你更深入掌握 Git。
1. git stash
—— 暂存修改,快速切换分支
** 背景 **
在日常开发中,我们经常需要切换分支,例如从开发分支切到生产分支修复 bug,但此时又不想放弃未完成的修改。git stash
能将当前工作区的修改“存入”一个临时的地方,方便之后恢复,让你可以安全、快速地切换分支。
** 用法**
# 将当前修改暂存
git stash# 列出所有暂存的修改记录
git stash list# 恢复最新的暂存修改
git stash apply# 恢复并删除该暂存修改
git stash pop
** 示例**
假设你正在 feature-A
分支上开发新功能,这时突然接到任务需要切到 master
分支修复紧急 bug。此时,只需使用 git stash
:
# 保存当前修改并切换到 master 分支
git stash
git checkout master
修复完 bug 并提交后,可以切回 feature-A
分支,并恢复之前的工作状态:
git checkout feature-A
git stash pop
小提示:你还可以为
git stash
起名字,例如git stash save "feature-A进度"
,方便后续查找。
2. git cherry-pick
—— 单独拣选特定提交
** 背景**
在开发多个功能的过程中,有时只需要从一个分支拿某一个特定的提交,而不是整个分支的合并。这种场景下,git cherry-pick
可以大显身手,帮助你只“挑”需要的提交。
** 用法**
# 应用某个提交到当前分支
git cherry-pick <commit-hash>
** 示例**
假设你在 feature-A
分支完成了一个修复提交,并提交到了该分支。但产品需求变动,需要将这个修复先应用到 master
分支:
# 切换到 master 分支
git checkout master# 使用 cherry-pick 将修复提交应用到 master
git cherry-pick <修复提交的hash>
cherry-pick
操作非常适合单独拣选一个或多个提交,尤其是在代码紧急合并或回滚某些提交时使用。
3. git rebase
—— 整理提交历史,让提交记录更清晰
** 背景**
在多人协作或进行复杂开发时,分支上常常会产生许多提交记录,有些记录甚至毫无意义(比如 “fix bug”)。git rebase
能帮我们优化提交历史,把相关的提交合并在一起,便于代码审查和后续维护。
** 用法**
# 交互式 rebase,对前 n 个提交进行整理
git rebase -i HEAD~<n>
** 示例**
假设你的提交记录如下:
commit A - 初始提交
commit B - 新增功能 1
commit C - 修复功能 1
commit D - 新增功能 2
commit E - 修复功能 2
你希望将功能 1 和功能 2 的提交分别合并成一次提交,便于查看和管理。可以执行:
git rebase -i HEAD~4
进入交互式编辑界面,将需要合并的提交使用 squash
标记:
pick B 新增功能 1
squash C 修复功能 1
pick D 新增功能 2
squash E 修复功能 2
这会将 B
和 C
合并成一个提交,D
和 E
合并成另一个提交,简化提交历史。
4. git reset
—— 恢复到指定状态,撤销错误提交
** 背景**
开发过程中,难免会遇到误操作,如提交到错误分支、提交错误内容等。此时,git reset
就能帮助我们回到指定的提交状态,撤销不需要的更改。
** 用法**
# 回退到指定的提交(软回退,保留修改)
git reset --soft <commit-hash># 回退到指定提交(硬回退,放弃所有修改)
git reset --hard <commit-hash>
** 示例**
假设你误将一个提交推送到远程仓库,但不希望该提交保留,可以使用 git reset
回退:
# 回退到目标提交的前一个
git reset --hard <目标commit的hash># 强制推送
git push -f
注意:
git reset --hard
会删除所有未提交的更改,使用前确保备份重要内容。
5. git reflog
—— 找回误删除的提交
** 背景**
使用 git reset
、git checkout
时,可能会遇到误操作导致提交被删除,这时可以通过 git reflog
找回丢失的提交。git reflog
能追踪 Git 的所有操作日志,甚至包含被删除的提交。
** 用法**
# 查看所有操作记录
git reflog# 恢复误删除的提交
git checkout <commit-hash>
** 示例**
假设你误用 git reset --hard
删除了最近的一些提交,可以通过 git reflog
找回:
# 查看最近的所有操作记录
git reflog
假如你发现误删除的提交 hash 为 abcd1234
,可以这样恢复:
git checkout -b lost-work abcd1234
这样便创建了一个新的分支 lost-work
,包含了误删除的提交内容。
额外小技巧:组合使用 rebase
和 cherry-pick
修复代码冲突
假设你的分支出现了复杂的冲突问题,可以借助 rebase
和 cherry-pick
来分阶段处理。例如,先将冲突分支 feature-B
进行 rebase,然后在每次冲突的节点应用 cherry-pick
来确保代码合并的完整性。这种方法能有效减少冲突、避免代码丢失。
总结
以上就是提升 Git 操作效率的 5 个实用命令。掌握了这些命令,git pull
和 git push
只会成为基础,而你会从容地处理复杂提交、管理分支以及挽救误操作。对于专业的开发者来说,学会高效使用 Git 不仅能节省开发时间,还能提高代码的质量与协作效率。在未来的项目中,不妨多尝试这些高级命令,让 Git 成为你的开发好帮手。
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻