在本文中,我们将讨论那些作为开发人员、数据科学家或产品经理应该知道的各种各样的 Git 命令。并且将使用 Git 查看、删除和整理。此外,我们还将介绍如何使用 Bash 别名和 Git 编辑器配置转义 Vim 和节省时间的方法。如果你不熟悉基本的 git 命令,那么在阅读本文之前,请查看我之前关于 git 工作流的文章。下面是需要了解的 10 个命令和它们的一些常见标志。每个命令都链接到该命令的 Atlassian Bitbucket 指南。
查看信息
首先,让我们来查看变化。
git diff——查看所有本地文件更改。可以附加文件名,以仅显示一个文件的更改。
git log——查看所有提交历史记录。也可以用于具有 git log -p my_file 的文件。输入 q 退出。
git blame my_file——查看谁更改了 my_file 中的内容和时间。
git reflog——显示本地存储库 HEAD 的更改日志。有助于找到遗失的文件。
用 git 查看信息并不是很混乱。相比之下,Git 提供了大量的选项来删除、撤消提交和文件更改。
撤消信息
git reset、git checkout 和 git revert 用于撤消对存储库所做更改的影响。这些命令可能很难理解。
git reset 和 git checkout 可用于提交和单个文件。git revert 仅用于提交级别。
如果你只是处理尚未合并到协作远程工作中的本地提交,则可以使用这些命令中的任何一个。
如果你正在协作工作,并且需要撤销在远程分支中的提交,那么就使用 git revert。
这些命令中的每一个都可以采用多种选择。以下是常见用途:
git reset –hard HEAD——丢弃自最近提交以来的阶段性和非阶段性更改。
指定一个不同的提交,而不是 HEAD 来丢弃自提交以来的更改。——hard 指定阶段性和非阶段性的更改。确保你不会放弃协作者所依赖的远程分支的提交!
git checkout my_commit——放弃 my_commit 之后非阶段性的更改。
HEAD 通常用于 my_commit,以放弃自最近一次提交以来对本地工作目录的更改。checkout 最适合用于本地撤销。它不会打乱协作者所依赖的远程分支的提交历史记录! 如果你将 checkout 与分支一起使用,而不是使用提交,则 HEAD 将切换到指定的分支,并更新工作目录以匹配。这是 checkout 命令的更常见用法。
git revert my_commit——撤消 my_commit 中更改的效果。当撤消更改时,revert 会进行新的提交。
revert 对于协作项目是安全的,因为它不会覆盖其他用户的分支所可能依赖的历史记录。
有时你只想删除本地目录中的未跟踪文件。例如,你可能运行了一些代码,这些代码创建了许多你在 repo 中不需要的不同类型的文件。那么,你可以在一瞬间把它们清洗干净!
git clean -n——删除本地工作目录中的未跟踪文件
- n 标志用于没有删除任何内容的干运行。使用 - f 标志来实际删除文件。使用 - d 标志删除未跟踪的目录。默认情况下,.gitignore 未跟踪的文件不会被删除,但是可以更改此行为。
现在你已经了解了在 Git 中撤消操作的工具,那么让我们来看看另外两个命令。
整理信息
git commit –amend——将阶段性的更改添加到最近的提交。
如果没有执行暂存,此命令只允许你编辑最近的提交消息。只有在提交未集成到远程主分支时才使用此命令!
git push my_remote –tags——将所有本地标记发送到远程 repo。适合于版本控制更改。
如果你正在使用 python 并对构建的包进行更改,bump2version 将自动为你创建标记。一旦你推送了标记,就可以在发布中使用它们。这是我制作第一个 OSS python 包的指南。跟着我,确保你不会错过版本控制的部分!
救命,我被困在 Vim 里出不来了!
使用 Git,你可能有时会发现自己陷入了 Vim 编辑器会话。例如,假设你尝试在没有提交消息的情况下提交,Vim 将自动打开。如果你不了解 Vim,这有点难缠——看看这个在 Stack Overflow 中超过 4,000 投票的回答,来了解如何摆脱它。
以下是使用保存文件逃避 Vim 的四步计划:1. 按 i 进入插入模式。2. 在第一行输入提交消息。3. 按下退出键 -——Esc。4. 输入:x。别忘了冒号。恭喜,你自由了!
改变默认编辑器
为了完全避免 Vim,可以在 Git 中更改默认编辑器。这里是一些带有通用编辑器命令的文档。下面是修改我使用的编辑器 Atom 默认值的命令:
假设你已经安装了 Atom,现在可以解决其中的 Git 问题。太棒了!
为 Git 命令创建快捷方式
通过在.bash_profile 中添加以下别名,为 Git 命令添加快捷方式。
你可以根据自己的喜好调整 Git 命令的快捷方式。如果你没有.bash_profile,可以使用以下命令在 macOS 上创建一个:
然后打开它:
有关.bash_profile 的更多信息,请点击这里。现在,当你在终端中输入 gs 时,它与输入 git status 相同。请注意,你可以在快捷方式之后在终端中输入其他标志。你也可以制作 Git 别名,但是那些要求你在快捷命令之前键入 git。这就多此一举了。
包装
在本文中,你已经看到了一些关键的 Git 命令,并配置了环境以节省时间。现在你已经有了 Git 和 GitHub 的基础。准备好下一步了吗? 查看这个 Bitbucket Git 教程,来了解更多。探索 Git 分支的交互式指南。分支可能不好理解,但绝对值得一看。去玩,去学习,向别人解释这些不同之处。我希望这篇介绍 Git 和 GitHub 的文章对你有用。如果可以,请在你最喜欢的社交媒体上分享,这样其他人也能找到它。
我写的是如何有效地使用 Python、Docker 以及其他编程和数据科学工具。如果你对此感兴趣,请在这里阅读更多。
本文作者:【方向】阅读原文
本文为云栖社区原创内容,未经允许不得转载。