展示git checkout对工作目录所做的更改

6
当我切换分支时,如何在我的工作目录中显示git checkout添加/修改/删除的文件?

看到一个将近十年历史的问题,仍然没有好的解决方案,真是让人沮丧。我只想知道是否修改了 package.json,这样我就知道是否需要再次运行 npm install :-/ - Kip
2个回答

4

我不认为可以通过在git checkout <branch>命令中添加任何类似于“verbose”的选项来输出这些信息。但是,在成功检出后,您可以运行以下命令:

git diff --name-status HEAD@{1} HEAD

那个命令的输出将在第一列的字母中指示文件相对于之前的提交是否已被删除(D),新增(A),修改(M)等。
可能有帮助的额外说明是,请注意,当您切换分支时,Git会尝试保留尚未提交的文件的本地修改。如果这次分支切换不会破坏那些更改,则会立即在终端上指示它们,例如:
$ git checkout other-branch
M foo.c
M foo.h

请注意,使用 git diff --exit-status 命令可以使其以非0(1)的退出码退出,这样你就可以在有更改时执行某些命令: git diff --exit-code --name-status HEAD@{1} HEAD && echo no changes || echo things have changed。另请参阅 http://unix.stackexchange.com/questions/15415/bash-run-command2-if-command1-fails。 - The Nail

0

你可以做:

git diff --name-status <branch_switching_to>

在结账前查看差异并查看结账将修改什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接