Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跟踪git日志_Git_Bash_Centos - Fatal编程技术网

跟踪git日志

跟踪git日志,git,bash,centos,Git,Bash,Centos,我正在阅读一个旧的部署脚本,遇到了一行让我困惑的bash 声明如下 if [[ \\$(git log @{u}.. 2> /dev/null | tail -n1) != '' ]]; then echo 'LOCAL BRANCH HAS UNCOMMITTED CHANGES.'; fi; 据我所知,我们正在运行git日志并检查输出是否为空字符串。我可能会很生气,但这就是我问的原因 git log @{u}.. 2> /dev/null | tail -n1 以上

我正在阅读一个旧的部署脚本,遇到了一行让我困惑的bash

声明如下

if [[ \\$(git log @{u}.. 2> /dev/null | tail -n1) != '' ]]; 
    then echo 'LOCAL BRANCH HAS UNCOMMITTED CHANGES.';
fi;
据我所知,我们正在运行git日志并检查输出是否为空字符串。我可能会很生气,但这就是我问的原因

git log @{u}.. 2> /dev/null | tail -n1

以上是令人困惑的部分。如果我在本地回购上运行这个,我会得到一个空字符串作为返回值。我不明白为什么。我不明白那是什么。。2> /dev/null表示。据我所知,
2>/dev/null
正在将可能的错误重定向到位于
/dev/null
的文件中。但这条线的其他部分在做什么?您提到的
@{u}

将stderr(POSIX定义为文件描述符2)重定向到
/dev/null
,这是忽略错误消息的常见技巧

@{u}
是上游分支的快捷方式,请参阅

git log@{u}..
git log@{u}..HEAD
相同。双点指定提交的范围,例如
HEAD
中的所有提交减去
@{u}
中的所有提交


因此,
HEAD
(本地分支)减去上游分支将为您提供您尚未推动的本地承诺。

非常好,谢谢!请注意,这里喊出的“未提交”一词是完全错误的:这些是已提交的更改。本地Git认为它们没有被提交到相应的上游分支
@{u}