如何查看任何git命令涉及的步骤

时间:2018-03-09 17:40:36

标签: git github git-stash

是否有任何方法或简洁的文档,我可以看到运行git命令时的所有步骤或阶段。

例如,当我们做一个git pull。我相信

  • 运行git fetch
  • 然后git pull

但这是我从日志中设计的。有什么方法我可以真正看到作为git命令的一部分运行的内容,例如git stash -p。我试图搜索文档等,但没有找到任何东西。

请帮忙!

3 个答案:

答案 0 :(得分:2)

我相信你需要的是那些命令:

GIT_TRACE=1 git fetch origin master
GIT_TRACE=1 git pull origin master

git有很多不同的调试标记。你可以在这里找到它们:

https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables#Debugging

答案 1 :(得分:1)

唯一真正可靠的方法是咨询source code。但请注意,Git的来源不断发展:git pull was once a shell script,但now it is a C program

然而,您可以{G}使用set the environment variable GIT_TRACE来了解在运行各种子命令时打印消息。

答案 2 :(得分:0)

提出另一个观点...

一个熟悉的命令 - git pull - 可以用其他两个熟悉的命令来描述这一事实 - git fetchgit merge,大致默认情况下至少是 - {异常。

大多数用户只学习一小部分git命令,称为"瓷器"命令。还有更多的命令在git中实现更多基本操作 - "管道命令"。许多瓷器命令通过管道命令构建其功能。也许你知道那些管道命令,或许不是;按照设计,您可以使用git进行源代码控制,而不知道它们是否存在。

关键是,只有少数面向终端用户的命令实际上只是其他面向最终用户的命令的缩写。您可以使用检查源或跟踪命令运行等技术 - 正如其他人建议的那样 - 来查看git命令如何流动。但是你可能会看到大多数"噪音" - 根据不熟悉的事情建立命令。

(使用跟踪日志记录的另一个限制是,您只跟踪您运行的命令的实例。例如,您已经看到pullfetch and merge类似,但这并不是&# 39;请指出,在不同的配置下,它更像fetch and rebase。)

所以我认为,在大多数情况下,建立对git命令的更多理解的最有用的方法,无论该理解是否与其他命令的等同性,是#34;请参阅您想要了解的命令的文档。

那就是说,你提到了stash,如果你真的想了解它的作用,它有点例外,因为文档似乎认为你所做的所有实现细节都是不需要。这有点可以理解;知道藏匿是提交的集合,并且以特定方式设置的reflog条目可以满足好奇心,但对于大多数用户来说,它不是非常实用的知识,只提供了自己在脚下射击的机会。