4个非常有用的Git命令
前言¶
注: 这是一篇英文翻译,加上一点自己的补充和发挥,原作者是System Design Newsletter网站的NK
Git有152个命令,但大部分人都没有用过功能最强大的那部分命令,下面4个必须知晓的命令会极大的帮助你提高工作效率。
命令1. git bisect¶
很多时候,我们发现某次提交代码后程序出现了bug,那么这个命令帮助快速定位到底是哪次提交引入了bug:
比如上一个版本6dba9d5b确定是工作良好的,而当前提交2829a8f6或HEAD存在bug,那么开始定位bug引入问题:
$ git bisect start 2829a8f6 6dba9d5b
Bisecting: 1 revision left to test after this (roughly 1 step)
[82db3e002] some commit messages
现在代码根据二分查找切换到上面两个提交之间位置的那个提交,然后现在你测试一下bug是否存在,如果不存在,那么说明bug和当前提交没有关系,标记一下:
$ git bisect good
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[3e633428c3] some commit messages
它继续往前查找,你一次次的测试,发现切换到某个提交时,bug出现了,那么标记一下:
$ git bisect bad
3e633428c33 is the first bad commit
commit 3e633428c33
Author: someone <email>
Date: commit time
some commit messages
file1 | 71 +++++++++++++++++++++++++++++
file2 | 92 ++++++++++++++++++++++++++++++++++++++
2 files changed, 163 insertions(+)
现在定位到具体某次提交引入了bug,通知具体的开发人员查看即可;停止定位bug查找工作,恢复到之前分支:
命令2. git add -i¶
相对于 git add . 来说,它会把很多不相干的修改或文件都暂存起来,这可能不是我们想要的。
$ git add --help
-i, --interactive
Add modified contents in the working tree interactively to the index.
Optional path arguments may be supplied to limit operation to a subset
of the working tree. See “Interactive mode” for details.
如果使用 git add -i, 则可以选择性的只暂存我们确实想要的代码文件:
$ git add -i
staged unstaged path
1: +0/-29 nothing file1
2: +0/-63 nothing file2
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now>
What now> help
status - show paths with changes
update - add working tree state to the staged set of changes
revert - revert staged set of changes back to the HEAD version
patch - pick hunks and update selectively
diff - view diff between HEAD and index
add untracked - add contents of untracked files to the staged set of changes
What now> quit
命令3. git blame¶
这个命令可以帮助你查看某个特定文件的修改历史,比如哪个人、哪个时间点、具体修改的代码行内容等,提高debug效率。
命令4. git stash¶
想象一下,你正开发一个功能,突然有一个新的开发任务需要优先完成,但你目前的代码还不足以提交,那么 git stash 命令可以把当前的修改保存起来,创建一个干净的代码环境:
然后,等有空的时候,你回过头来想继续开发之前的功能,那么可以看看都保存了多少个只修改一半的代码:
快速把之前修改到一半的代码拿出来:
代码文件都恢复到之前的修改状态,现在可以继续在之前工作基础上继续开发了。
- 微信搜索: 「 MinYiLife 」, 关注公众号!
- 本文链接: https://www.lesliezhu.com/blog/2024/01/12/four_useful_git_commands/
- 版权声明: 原创文章,如需转载请注明文章作者和出处。谢谢!