如何在不键入整个路径的情况下实现git diff
我正在使用github windows shell,我将执行以下操作如何在不键入整个路径的情况下实现git diff,git,github,Git,Github,我正在使用github windows shell,我将执行以下操作 git status 看到修改过的文件列表,想提醒自己发生了什么变化。我得打个类似的字 git diff Source\FooBar\Pages\FooBar.aspx 这似乎需要输入很多字符。是否有更简单的工作流来查看我没有看到的差异?如果您想查看所有更改,只需使用git diff。不过,它不会列出新文件 要有选择地查看更改,我建议使用GUI,例如,git GUI或gitk我使用Console2来承载bash 有了它,我
git status
看到修改过的文件列表,想提醒自己发生了什么变化。我得打个类似的字
git diff Source\FooBar\Pages\FooBar.aspx
这似乎需要输入很多字符。是否有更简单的工作流来查看我没有看到的差异?如果您想查看所有更改,只需使用
git diff
。不过,它不会列出新文件
要有选择地查看更改,我建议使用GUI,例如,
git GUI
或gitk
我使用Console2来承载bash
有了它,我可以使用Ctrl+点击并拖动来突出显示文本,然后可以将文本复制到剪贴板并粘贴到其他命令行中
我用它来复制文件路径
这使我能够键入git diff[Ctrl+V]并获得所需的命令行。大多数终端(例如windows控制台2)都具有自动完成功能
开始键入并按tab
通常git可以在2个字符后自动完成。比如:
gitab
ditab
将为您提供git diff。如果文件夹的命名方式不同,则可能会在单个字符后自动完成。例如,如果项目根目录有三个文件:
- 自述
- /来源/
- /垃圾箱/
r
、s
或b
,然后按tab键自动键入这些文件名
仅供参考,
自动完成适用于终端和git命令、文件和目录名、分支和标记名,但不幸的是,不适用于提交ID
git diff -- **/FooBar.aspx
通常,
*
代表文件名的任何部分,***
代表任何子路径。例如,git diff--**/main/**.aspx
将仅区分驻留在main
或main
自身子目录中的aspx
文件。这适用于接受路径的其他命令,如commit和add 这样做会更好,因为它处理的是编程工具/实现,而不是概念/设计问题。请不要在那里重新询问,因为这可以迁移。一个好的规则是,如果你的问题在你的IDE前面,那么它就属于IDE。如果它让你站在白板前,它就属于程序员。你特别想避免什么?是否要避免单独查看每个文件的差异?是否要在不键入完整路径的情况下获取特定文件的差异?我特别希望避免键入每个文件的完整路径。我想git diff
autocomplete适用于gitab
ditab
部分,但不适用于文件名部分。当您的文件名通常很长,比如Source\FooBar\Pages\FooBar.aspx
时,使用完全不正确的文件名(在我使用的windows msysgit中)会让人非常沮丧。我只是在公开回购中尝试过<代码>地理信息tabdi
tabst
tabc
tab。。。变成git-diff-style/css/
它会自动键入斜杠和所有内容。在Windows上,这适用于提交和添加,但奇怪的是,它不适用于diff。它抱怨说,您需要使用“---”来分隔路径,即使您是。不幸的是,这不适用于ubuntu机器上的my zsh