如何在git中添加git中的特定文件?

ben*_*ben 9 git git-add

我经常遇到以下情况:

modified:   assembly/main.debug.s
modified:   ../src/cd/Config.java
modified:   ../src/cd/memoization/cfg/SubgraphFinder.java
modified:   ../src/cd/memoization/cfg/SubgraphMap.java
modified:   ../src/cd/profiler/Profile.java
modified:   ../test/cd/test/TestSamplePrograms.java
modified:   ../../notes/20150521.txt
Run Code Online (Sandbox Code Playgroud)

在这里,我有一堆文件,我想将它们包含在不同的提交中.到目前为止我做的是做一堆git add <pathspec>跟随各自的git commit.该<pathspec>是什么让我很烦.有类似下面的东西吗?

1 modified:   assembly/main.debug.s
2 modified:   ../src/cd/Config.java
3 modified:   ../src/cd/memoization/cfg/SubgraphFinder.java
4 modified:   ../src/cd/memoization/cfg/SubgraphMap.java
5 modified:   ../src/cd/profiler/Profile.java
6 modified:   ../test/cd/test/TestSamplePrograms.java
7 modified:   ../../notes/20150521.txt
Run Code Online (Sandbox Code Playgroud)

git magic 2,3,5 -m "My super simple commit"

Nic*_*kin 16

示例回购:

我正在使用一个包含四个文件的示例repo:a,b,c,d.
这里a有跟踪,更改和上演; b被跟踪,改变而不是上演; c在未跟踪和上演; d只是没有跟踪.

在此输入图像描述

外部工具:git-number

当没有参数运行时,'git number'运行'git status'并为'git status'打印的每行文件名附加一个唯一的编号,它将'记住'这个数字到文件名的关联.使用参数运行时,如下所示:

$ git number <any git command> [one or more numbers or git options/args]
Run Code Online (Sandbox Code Playgroud)

'git number'将运行该操作并将所有数字替换为其等效的文件名.非数字参数完整地传递给git.

在此输入图像描述

这可用于其他命令.

在此输入图像描述

外部工具:SCM Breeze

SCM Breeze是一组shell脚本(用于bash和zsh),可以增强与git的交互.它与您的shell集成,为您提供编号的文件快捷方式,带有选项卡完成的存储库索引以及许多其他有用的功能.

SCM Breeze利用键盘快捷键和别名按编号处理git文件:

Ctrl+ x,c=> git_add_and_commit- 添加给定文件(如果有),然后提交分阶段更改

Ctrl+ x,Space=> git_commit_all- 提交一切

git add:

$ ga 1
Run Code Online (Sandbox Code Playgroud)

git diff:

$ gd 2
Run Code Online (Sandbox Code Playgroud)

git reset:

$ grs 3
Run Code Online (Sandbox Code Playgroud)

git commit:

$ gco 4
Run Code Online (Sandbox Code Playgroud)

本土方式 git add -i

git add -i
Run Code Online (Sandbox Code Playgroud)

Git参考:

-i
--interactive
以交互方式将工作树中的已修改内容添加到索引中.可以提供可选的路径参数以限制对工作树的子集的操作.有关详细信息,请参阅"交互模式"

你可以记住它作为-intuitive,因为界面非常直观.好吧,至少对硬核Vim用户来说.

打开交互模式: 在此输入图像描述

添加(暂存)跟踪文件: 在此输入图像描述

添加未跟踪的文件: 在此输入图像描述

看到变化: 在此输入图像描述

如果您在添加过程中遇到困难Return,请使用空字符串.

注意:

如果你对外观和颜色感到困惑:我一直在使用iTerm2 + zsh + oh-my-zsh.