如何避免在 git-add 时指定绝对文件路径
一旦文件路径变得很长,使用 git add 命令就会变得乏味。例如 git add src_test/com/abc/product/server/datasource/manager/aats/DSManger.java
是否可以绕过指定绝对文件路径?可能正在使用某种模式或其他东西?
我知道我们可以使用git gui
。但我想使用命令行来做到这一点。
预先感谢您的投入。
Using git add
command becomes tedious once the file path becomes lengthy. For e.g.git add src_test/com/abc/product/server/datasource/manager/aats/DSManger.java
Is it possible to bypass specifying absolute file path? May be using some kind of pattern or something?
I know that we can use git gui
. But I want to do it using cmd line.
Thanks in advance for the inputs.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
对于类 UNIX 系统,您始终可以使用星号来指向文件,例如
,将包含 git 可以在从当前工作目录开始的源代码树中找到的所有 DSManager.java 文件。
For unix-like systems you can always use the star to point to files, e.g.
will include all DSManager.java files git can find within your source tree starting in your current working directory.
这是添加文件的另一种方法。至少在 git 1.7.1 中受支持。
按
2
选择更新,或键入u
。按与您要暂存的文件相对应的数字。用逗号分隔多个数字,例如
1,2
。只需在此处按
[enter]
。最后输入
7
或q
退出。Here is another way to add files. Supported at the very least in git 1.7.1.
Press
2
to select update, or typeu
.Press the number corresponding to the file you want to stage. Separate multiple numbers with a comma, e.g.
1,2
.Just press
[enter]
here.Finally type
7
orq
to quit.使用 bash,您可以设置“globstar”(
shopt -s globstar
),然后执行以下操作:添加当前目录下所有名为 DSManager.java 的文件。
(
**/
匹配所有目录和子目录。)With bash, you can set "globstar" (
shopt -s globstar
) and then do:to add all files called DSManager.java present below the current directory.
(
**/
matches all directories and subdirectories.)我不确定我是否理解你的问题。
要添加所有文件(尚未添加),请使用:
如果您需要添加除一个文件之外的所有文件,请冷添加所有文件,然后使用以下方法删除文件:
添加子目录中的所有文件
您还可以使用我知道的一件事可以 烦人的是,当您重命名文件时,您需要添加新文件名并 git rm 旧名称。重命名目录时这可能很烦人。这个(仅限unix)git别名解决了这个问题(将其放入〜/ .gitconfig文件中:
这会添加所有新文件并删除所有已删除的文件并将其暂存到索引中。
I'm not sure if I understand your question.
To add all files (not yet added), use:
If you need to add all but one file, you cold add all, then remove the files using:
You can also add all files in a subdirectory with
One thing that I know can be annoying is when you rename files, you need to add the new filename and git rm the old name. When renaming a directory this can be annoying. This (unix only) git alias solves this problem (put it in your ~/.gitconfig file:
This adds all new files and removes all deleted files and stages it to the index.
我相信如果您的终端窗口当前已 cd 到正确的文件夹(src_test/com/abc/product/server/datasource/manager/aats),您可以只说“git add DSManger.java”。所以就这样做:
否则,除非你制作一个单独的存储库,否则我想不出任何其他方法。
I believe you can just say "git add DSManger.java" if your terminal window is currently cd into the proper folder (src_test/com/abc/product/server/datasource/manager/aats). So just do:
Otherwise, I can't think of any other way unless you make a separate repo.
请查看我为此目的创建的示例 bash 脚本。 Github 存储库链接
示例输出
Please have a look at this sample bash script which I have created for this purpose. Link to the Github Repo
Sample output