Ant*_*yrd 759 git command-line undo git-reset
我试图撤消自上次提交以来的所有更改.我试着git reset --hard和git reset --hard HEAD观察后,这个职位.我用头响应现在是18c3773 ...但是当我查看我的本地源时,所有文件仍然存在.我错过了什么?
mvp*_*mvp 1478
这将取消您可能已暂存的所有文件git add:
git reset
Run Code Online (Sandbox Code Playgroud)这将还原所有本地未提交的更改(应在repo root中执行):
git checkout .
Run Code Online (Sandbox Code Playgroud)
您还可以仅将未提交的更改还原到特定文件或目录:
git checkout [some_dir|file.txt]
Run Code Online (Sandbox Code Playgroud)
还原所有未提交更改的另一种方法(更长时间键入,但可以从任何子目录工作):
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)这将删除所有本地未跟踪文件,因此只保留git跟踪文件:
git clean -fdx
Run Code Online (Sandbox Code Playgroud)
警告: -x 还将删除所有被忽略的文件,包括指定的文件.gitignore!您可能希望-n用于预览要删除的文件.
总结一下:执行以下命令基本上等同git clone于原始来源的新鲜(但它不会重新下载任何内容,因此更快):
git reset
git checkout .
git clean -fdx
Run Code Online (Sandbox Code Playgroud)
这种情况的典型用法是在构建脚本中,当你必须确保你的树是绝对干净的 - 没有任何修改或本地创建的目标文件或构建工件,并且你想让它工作得非常快而且不能重新每次都克隆整个存储库.
Abr*_*ram 141
如果您希望" 撤消 "所有未提交的更改,只需运行:
git stash
git stash drop
Run Code Online (Sandbox Code Playgroud)
如果您有任何未跟踪的文件(通过运行检查git status),可以通过运行以下方法删除这些文件:
git clean -fdx
Run Code Online (Sandbox Code Playgroud)
git stash创建一个新的存储,它将成为存储@ {0}.如果您想先检查,可以跑去git stash list查看您的藏匿处列表.它看起来像:
stash@{0}: WIP on rails-4: 66c8407 remove forem residuals
stash@{1}: WIP on master: 2b8f269 Map qualifications
stash@{2}: WIP on master: 27a7e54 Use non-dynamic finders
stash@{3}: WIP on blogit: c9bd270 some changes
Run Code Online (Sandbox Code Playgroud)
每个存储都以先前的提交消息命名.
Rtm*_*tmY 20
撤消未暂存提交的更改的另一个选项是运行:
git restore <file>
Run Code Online (Sandbox Code Playgroud)
放弃工作目录中的更改。
bsh*_*eps 12
添加此答案是因为之前的答案会永久删除您的更改
git stash -u
说明:存储本地更改,包括未跟踪的更改(-u标志)。该命令保存您的本地修改并恢复工作目录以匹配 HEAD 提交。
git stash pop
说明:该命令会将更改重新应用到当前工作树状态的顶部。
git stash drop
说明:该命令将永久删除隐藏的条目
小智 12
git restore [filename_path]
例如,我需要放弃index.html文件中的最后更改:
git restore /usr/myPC/folder/index.html
Run Code Online (Sandbox Code Playgroud)
San*_*mar 11
如果您想“撤消”所有未提交的更改或本地更改,只需运行:
git add .
git stash
git stash drop
git clean -fdx
Run Code Online (Sandbox Code Playgroud)
Git 中提供了三个选项可以帮助撤消本地更改。
要查看工作目录中所做的更改,您应该运行 git status:
git status
Run Code Online (Sandbox Code Playgroud)
使用 git stash 撤消更改
要放弃所有本地更改,同时保存它们以供以后使用,您可以运行 git stash 命令:
git stash
Run Code Online (Sandbox Code Playgroud)
使用 git checkout 撤消更改
要永久放弃对文件的本地更改,您可以运行:
git checkout -- <file>
Run Code Online (Sandbox Code Playgroud)
使用 git reset 撤消更改
要永久放弃对所有文件的所有本地更改,您可以执行以下操作:
git reset --hard
Run Code Online (Sandbox Code Playgroud)
来源:https ://www.w3docs.com/snippets/git/how-to-discard-unstaged-changes.html
0. last commit,i.e. HEAD commit
1. Working tree changes, file/directory deletion,adding,modification.
2. The changes are staged in index
3. Staged changes are committed
Run Code Online (Sandbox Code Playgroud)
0->1: manual file/directory operation
1->2: git add .
2->3: git commit -m "xxx"
Run Code Online (Sandbox Code Playgroud)
0->1: git diff
0->2: git diff --cached
0->1, and 0->2: git diff HEAD
last last commit->last commit: git diff HEAD^ HEAD
Run Code Online (Sandbox Code Playgroud)
2->1: git reset
1->0: git checkout . #only for tracked files/directories(actions include modifying/deleting tracked files/directories)
1->0: git clean -fdx #only for untracked files/directories(action includes adding new files/directories)
2->1, and 1->0: git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)
git reset && git checkout . && git clean -fdx
Run Code Online (Sandbox Code Playgroud)
我要做的是
git add . (adding everything)
git stash
git stash drop
Run Code Online (Sandbox Code Playgroud)
一班轮: git add . && git stash && git stash drop
| 归档时间: |
|
| 查看次数: |
589929 次 |
| 最近记录: |