twa*_*erg 146
@Marco Ponti的答案的另一种选择,并避免结账:
git diff --name-only <notMainDev> $(git merge-base <notMainDev> <mainDev>)
Run Code Online (Sandbox Code Playgroud)
如果您的特定shell不理解$()构造,请改用back-ticks.
Mar*_*nti 132
您所要做的就是以下内容:
git checkout <notMainDev>
git diff --name-only <mainDev>
Run Code Online (Sandbox Code Playgroud)
这将仅显示两个分支之间不同的文件名.
exu*_*sum 58
到目前为止还没有说过这个惊讶!
git diff master...branch
Run Code Online (Sandbox Code Playgroud)
所以只看到变化 branch
检查当前分支的使用情况
git diff master...
Run Code Online (Sandbox Code Playgroud)
感谢jqr
这是一个简而言之
git diff $(git merge-base master branch) branch
Run Code Online (Sandbox Code Playgroud)
所以合并基础(分支之间最近的常见提交)和分支提示
如果您的本地主人已过时,也可以使用origin/master而不是master
luk*_*ler 41
我无法相信有很多方法可以做到这一点.我使用之前发布的whatchanged,只需使用以下参数:
git whatchanged --name-only --pretty="" origin..HEAD
Run Code Online (Sandbox Code Playgroud)
这只列出了文件名,只列出了当前分支上已更改的文件名.
Yep*_*_Me 20
我真的很喜欢@ twalberg的答案,但我不想一直输入当前的分支名称.所以我用这个:
git diff --name-only $(git merge-base master HEAD)
Run Code Online (Sandbox Code Playgroud)
2020 年 11 月更新:
要获取当前分支中修改(和提交!)的文件列表,您可以使用标准git使用最短的控制台命令:
git diff --name-only master...
如果您的本地“master”分支已过时(在远程之后),请添加远程名称(假设它是“origin”):
git diff --name-only origin/master...
如果您还想包括未提交的更改,请删除...
:
git diff --name-only master
如果您使用不同的主分支名称(例如:“main”),请替换它:
git diff --name-only main...
如果你想输出到标准输出(所以它是可复制的):
git diff --name-only master... | cat
如果您希望文件名在 VSCode 终端中可点击,无论您从哪个文件夹运行此命令,请添加--relative
:
git diff --name-only --relative master... | cat
每个对不同选项的非常好的详细解释https://blog.jpalardy.com/posts/git-how-to-find-modified-files-on-a-branch/
如果它可以像这样容易怎么办?
git changed
Run Code Online (Sandbox Code Playgroud)
如果您愿意假设主分支被称为"master",并且您从master创建了其他分支,那么您可以将此别名添加到您的~/.gitconfig
文件中以使其变得如此简单:
cbranch = !"git branch | grep '*' | cut -f2 -d' '"
changed = !"git diff --name-only $(git cbranch) $(git merge-base $(git cbranch) master)"
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,这些假设对大多数人都有效,但你必须意识到你正在制造它们.
此外,您必须使用支持的shell $()
.你的shell很可能支持这个.
归档时间: |
|
查看次数: |
101904 次 |
最近记录: |