是否有一种方法可以查看分支中哪些文件发生了更改?
当前回答
git diff --name-only master...branch-name
我们要与之进行比较。
其他回答
真不敢相信有这么多方法可以做到。我使用之前有人发布的whatchanged,只是带有以下参数:
git whatchanged --name-only --pretty="" origin..HEAD
这只列出了文件名,并且只列出了在当前分支上更改的文件名。
考虑到你在一个特性分支上,你想要检查哪些文件与master…就在这个:
git diff --name-only master
我使用grep,所以我只得到diff -git的行,这是文件路径:
git diff branchA branchB | grep 'diff --git'
// OUTPUTS ALL FILES WITH CHANGES, SIMPLE HA :)
diff --git a/package-lock.json b/package-lock.json
扩展@twalberg和@iconoclast,如果你因为任何原因使用cmd,你可以使用:
FOR /F "usebackq" %x IN (`"git branch | grep '*' | cut -f2 -d' '"`) DO FOR /F "usebackq" %y IN (`"git merge-base %x master"`) DO git diff --name-only %x %y
不知道为什么,没人提吉特。参见https://stackoverflow.com/a/424142/1657819
Git-tree是首选,因为它是一个管道命令;应该是程序化的(而且可能更快)
(假设基础分支是master)
git diff-tree --no-commit-id --name-only -r master..branch-name
然而,这将显示分支中所有受影响的文件,如果你只想看到显式修改的文件,你可以使用——diff-filter:
git diff-tree --no-commit-id --name-only -r master..branch-name --diff-filter=M
也可以使用——name-status来代替——name-only来查看文件的状态(A/M/D等等)
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别