如何git重置 - 除了4个文件以外的一切

Ron*_*ity 23 git

假设什么都没有上演,除了文件之外,重置你所做的所有工作的推荐方法是什么:

app/models/a.rb
app/views/a/index.html.rb
config/foo.rb
config/bar.rb
Run Code Online (Sandbox Code Playgroud)

app/models /和app/views /中存在其他脏文件,我不想保留.

kan*_*kan 30

正如您所描述的那样,它看起来并不像您想要的那样reset.最简单的是:

 git add app/models/a.rb app/views/a/index.html.rb config/foo.rb config/bar.rb
 git checkout .
Run Code Online (Sandbox Code Playgroud)

因此,它将您的4个文件添加到索引中,并检查其他文件的干净版本(即丢弃更改).

我假设您之前没有staged(git add)修改过的文件(然后您应该使用reset取消它).

  • 是的,它是不同的 - `checkout` 适用于跟踪的文件,`clean` 适用于未跟踪的文件。 (2认同)

sir*_*ide 10

一种方法是git提交这四个文件,然后重新设置,然后撤消提交:

git add <files to keep>
git commit -m "temp"
git reset --hard
git reset HEAD~
Run Code Online (Sandbox Code Playgroud)


Tob*_*ler 6

如果这四个文件在索引中而脏文件不在,那么一个简单的git-clean应该可以做到.如果不确定,--dry-run请先使用开关,然后注意--exclude开关.

否则,坚持siride的答案