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

时间:2015-05-23 11:00:58

标签: 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

这里我有一堆文件,我希望将它们包含在不同的提交中。到目前为止,我做的是做一堆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

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

1 个答案:

答案 0 :(得分:15)

示例回购:

我使用了一个带有四个文件的示例回购:a,b,c,d。
这里a被跟踪,更改和上演; b已被跟踪,更改且未上演; c未跟踪和上演; d只是未跟踪。

enter image description here

外部工具:git-number

  

在没有参数的情况下运行时,&#39; git number&#39;跑步&#39; git status&#39;并为每个由&#39; git status&#39;打印的文件名行附加一个唯一的编号,它将记住&#39;这个数字到文件名的关联。使用参数运行时,如下所示:

$ git number <any git command> [one or more numbers or git options/args]
  

&#39; git number&#39;将运行该并将所有数字替换为其等效的文件名。非数字参数完整地传递给git。

enter image description here

这可以与其他命令一起使用。

enter image description here

外部工具:SCM Breeze

  

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

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

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

Ctrl + x Space =&gt; git_commit_all - 提交所有内容

git add

$ ga 1

git diff

$ gd 2

git reset

$ grs 3

git commit

$ gco 4

使用git add -i

的原生方式
git add -i

来自Git reference

  

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

您可以将此记住为-i ntuitive,因为界面非常直观。好吧,至少对硬核Vim用户来说。

打开交互模式: enter image description here

添加(暂存)跟踪文件: enter image description here

添加未跟踪的文件: enter image description here

查看更改: enter image description here

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

注意:

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