15 个你可能不知道的 Git 命令

Git

使用 Git 有时令人望而生畏。有许多命令和细节需要学习。虽然 文档 非常庞大,但是也是值得去看的。一旦克服最开始被压垮的感觉,你就会步入正轨。

这里列出了15个你可能还不知道的 Git 命令,希望它们能帮你掌握这个工具。

1. 修改最近的提交

git commit --amend

-amend 参数允许追加修改至最后一次提交之后(比如忘记提交的文件),添加 -no-edit 参数将追加提交至最后一次提交之内并且不改变提交的备注信息。如果没有新的修改提交, -amend 参数将会重写最后一次提交的备注信息。

查看更多:git help commit

2. 交互式选择部分修改

git add -p

-p (或 -path) 会允许我们交互式的选择是否提交每一处改动,这样,每次提交就只包含一处修改,即 拆分我们的该次添加修改,每一处修改都有一个提交

查看更多: git help add

3. 交互式的处理储藏中文件的每个部分

git stash -p

git-add 有点类似,你可以使用 --patch 选项交互式地选择每个跟踪文件的要储藏的部分。

通过  git help stash 命令了解更多。

4. 储藏未跟踪的文件

git stash -u

默认情况下,储藏命令是不包括未跟踪的文件的。为了储藏未跟踪的文件你需要使用 -u 参数。 -a (—all) 参数会将未跟踪和忽略的文件一起储藏,通常情况下,这可能不是你需要的。

5. 交互式地还原文件的选中部分

git checkout -p

--patch参数还可以用于有选择的丢弃每个跟踪文件的某些部分。我给这个命令起了个别名叫 git discard

使用 git help checkout 了解更多。

6. 切到上一个分支

git checkout -

该命令可以使你快速切换到之前签出的分支。一般来说 - 是上一个分支的别名。它可以跟别的命令一起使用。我将 checkout 简写成 co ,这样它就变成了  git co -

7. 还原本地所有修改

git checkout .

在确定可以放弃所有本地修改的情况下可以使用  . 立即去完成。好的习惯是使用 checkout --patch 命令。

8. 查看修改

git diff --staged

这个命令会显示已经暂存的文件和上次提交文件之前的差异,git diff 是显示还没有暂存起来的修改;当你使用 git add . 之后再使用 git diff 就会发现什么都没有。

使用 git help diff 了解更多。

9. 重命名本地分支

git branch -m old-name new-name

如果你想重命名当前所在的分支,可以将命令缩短为以下格式:

git branch -m new-name

查看更多: git help branch

10. 重命名远端分支

为了重命名远端分支,你一旦修改本地分支名称,就立即需要删除远端分支,再将重命名后的本地分支推送上去。

git push origin :old-name
git push origin new-name

11. 一次性查看所有冲突文件

变基可能会导致冲突,这个命令将打开所有需要你处理的冲突文件。

git diff --name-only --diff-filter=U | uniq  | xargs $EDITOR

12. 有哪些改变?

git whatchanged --since="2 weeks ago"

该命令将显示最近两周提交的简单日志,包括每次提交的介绍和修改的文件。下图是译者找的demo:

Git

13. 从最近一次提交中删除文件

假设你提交了一个错误的文件。你可以通过组合 rm 和 commit --amend 命令从上次提交中快速删除它:

git rm —-cached <file-to-remove>
git commit —-amend

14. 查找分支

git branch --contains <commit>

该命令将展示包含指定提交的所有分支。

15. 本地储藏优化

git gc --prune=now --aggressive

使用 git help gc 了解更多。

福利

尽管我非常喜欢Git的CLI,但我还是强烈建议使用Magit 来进一步增进你的Git体验。它是我使用过的最好的软件之一。

此外,还可以通过help命令获得推荐的Git工作流程的精彩概述。请务必仔细阅读!

git help workflows
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://dev.to/zaiste/15-git-commands-yo...

译文地址:https://learnku.com/devtools/t/36926

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
讨论数量: 3
wangchunbo

magit 真的很好用。

4年前 评论

正确解决变基时的冲突是:打开冲突文件,并解决冲突,然后执行 git add file, git rebase --continue

4年前 评论

ide 操作习惯了
不是需要碰到批量操作 还是 ide 方便靠谱。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!