你可能不知道的 15 个 Git 命令
使用Git有时会让人望而生畏。有太多命令和细节需要学习。不过,虽然文档很庞大,但仍然很容易理解。一旦你克服了最初的不知所措的感觉,一切就会变得水到渠成。
这里列出了 15 个您可能还不知道的 Git 命令,但希望它们能够帮助您掌握这个工具。
1.修改最近的提交
git commit --amend
—-amend
允许将暂存的更改(例如,添加一个被遗忘的文件)追加到上一个提交。—-no-edit
在此基础上添加更改将修改上一个提交,而不会更改其提交信息。如果没有更改,-—amend
则允许您重新编写上一个提交信息。
更多信息:git help commit
2. 交互式添加文件的选定部分
git add -p
-p
(或—patch
)允许以交互方式选择每个跟踪文件的部分内容进行提交。这样,每次提交仅包含相关的更改。
更多信息: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
so,它变成了git co -
7. 恢复所有本地更改
git checkout .
如果您确定所有本地更改都可以丢弃,可以使用.
一次性完成。不过,始终使用 是一个好习惯checkout --patch
。
8. 显示更改
git diff --staged
此命令显示所有暂存的更改(添加到索引中的更改),而不是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’
此命令将显示过去两周内每次提交所引入的更改的日志。
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
奖金
虽然我很喜欢 CLI,但我还是强烈建议你试试Magit,它能让你更上一层楼。它是我用过的最好的软件之一。
此外,还有一个很棒的概述,介绍了通过命令可用的推荐 Git 工作流程help
。一定要仔细阅读!
git help workflows