如果文件已被更改,用git查看的方法?

时间:2014-04-07 11:39:04

标签: git git-diff

我有一个脚本可以检测file.txt中的更改,如果存在更改,则提交并推送它们。我想通过发出git diff来查看文件是否已更改。

现在,有两种我能想到的案例:

  • 如果文件是新的,它还没有被追踪;必须暂存它才能成功执行git diff --name-only --cached以查看应该推送文件;
  • 如果该文件不是新文件,则必须添加该文件才能成功执行git diff --name-only以查看该文件是否应该被推送。

我的问题是:

  • 如何将上述两种情况(可能还有更多,如果我错过了一些情况)组合成一个简单的条件?或者,我如何区别对待文件是创建还是新文件?
  • git add <file>安全无论使用方式如何?这意味着,如果文件被跟踪/未跟踪,它已经上演/尚未上演等等。

1 个答案:

答案 0 :(得分:4)

只需使用git status即可。您可以使用--porcelain参数来获得简洁的机器可读输出,您可以轻松解析。

此外,您始终只需使用git add filename(或当前目录中的所有内容git add .)来暂存文件。如果它们没有被修改,那么什么都不会发生,如果有变化,那些变化将被上演。同样地,如果之前没有被跟踪过,那么它将被跟踪并上演。您还可以使用git add -u只是更新所有已暂存的文件,暂存所有更改(甚至文件删除)。