git命令场景及常用git指令:你应该知道的10个Git命令,附链接,
git命令场景及常用git指令:你应该知道的10个Git命令,附链接,· git blame my_file——查看谁更改了my_file中的内容和时间。https://www.atlassian.com/git/tutorials/git-log· git diff——在本地查看所有文件更改。可以附加文件名以仅显示一个文件的更改。https://www.atlassian.com/git/tutorials/saving-changes/git-diff· git log——查看所有提交历史记录 也可以用于带有git log -p my_file的文件。输入q退出。
在本文中,我们将讨论作为开发人员、数据科学家或产品经理应该了解的各种Git命令,如何使用Git进行检查、删除和整理,以及如何通过Bash别名和Git编辑器配置来逃避Vim并节省时间。
这里有10个要知道的命令和一些常见的标志。每个命令都链接到该命令的Atlassian Bitbucket指南。
检查事项
让我们先看一下检查变化。
· git diff——在本地查看所有文件更改。可以附加文件名以仅显示一个文件的更改。
https://www.atlassian.com/git/tutorials/saving-changes/git-diff
· git log——查看所有提交历史记录 也可以用于带有git log -p my_file的文件。输入q退出。
https://www.atlassian.com/git/tutorials/git-log
· git blame my_file——查看谁更改了my_file中的内容和时间。
https://www.atlassian.com/git/tutorials/inspecting-a-repository/git-blame
· git reflog——显示本地存储库HEAD的更改日志。这很适合找工作。
https://www.atlassian.com/git/tutorials/rewriting-history/git-reflog
用Git检查事情并不是非常令人困惑。相比之下,Git为删除和撤消提交和文件更改提供了大量选项。
撤销事项
gitreset,git checkout和git revert用于撤消对存储库的更改的影响。这些命令可能很难保持直线。
gitreset和git checkout可用于提交和单个文件上使用。git revert仅在提交级别使用。
如果你只是处理尚未合并到协作远程工作的本地提交,则可以使用这些命令中的任何一个。
如果你正在协同工作并且需要中和远程分支中的提交,那么git revert就是你的工具。
这些命令中的每一个都可以采用多种选择。以下是常见用途:
· gitreset--hard HEAD——丢弃自最近提交以来的分阶段和非分阶段更改。
https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting
指定一个不同的提交而不是HEAD来放弃自提交以来的更改。——hard指定丢弃暂存和未暂存的更改。
确保不丢弃协作者所依赖的远程分支的提交!
· git checkoutmy_commit——放弃自my_commit以来的非分段更改。
https://www.atlassian.com/git/tutorials/undoing-changes
HEAD通常用于my_commit以放弃自最近一次提交以来对本地工作目录的更改。
checkout最适合仅限本地的地方。它不会破坏协作者依赖的远程分支的提交历史记录!
如果使用checkout分支而不是提交,则HEAD将切换到指定的分支,并更新工作目录以匹配。这是checkout命令的更常见用法。
· gitrevert my_commit ——撤消my_commit中更改的效果。当撤消更改时,revert会进行新的提交。
https://www.atlassian.com/git/tutorials/undoing-changes/git-revert
revert对于协作项目是安全的,因为它不会覆盖其他用户的分支可能依赖的历史记录。
Revert是安全的
有时你只想删除本地目录中未跟踪的文件。例如,你可能运行了一些代码,这些代码创建了许多你在repo中不需要的不同类型的文件。噢!你可以快速清理它们!
· gitclean -n——删除本地工作目录中未跟踪的文件。
https://www.atlassian.com/git/tutorials/undoing-changes/git-clean
-n标志用于干运行,其中不删除任何内容。
使用-f标志实际删除文件。
使用-d标志删除未跟踪的目录。
默认情况下,.gitignore未跟踪的文件不会被删除,但可以更改此行为。
既然你已经了解了在Git中撤消事物的工具,让我们再看两个命令来保持秩序井然有序。
整理事项
· gitcommit--amend——将暂存的更改添加到最近的提交中。
https://www.atlassian.com/git/tutorials/rewriting-history#git-commit--amend
如果没有暂存,则此命令仅允许你编辑最新的提交消息。如果提交尚未集成到远程主分支中,则仅使用此命令!
· git push my_remote--tags——将所有本地标签发送到远程仓库。适用于版本更改。
https://www.atlassian.com/git/tutorials/syncing/git-push
如果你正在使用Python并对你构建的软件包进行更改,那么bump2version将自动为你创建标记。推送标签后,可以在版本中使用它们。
求助,我被困在Vim并且无法离开!
使用Git,你可能偶尔会发现自己陷入了Vim编辑器会话。例如,假设你尝试在没有提交消息的情况下提交 - Vim将自动打开。
好了!
以下是使用保存文件逃避Vim的四步计划:
1.按i进入插入模式。
2.在第一行键入提交消息。
3.按退出键 Esc。
4.输入:x. 不要忘记冒号
瞧,你自由了!
更改默认编辑器
要完全避免使用Vim,你可以在Git中更改默认编辑器。以下是包含常用编辑器命令的文档。这是更改我们使用的编辑器默认值的命令,Atom:
gitconfig --global core.editor“atom --wait”
假设你安装了Atom,现在可以解决其中的Git问题。耶!
为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 '
你可以调整为你喜欢的任何Git命令制作快捷方式。
如果你没有.bash_profile,可以使用以下命令在macOS上创建一个:
touch~/.bash_profile
然后打开它:
open~/.bash_profile
现在,当你在终端中输入gs时,它与输入git status相同。请注意,你可以在快捷方式后在终端中输入其他标记。