开发人员应该知道的10个Git命令



在本文中,我们将讨论可能对开发人员或大数据专家有用的各种Git命令。 您将学习如何检查,删除和整理代码。 我们还将研究使用Bash别名和Git编辑器配置退出Vim并节省时间的方法。

Skillbox建议:实用课程“ Mobile Developer PRO”

我们提醒您: 对于所有“哈勃”读者来说,使用“哈勃”促销代码注册任何Skillbox课程时均可享受10,000卢布的折扣。

我们检查一切




  • git diff-在本地查看所有文件更改。 如果指定文件名,则仅显示该更改。
  • git log-查看提交历史。 也可以用于git log -p my_file的文件。 键入q退出。
  • git blame my_file-在my_file中查看谁,什么以及何时更改。
  • git reflog-在本地存储库头中显示更改日志。 查找丢失数据的绝佳选择。

这些命令使您可以快速检查所需的一切,而不会出现任何问题。 如果出了问题,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与分支而不是提交一起使用,则HEAD切换到指定的分支,并且工作目录将更新以匹配更改。 这是此命令的最常见用法。

git revert my_commit-撤消对my_commit所做更改的后果。 还原回滚后,revert执行新的提交。

对于一般项目,还原是安全的,因为团队不会覆盖其他分支机构可能依赖的更改。



有时,您只想删除本地目录中未跟踪的文件。 例如,通过运行某种代码创建不需要的许多不同类型的文件。 不好意思 清洁有助于立即清除它们!

git clean -n-删除本地工作目录中未跟踪的文件。

-n-测试运行的标志,什么都不会删除。
-f-删除文件的标志。
-d-删除未跟踪目录的标志。

默认情况下,未删除的.gitignore文件不会被删除,但是可以更改。



下订单


git commit --amend-将阶段性更改添加到上一次提交。

如果没有索引任何内容,则该命令允许您编辑提交的最后一条消息。 仅当提交尚未与远程主分支合并时,才使用命令。

git push my_remote --tags-将本地标签发送到远程存储库。 为更改分配版本的好选择。

救命,我被困在Vim中,无法脱身!


在某些情况下,Git打开Vim编辑器会话。 如果您对他不太熟悉,您可能会遇到困难。 不仅您-例如,在Stack Overflow上,超过四千名用户想知道如何摆脱Vim。



这是一个四步计划,可以帮助关闭Vim并保存更改:

  • 单击我。
  • 在第一行中输入提交消息。
  • Esc。
  • 输入:x。

一切,您都自由了!

更改默认编辑器。

如果更改默认编辑器,则可以完全摆脱Vim。 以下是与常用编辑器一起使用的命令 。 选择另一个编辑器的示例,在我们的案例中是Atom:

git config --global core.editor“ atom --wait”

Git命令的快捷方式


这是一种允许您为.bash_profile添加Git命令快捷方式的方法。

alias gs='git status ' alias ga='git add ' alias gaa='git add -A ' alias gb='git branch ' alias gc='git commit ' alias gcm='git commit -m ' alias go='git checkout ' 

有关.bash_profile的更多信息,请参见此处

至于上述方法,现在您可以使用gs代替git status了。

实际上,今天就这些。 如果可能,在注释中指出您使用的是哪个Git命令以及原因。
Skillbox建议:

Source: https://habr.com/ru/post/zh-CN442260/


All Articles