当前位置: 首页 > 知识库问答 >
问题:

git 撤消所有未提交或未保存的更改

西门京
2023-03-14

我正在尝试撤消自上次提交以来的所有更改。看过这篇文章后,我尝试了<code>git reset--hard。我回答说,头现在在18c3773…但当我查看我的本地源时,所有文件仍然在那里。我错过了什么?

共有3个答案

呼延衡
2023-03-14

我所做的是

git add . (adding everything)
git stash 
git stash drop

一个班轮: git add .

M.Justin指出的较短版本

< code>git stash -u

刁俊人
2023-03-14

如果您希望“撤销”所有未提交的更改,只需运行:

git stash
git stash drop

如果您有任何未跟踪的文件(通过运行git status进行检查),这些文件可以通过运行以下方式删除:

git clean -fdx

<code>git stash</code>创建一个新的stash,它将成为stash@{0}。如果您想先检查,可以运行<code>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

每个存储都以之前提交的消息命名。

江迪
2023-03-14

>

  • 这将卸载您可能使用<code>git add</code>暂存的所有文件:

    git reset
    

    这将恢复所有本地未提交的更改(应在repo root中执行):

    git checkout .
    

    您还可以将未提交的更改仅还原到特定的文件或目录:

    git checkout [some_dir|file.txt]
    

    另一种恢复所有未提交更改的方法(键入时间较长,但适用于任何子目录):

    git reset --hard HEAD
    

    这将删除所有本地未跟踪文件,因此只保留git跟踪文件:

    git clean -fdx
    

    警告:-x还将删除所有忽略的文件,包括指定的文件。gitignore!您可能希望使用-n预览要删除的文件。

    总而言之:执行以下命令基本上等同于从原始源代码克隆新的git(但它不会重新下载任何东西,所以速度要快得多):

    git reset
    git checkout .
    git clean -fdx
    

    这种方法的典型用法是在构建脚本中,您必须确保您的树是绝对干净的-没有任何修改或本地创建的对象文件或构建工件,并且您希望它工作得非常快,并且不会每次都重新克隆整个存储库。

  •  类似资料:
    • 抱歉,我无法理解这个问题的现有答案,也无法理解大多数问题,因为答案是模棱两可的,答案是什么正在完成的。我做了: git clone .... 使用我最喜欢的编辑器编辑文件“文件” 添加文件 git 提交文件 我想在2点后返回美国。还有3点之前。 如果您的答案包含任何git命令的参数,请不要忘记解释这些参数(例如HEAD~32)。 我的问题似乎是一个“重复的问题”。在搜索“撤销git提交”时,我没有

    • 一些背景知识,我在我的web应用程序中使用JPA/Hibernate/Spring,我也使用org。springframework。orm。jpa。支持OpenEntityManagerViewFilter和用于处理实体的扩展持久性上下文。 问题: > 使用find方法从数据库加载实体,实体存储在会话中 用户更改实体并点击保存 用户更改反映在会话中存储的实体上(在控制器中) 实体被发送到服务类中的

    • 我的文件无法工作,所以我回答了这个问题。 有什么办法可以让我恢复所有这些动作吗?我无法执行操作,因为我现在会收到错误:。 愚蠢愚蠢的错误,我能找到解决办法。

    • 在本文章教程中,我们将演示如何查看 Git 存储库的文件和提交文件记录,并对存储库中的文件作修改和提交。 注意:在开始学习本教程之前,先克隆一个存储库,有关如何克隆存储库,请参考: http://www.yiibai.com/git/git_clone_operation.html 在上一步中,我们已经修改了 main.py 文件中的代码,在代码中定义了两个变量并提交代码,但是要再次添加和修改ma

    • 我正在尝试撤消提交并复制提交,但当我使用时 (有人向我解释)出现了这个问题:更多?当有人向我解释的时候。声明没有提到。这意味着什么?我需要添加其他东西来撤销我的提交吗?

    • 有没有一种方法可以恢复提交,使我的本地副本保留在提交中所做的更改,但它们在我的工作副本中变成未提交的更改?回滚提交会将您带到上一次提交——我希望保留所做的更改,但是我将它们提交到了错误的分支。 这没有被推动,只是被promise。