MEM*_*MEM 1012 git git-revert git-reset git-clean
是否有一个git命令可以恢复工作树和索引中的所有未提交的更改,还可以删除新创建的文件和文件夹?
hta*_*ata 1701
您可以运行以下两个命令:
# Revert changes to modified files.
git reset --hard
# Remove all untracked files and directories.
# '-f' is force, '-d' is remove directories.
git clean -fd
Run Code Online (Sandbox Code Playgroud)
Ram*_*wal 539
如果要仅在当前工作目录中还原更改,请使用
git checkout -- .
Run Code Online (Sandbox Code Playgroud)
在此之前,您可以在不实际执行任何操作的情况下列出将要还原的文件,只需检查将要发生的情况,即可:
git checkout --
Run Code Online (Sandbox Code Playgroud)
小智 104
使用"git checkout - ..."放弃工作目录中的更改
git checkout -- app/views/posts/index.html.erb
Run Code Online (Sandbox Code Playgroud)
要么
git checkout -- *
Run Code Online (Sandbox Code Playgroud)
删除对git status中未分段文件所做的所有更改,例如
modified: app/controllers/posts.rb
modified: app/views/posts/index.html.erb
Run Code Online (Sandbox Code Playgroud)
小智 52
一个非平凡的方法是运行这两个命令:
git stash 这会将您的更改移动到存储区,使您返回到HEAD状态git stash drop 这将删除在最后一个命令中创建的最新存储.Fr0*_*0sT 19
git clean -fd
Run Code Online (Sandbox Code Playgroud)
没有帮助,新文件仍然存在.我所做的是完全删除所有工作树然后
git reset --hard
Run Code Online (Sandbox Code Playgroud)
有关添加清除选项的建议,请参阅" 如何清除git中的本地工作目录? ".-x
git clean -fdx
Run Code Online (Sandbox Code Playgroud)
注意 -x标志将删除Git忽略的所有文件,所以要小心(参见我参考的答案中的讨论).
Jos*_*hin 13
我想你可以使用以下命令: git reset --hard
kga*_*oid 12
如果您有一个未提交的更改(仅在您的工作副本中)您希望恢复到最新提交中的副本,请执行以下操作:
git checkout filename
Run Code Online (Sandbox Code Playgroud)
The*_*ect 10
Git 2.23 引入git restore了恢复工作树文件的命令。
https://git-scm.com/docs/git-restore
恢复当前目录中的所有文件
git恢复。
如果要恢复所有 C 源文件以匹配索引中的版本,可以执行
git恢复'*.c'
您只需使用以下 Git 命令即可恢复存储库中所做的所有未提交的更改:
git checkout .
Run Code Online (Sandbox Code Playgroud)
例子:
ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ 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: application/controllers/Drivers.php
modified: application/views/drivers/add.php
modified: application/views/drivers/load_driver_info.php
modified: uploads/drivers/drivers.xlsx
no changes added to commit (use "git add" and/or "git commit -a")
ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git checkout .
ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)
小智 6
来自 Git 帮助:
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
Run Code Online (Sandbox Code Playgroud)
请注意,可能仍有文件似乎没有消失 - 它们可能未经编辑,但由于CRLF/LF更改,git可能已将其标记为正在编辑.看看你.gitattributes最近是否做了一些改变.
在我的情况下,我已将CRLF设置添加到.gitattributes文件中,因此,所有文件都保留在"已修改文件"列表中.更改.gitattributes设置使它们消失.
| 归档时间: |
|
| 查看次数: |
725958 次 |
| 最近记录: |