git命令来区分git状态输出的第n个修改文件

时间:2017-09-19 16:57:52

标签: git bash

我经常运行git status,然后想要查看其中一个文件的特定差异。所以之后:

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:  path/to/modified/file1
    modified:  path/to/modified/file1

是否可以使用git或作为后备bash来git diff第n个修改后的文件,以便git diff <someMagic(2)>减少到git diff path/to/modified/file2

我的主要问题是,如果它存在于git中,如果不是为了帮助使用bash命令。

1 个答案:

答案 0 :(得分:1)

如果自动化不是您的目标,那么我会说git add -i适合您的情况。

查看git add -i文档。

如果你正在寻找一个脚本,那么我已经做了一些你想做的事情:

#!/bin/bash
git diff $(git status | grep modified | sed 's/^.*:   //' | head -n "$1" | tail -n 1)

使用它的方法是调用它然后传递你想要差异的修改文件的编号:<script_name> N,其中 N 是&#34; nth的编号修改过的文件&#34;。

(例如,使用您的示例,如果我拨打<script>.sh 2,则会调用这样的差异:git diff path/to/modified/file2