用于监控文件夹中某些文件更改的Git工作流程

时间:2014-09-16 03:50:28

标签: git

假设我有一个文件夹data/,其中包含一些我希望监视更改的txt文件。我想运行一个脚本,找出自上次提交以来发生的变化。

以下是我的工作流程:

  1. 进行更改:添加,修改或删除文件

  2. 暂存所有文件git add data/

  3. 列出所有更改git diff --name-only --staged

  4. 这应该考虑三种情况:

    1. 应添加新文件
    2. 应列出已修改的文件。
    3. 不应列出已删除的文件。
    4. 我需要一个命令来专门告诉我自上次提交以来哪个文件被删除了。因此,在执行git rm deleted_file.txt

      之前,我可以在脚本中执行一些操作

2 个答案:

答案 0 :(得分:1)

您可以使用--diff-filter列出已删除的文件,仅包括重命名文件。但我认为您的git diff也会包含已删除的文件。

git diff --name-only --staged --diff-filter=D
  

- DIFF-滤波器= [(A | C | d | M | R | T | U | X | B)... [*]]

     

仅选择添加(A),复制(C),删除(D)的文件,   修改(M),重命名(R),有他们的类型(即常规文件,   符号链接,子模块,...)已更改(T),未合并(U),未知   (X),或已配对破碎(B)。任何组合   可以使用过滤字符(包括无)。当*(全有或全无)   添加到组合中,如果有任何路径,则选择所有路径   与比较中的其他条件匹配的文件;如果没有   与其他条件匹配的文件,未选择任何内容。

答案 1 :(得分:1)

您可以使用存储库gitk Link。它会显示存储库或选定提交集中的更改。

它支持一些适用于git diff- *命令的选项,用于控制每个提交引入的更改的显示方式。