git签出修改的文件而不复制粘贴完整文件路径
git签出修改的文件而不复制粘贴完整文件路径,git,git-checkout,Git,Git Checkout,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)
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
git状态
#在分支icc服务器上发送度量值
#未为提交而暂存的更改:
#(使用“git add…”更新将提交的内容)
#(使用“git签出--…”放弃工作目录中的更改)
#
#修改:java/com/me/cards/preview/preview-card.js
我想签出文件,但不需要重新键入或复制粘贴。最近的命令是
add-i
,但它只关心索引,而不关心签出。这里有什么好的工作流程?使用tab completion,几乎每个shell都提供这种功能。有很多文章可以帮助您设置此功能,包括Bash
对于纯Git解决方案:
如果这是唯一的修改,请使用git checkout.
放弃所有更改
如果要保留某些更改并放弃其他更改,请使用git checkout-p
以交互方式放弃工作目录中的更改
当Git提示您要放弃的每个文件的更改时,请使用a
:
a-丢弃此大块以及文件中所有后续大块
当Git提示您要保留的每个文件的更改时,请使用d
:
d-不要丢弃这个大块头或文件中任何后面的大块头
Git有一个“插件”,非常适合这个用例
它被调用,使您能够通过数字引用更改的文件
“plugin”添加了一个
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)
然后,通过在每个命令前面加上number
,可以通过文件编号引用文件。一个git add
可以如下所示:
$ git number add 1
git add a/b/c/d/e/f/g/test2
git number
回显执行的命令,以便确保使用正确的数字gitadd
只是一个例子,您可以使用任何命令并在其前面加上number
此外,它支持范围;如果您想添加文件5-10,只需使用git number add 5-10
,git number
即可
对于任何进一步的问题,我建议只看一看。选项卡完成不起作用,因为我的路径比我的玩具示例中的路径大得可怕,但我不知道签出-p,这是我需要的,谢谢。如果你也把其他选项的含义放进去,那就太好了
从worktree[y,n,q,a,d,/,j,j,g,e,,]中丢弃这个大块头。
@MohammadFaisal不在这个答案的范围内,并且已经提供了内联帮助。只需按?
@meagar:感谢您提到?
,因为在第一次查看选项时,我不太清楚在做错任何事情之前应该使用哪一个。@meagar我还觉得答案不完整,没有提到如何不放弃其他文件中的更改,所以我在您的答案末尾添加了这一点。看起来怎么样?看一看。这不完全是您所要求的,但可以应用于这种情况。git diff files--name only
列出了所有更改过的文件,如果您想获得脚本或其他内容的名称。
$ git number add 1
git add a/b/c/d/e/f/g/test2