我正在将我所有的私有和公共仓库转移到github上。我做的一个决定是只使用控制台,因为如果我需要更换PC等,这意味着更小的工具占用空间。
我是一个控制台应用程序的大用户,并且是git的新手,我决定购买Tekpub的Mastering Git系列,因为它向您展示了如何将git bash集成为工具栏。
一切正常,除了add all命令:
git add .
它似乎是工作,但我没有得到任何指示,它的工作或不.是否有一个详细的开关(我认为这是它会被称为),会说什么文件被跟踪后,该命令被启动?
我正在使用Visual Studio 2010和标准安装的git(不是Git扩展)
5条答案
按热度按时间flvtvl501#
我在调试git的一个问题,需要一些非常详细的输出来找出问题所在。我最终设置了
GIT_TRACE
环境变量:您也可以在同一行中使用它们:
输出:
mklgxw1f2#
您可以使用
git add -i
来获得git add
的交互式版本,尽管这并不是您所追求的。最简单的方法是,在git add
艾德之后,使用git status
来查看哪些是暂存的。除非是第一次提交,否则不建议使用
git add .
。通常最好明确列出要暂存的文件,这样就不会意外地跟踪不需要的文件(临时文件等)。cgh8pdjw3#
Git不仅有一个GIT_TRACE2标志(since Git 2.25,2019年第二季度),而且现在跟踪甚至可以告诉你哪个父进程称为Git。
在Git 2.34(2021年第4季度)中,trace 2日志学会了显示父进程名称,以查看Git在什么上下文中被调用。
这在IDE调用Git时很有用。
参见commit 2f732bf,commit b7e6a41(2021年7月21日)by Emily Shaffer (
nasamuffin
)。(由Junio C Hamano --
gitster
--合并至commit 6f64eea,2021年8月24日)tr2
:记录父进程名签署人:艾米丽·谢弗
告诉谁调用了Git是很有用的-是用户通过CLI或脚本手动调用的吗?还是IDE?在某些情况下-比如'repo'工具-我们可以影响源代码并从调用者进程设置
GIT_TRACE2_PARENT_SID
环境变量。在'repo'的例子中,父SID被操作为包含字符串“repo”,这意味着我们可以肯定地识别'repo'工具何时调用Git。
然而,以这种方式识别父项需要我们知道哪些工具调用了Git,并且我们有能力修改这些工具的源代码。
它不能扩展以跟上使用Git的各种IDE和 Package 器,其中大多数我们都不知道。
了解哪些工具和 Package 器调用Git,以及如何调用,将给予我们了解如何提高Git的可用性和性能。
不幸的是,没有跨平台的可靠方法来收集父进程的名称。
如果
procfs
存在,我们可以使用它;否则我们就需要用另一种方式来发现这个名字。但是,进程ID应该足以在大多数平台上查找进程名称,以便代码可以共享。
Git for Windows收集类似的信息并将其记录为
"data_json"
事件。但是,由于
"data_json"
具有可变格式,因此在某些语言中很难进行有效解析;相反,让我们使用一个专用的"cmd_ancestry"
事件来记录有关当前进程的祖先的信息,并使用一种一致的、可解析的方式。Git for Windows还会收集多代父代的信息。
在Linux中,可以使用
procfs
收集更多的祖先信息,但这样做很麻烦。为了以后将Git for Windows的祖先日志转移到'
cmd_ancestry
'事件,以及为了以后将更多的祖先添加到Linux实现中-或者将此功能添加到其他更容易遍历进程树的平台-让'cmd_ancestry
'接受一个父级数组。technical/api-trace2
现在在其手册页中包括:"cmd_ancestry"
此事件包含当前进程的父进程(以及父进程的早期代)的文本命令名,按从最近的父进程到最远的曾祖父进程的顺序排列。它可能无法在所有平台上实现。
在Git 2.34(2021年第四季度)中,对进程祖先信息的跟踪得到了增强。
参见commit 2d3491b、commit 326460a、commit 6eccfc3、commit 48f6871、commit f2cc888、commit 7d9c80f(2021年8月27日)by Ævar Arnfjörð Bjarmason (
avar
)。(由Junio C Hamano --
gitster
--合并于commit 76f5fdc,2021年9月20日)tr2
:tr2
:Linux上的log N
父进程名称签署人:埃瓦尔·阿恩菲约德·比亚马逊
作者:Taylor Blau
在2f732bf(“
tr2
:log parent process name”,2021-07-21,Git v2.34.0 --merge我们开始记录父进程名称,但在Windows上只记录所有父进程。在Linux上只记录直接父进程的名称。扩展添加的功能,以便在Linux上也记录完整的父链。
在Git 2.38(2022年第3季度)中,详细跟踪输出已得到增强,以包括有关配置变量的输出。
参见commit 35ae40e,commit 050d0dc(2022年8月12日)by Teng Long (
dyrone
)。(由Junio C Hamano --
gitster
--合并至commit 10ccb50,2022年8月29日)api-trace2.txt
:打印配置键值对签署人:腾龙
通过设置“
GIT_TRACE2_CONFIG_PARAMS
”环境变量和“trace2.configparam
”配置,支持将“有趣”的配置键值对打印到tr 2日志中。technical/api-trace2
现在在其手册页中包括:Config (def param) Events
将“感兴趣的”配置值转储到trace 2日志。
我们可以选择发出配置事件,有关如何启用它,请参阅
git config
中的trace2.configparams
。然后,将配置
color.ui
标记为“interesting”配置,并使用GIT_TRACE2_CONFIG_PARAMS
:您可以将其与其他运行时trace 2事件组合:
tr2
:除了键-值对之外,无条件地显示范围签署人:腾龙
当我们指定
GIT_TRACE2_CONFIG_PARAMS
或trace2.configparams
时,trace 2将打印“有趣的”配置值到日志。有时,当在多个作用域文件中设置配置时,输出如下所示(此处省略不相关的字段作为“...”):
正如日志所示,即使不同作用域中的每个配置都被转储,但我们不知道它来自哪个 * 作用域 *。
因此,最好也添加作用域名称,以使它们更易于识别。
作为轨迹组合的示例:
例如,当执行时:
以下是输出(此处省略不相关的字段作为“
...
”):6kkfgxo04#
只需在git命令之前使用以下命令。类似于:
8yparm6h5#
对于 some git-commands,你可以指定
--verbose
,或
确保开关在实际的git命令之后。否则-它将无法工作!
也很有用: