是否可以在多个文件上使用git checkout来放弃更改?如果是这样,我将如何指定多个文件。感谢。
答案 0 :(得分:46)
多次运行命令
git checkout -- path/to/file/one
git checkout -- path/to/file/two
或者在同一行中指定多个文件:
git checkout -- path/to/file/one path/to/file/two
您还可以指定整个文件夹,这些文件夹将递归到它们下面的所有文件。
git checkout -- path/to/folder
git checkout -- . # for the current path
答案 1 :(得分:6)
我在用户的git repo目录中运行find,意外地修改了目录中的所有文件。
me@server:/home/me/gitrepo# git status
On branch master
Your branch is up-to-date with 'origin/master'.
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: .bashrc
modified: dir/ec2-user.pem
modified: dir/readme.txt
modified: dir/root.pem
modified: dir/ec2-user.pem
modified: dir/readme.txt
modified: dir/root.pem
modified: dir/ec2-user.pem
modified: dir/ec2-user.pem.pub
modified: dir/readme.txt
modified: dir/root.pem
为了纠正我的错误,我运行了类似这个命令的东西来查找所有修改过的文件,并从master中检出文件。
<强> git status | grep modified | sed 's/^.*modified: //' | xargs git checkout
强>
答案 2 :(得分:1)
可能的选择可能是:
git status --porcelain | cut -c4- | xargs git checkout
答案 3 :(得分:0)
使用以下命令
git checkout path/to/fileName path/to/fileName2 path/to/fileName3
这将允许您恢复或放弃对文件fileName,fileName2和fileName3的更改
注意:路径名中的空格会导致git出现问题。在这种情况下,使用单引号''来包含路径名。
答案 4 :(得分:0)
列出一个文件中的两个(或多个)文件。
在Git 2.25(2020年第一季度)中,更多命令学习了“ --pathspec-from-file
”命令行选项which I previously mentioned for git commit
。
这意味着您可以将old confusing git checkout
command或new command(Git 2.23+)git restore
与文件的列表一起使用(签出/恢复) ,而不是在不同文件上多次重复执行同一命令。
请参见commit a9aecc7,commit cfd9376,commit 8ea1189,commit 6fdc9ad,commit 1d022bb,commit bebb5d6,commit 21bb308(2019年12月3日)由Alexandr Miloslavskiy (SyntevoAlex
)。
(由Junio C Hamano -- gitster
--在commit 135365d中合并,2019年12月25日)
checkout, restore
:支持--pathspec-from-file
选项签名人:Alexandr Miloslavskiy
为简单起见而做出的决定:
- 目前,即使
--pathspec-from-file
不是--patch
,也<file>
被宣布与stdin
不兼容。这样的用例不是真的期望的。- 不允许在args和文件中都传递pathspec。
you must specify path(s) to restore
块已向下移动以能够测试pathspec.nr
,因为对argc
的测试不再正确。
git switch
不支持新选项,因为它不希望有<pathspec>
个参数。
答案 5 :(得分:0)
对于已经回答的问题,我将对当前路径执行以下操作:
original payload:
{}