1
179
我是这样做的:
尽管
注:以下为
编辑 :
|
2
418
开发人员在更改管道命令时要小心,以确保它们提供非常稳定的接口(即,给定的存储库状态、stdin、命令行选项、参数等的组合将在存在命令/选项的所有Git版本中产生相同的输出)。管道命令中的新输出变体可以通过新选项引入,但这不会给已经针对旧版本编写的程序带来任何问题(它们不会使用新选项,因为在编写脚本时它们不存在(或者至少没有使用)。 不幸的是,日常使用的Git命令都是陶瓷命令,因此大多数Git用户可能不熟悉管道命令。瓷器和水管之间的区别主要体现在 git manpage (见标题为 High-level commands (porcelain) 和 Low-level commands (plumbing)
(注意,在下面的命令中,
要检查工作树是否具有可以暂存的更改,请执行以下操作:
检查工作树中的索引和跟踪文件的组合是否相对于
你还提到了未追踪的文件。您可能意味着未跟踪和未忽略,或者您可能意味着只是简单的未跟踪(包括忽略的文件)。不管怎样,
对于未跟踪(将包括忽略的文件,如果存在):
对于未跟踪和未忽略的:
我的第一个想法是检查这些命令是否有输出:
有一个小的机会,这将转化为不正常的出口
另一个想法是使用
|
3
152
在阅读了本页的所有答案和一些实验之后,我认为正确和简洁的正确结合的方法是:
在这种情况下,模拟程序员将要做的事情是有意义的:键入
然后我们使用
如果工作目录是干净的,此命令将返回1,如果要提交更改,则返回0。你可以改变主意
这实际上是在说“要么没有任何改变,要么引发警报”;这一行可能比if语句更好,这取决于您正在编写的脚本。 |
4
15
来自的实现 VonC 的答案:
|
5
8
看了一些答案(在*nix和windows上有各种问题,这是我的要求)。。。发现以下方法很有效。。。
在*nix中检查退出代码
来源 https://github.com/sindresorhus/pure/issues/115 感谢@paulirish的分享 |
6
4
为什么不封装
这样,就可以在脚本中使用“增强”状态。
0xfe
excellent answer
,
|
7
4
|
8
2
我经常需要一种简单的方法,如果在执行结束时有任何修改的跟踪文件或任何未跟踪的文件不被忽略,就可以使构建失败。
到目前为止,我使用的最好的命令如下所示:
它可能看起来有点复杂,如果有人发现一个短的变种我会很感激
|
9
2
当不使用set-e或等价物执行时,我们可以执行
之后,我们可以检查这两个属性,并设置一个变量(或其他)。 |
10
1
为了找出 任何 存储库中存在未跟踪的文件:
|
11
1
你也可以这样做
. 如果它检测到一个脏的工作树,它会在末尾加上“-dirty”。根据
. 警告:未跟踪的文件不被认为是“脏的”,因为正如manpage所说,它只关心工作树。 |
12
1
肮脏的状态 = :
评论:
|
13
0
从这条线索可能会有更好的答案组合。。但这对我有用。。。为了你的
|
14
-3
这是最好的,最干净的方法。由于某些原因,选定的答案对我不起作用,它没有接收到未提交的新文件的更改。
|
charleslcso · 从开源克隆并推送到我的GitHub[重复] 1 年前 |
Itachi · 无法为python项目安装“DAWG”包 1 年前 |
Igor · git重置已删除目录上的头 2 年前 |
Robo · 撤消删除Git中被忽略的文件 2 年前 |
Ali EXE · 如何根据bat中命令的输出设置变量? 2 年前 |
ShortArrow · 如何使用git管理链接源文件? 2 年前 |
Siggi · 使用git移动文件时丢失历史记录 2 年前 |