2015-02-23 72 views
2

git status git的结帐显示类似修改后的文件没有复制粘贴完整的文件路径

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,但这只是真的关心索引,而不是检查。这里有什么好的工作流程?

+0

看看[这个答案](http://stackoverflow.com/a/27443790/2274224)。这不是你要求的,但可以应用于这种情况。 – 2015-02-23 15:20:32

+0

'git diff-files --name-only'列出了所有更改过的文件,如果您想拥有脚本或其他名称的话。 – jthill 2015-02-24 06:05:42

回答

1

使用标签完成,它几乎每个壳提供。有很多文章可以帮助你设置,包括Bash的this one

至于纯Git的解决方案:

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

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

一个 - 放弃这个大块头和文件中的所有后来的帅哥

+0

选项卡完成不起作用,因为我的路径比我的玩具示例大得多,但我不知道checkout -p,这就是我需要的,谢谢。 – djechlin 2015-02-23 15:05:00

1

有一个“插件” GIT中,这是非常适合对于这个用例。

这就是所谓的git number,使您通过数字引用更改的文件。


“插件”增加了一个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

相关问题