git checkout修改后的文件没有复制粘贴完整文件路径

时间:2015-02-23 14:56:46

标签: git git-checkout

git status显示类似

的内容
git status
# On branch icc-server-send-metric-values
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   java/com/me/cards/preview/preview-card.js

我想检查文件,但无需重新输入或复制粘贴文件。最接近的命令是add -i,但这只关心索引,而不是检出。这里有什么好的工作流程?

2 个答案:

答案 0 :(得分:2)

使用tab-completion,几乎每个shell都提供。有很多文章可以帮助您进行设置,包括Bash的this one

至于纯Git解决方案:

如果这是唯一的修改,请使用git checkout .放弃所有更改。

如果您想保留一些更改并丢弃其他更改,请使用git checkout -p以交互方式放弃工作目录中的更改。当Git提示您更改该文件时,请使用a

  

a - 丢弃这个大块以及文件中所有后来的帅哥

答案 1 :(得分:1)

有一个&#34;插件&#34;对于Git来说,这非常适合这个用例。

它被称为git number,可让您通过数字引用已更改的文件。


&#34;插件&#34;添加git number命令,该命令 - 没有任何其他参数 - 相当于git status但具有前导数字。

$ git number
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

1       a/b/c/d/e/f/g/test2

nothing added to commit but untracked files present (use "git add" to track)

如果您愿意git status -s(就像我一样),git number让您了解。

$ git number -s
1 ?? a/b/c/d/e/f/g/test2

之后,您可以通过使用number预先添加每个命令来引用文件的编号。 git add可能如下所示:

$ git number add 1
git add a/b/c/d/e/f/g/test2

git number回显已执行的命令,以确保您使用了正确的数字。 git add只是一个示例,您可以使用任何命令并将其添加到number前。

此外,它支持范围;如果你想要添加文件5-10,你可以使用git number add 5-10git number来理解你。


对于任何进一步的问题,我建议您只需查看github repository