git bash 更新代码_你应该知道的10个Git命令

d80c9b82d5acceb45f429a76af26ab85.png

作者 | Jeff Hale

来源 | Towards Data Science

编辑 | 代码医生团队

在本文中,将讨论作为开发人员,数据科学家或产品经理应该了解的各种Git命令。将看看使用Git检查,删除和整理。还将讨论如何通过Bash别名和Git编辑器配置来逃避Vim并节省时间。

检查事物

先看一下检查变化。

f6ec953157affad802f4dba596d4466f.png

  • 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是您的工具。

a6effbaa22e3831ebf7c0ed2440b223e.png

这些命令中的每一个都可以采用多种选择。以下是常见用途:

  • git reset --hard HEAD- 放弃自最近提交以来的分阶段和非分阶段更改。

指定不同的提交,而不是HEAD丢弃自提交以来的更改。--hard指定丢弃暂存和未暂存的更改。

确保不丢弃协作者所依赖的远程分支的提交!

  • git checkout my_commit- 放弃自my_commit以来的非分段更改。

HEAD通常用于my_commit放弃自最近提交以来对本地工作目录的更改。

checkout最适合仅限本地的地方。它不会破坏协作者依赖的远程分支的提交历史记录!

如果使用checkout分支而不是提交,HEAD则切换到指定的分支,并更新工作目录以匹配。这是checkout命令的更常见用法。

  • git revert my_commit-undo在变化的影响my_commit。revert 在撤消更改时进行新提交。

revert 对于协作项目是安全的,因为它不会覆盖其他用户的分支可能依赖的历史记录。

607e27ba284325c0a264b7ae9dd578b1.png

revert 是安全的

有时只想删除本地目录中未跟踪的文件。例如可能运行了一些代码,这些代码创建了许多在repo中不需要的不同类型的文件。可以快速清洁它们!

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

该-n标志用于干运行,其中没有任何内容被删除。

使用该-f标志实际删除文件。

使用 - d标志删除未跟踪的目录。

默认情况下,.gitignore未跟踪的文件不会被删除,但可以更改此行为。

0874d8775b9ee20df458d3aeae978fc4.png

现在已经了解了在Git中撤消事物的工具,再看两个命令来保持秩序井然有序。

整理事物

  • git commit --amend- 将暂存的更改添加到最近的提交中。

如果没有暂存,则此命令仅允许编辑最新的提交消息。如果提交尚未集成到远程主分支中,则仅使用此命令!

  • git push my_remote --tags - 将所有本地标签发送到远程仓库。适用于版本更改。

如果正在使用Python并对构建的软件包进行更改,那么bump2version将自动创建标记。推送标签后,可以在版本中使用它们。

https://pypi.org/project/bump2version/

帮助,我被困在Vim并且无法离开!

使用Git,可能偶尔会发现自己陷入了Vim编辑器会话。例如假设您尝试在没有提交消息的情况下提交 - Vim将自动打开。如果不了解Vim,- 在这个Stack Overflow回答中看到4,000+以上的投票,以了解如何摆脱它。

https://stackoverflow.com/a/11828573/4590385

1af352e41945f142671af35e206b46d5.png

自由!

以下是使用保存文件逃避Vim的四步计划:

  1. 按i进入插入模式。

  2. 在第一行输入您的提交消息。

  3. 按退出键 -Esc。

  4. 输入:x。不要忘记结肠。

更改默认编辑器

要完全避免使用Vim,可以在Git中更改默认编辑器。以下是包含常用编辑器命令的文档。这是更改我使用的编辑器默认值的命令,Atom:

https://www.atlassian.com/git/tutorials/setting-up-a-repository/git-config

git config --global core.editor "atom --wait"

假设安装了Atom,现在可以解决其中的Git问题。

为Git命令制作快捷方式

911c1ef988864a7c96bf707b8fd83fd1.png

通过向.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'

可以调整为喜欢的任何Git命令制作快捷方式。

如果没有。bash_profile,可以使用以下内容在macOS上创建一个:

touch ~/.bash_profile

然后打开它:

open ~/.bash_profile

在这里查看.bash_profile的 更多信息。

https://stackoverflow.com/a/30462883/4590385

现在,当输入gs终端时,它与输入相同git status。请注意可以在快捷方式后在终端中输入其他标记。

也可以创建Git别名,但这些别名要求git在快捷命令之前键入。

Wrap

在本文中,已经看到了一堆关键的Git命令,并配置了环境以节省时间。现在有了Git和GitHub的基础。准备下一步了吗?

  • 查看这个Bitbucket Git教程,深入了解。

  https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud

  • 浏览Git分支的交互式指南。分支可能令人困惑,所以它绝对值得一看。

  https://learngitbranching.js.org/

  • 学习并向别人解释差异。

希望这个介绍Git和GitHub很有用。如果喜欢请分享它。

a3fca4b516796c5f7130adb65f35fb24.png

关于图书

《深度学习之TensorFlow:入门、原理与进阶实战》和《Python带我起飞——入门、进阶、商业实战》两本图书是代码医生团队精心编著的 AI入门与提高的精品图书。配套资源丰富:配套视频、QQ读者群、实例源码、 配套论坛:http://bbs.aianaconda.com   。更多请见:aianaconda.com

167f23cd736a4479728cc701eadc36ac.png

4db1e6d6a5bc5115072a7c6d780f802b.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值