1

我对 Git 感到困惑!

我有一些文件之前已添加并提交到 master 分支。现在,我对一些文件进行了一些更改,但添加和提交这些修改之前,我只想放弃我所做的一切,回到我之前的平静状态!

命令是什么??

4

4 回答 4

4

警告!git reset --hard并且git checkout -- some files没有撤消!当心!

最好的办法是把你认为不需要的东西藏起来

git stash -u

(-u 将包括尚未跟踪的文件以及已跟踪的文件)。现在你回到了一个干净的状态。如果您确实有一些重要的东西并稍后意识到,您可以检查您的藏匿处以再次找到它。要让他们再次回来,你可以

git stash pop

再次“擦除”它们

git stash -u

不要在没有安全网的情况下做任何事情。

要对文件的子集或部分文件执行此操作,您可以:

git add -A && git stash save --patch 

不幸的是,补丁不适用于未跟踪的存储文件。

如果您所有的更改都只涉及跟踪的文件,或者您不关心未跟踪的文件,您可以跳过 git add 并执行以下操作:

git stash save --patch

然后将提示您输入要存储的内容(有效地删除它)。这样,如果您愿意,您可以只重置某些更改 - 安全。

任何被忽略的文件都保持不变。擦拭它们,

git clean -xdf

这是永久性的,因为它们被忽略了,所以备份它们并不重要。

于 2012-06-27T17:51:09.543 回答
1

运行这个:

git clean -dfx
git reset --hard
于 2012-06-27T17:15:53.547 回答
0

如果文件在暂存区(您git add编辑了它们):

git reset HEAD file1 file2
git checkout file1 file2

如果他们在工作区域:

git checkout file1 file2

我还建议看一下Adam Dymitruk 的答案(至少是第一部分)。他解释了如何在取消更改之前保存更改。

于 2012-06-27T17:12:00.510 回答
0

目前还不清楚你想在这里做什么。如果你的目标是用一个新的提交替换你的最后一个提交,git add你想像往常一样更新的文件,然后git commit --amend. 这将创建一个新的提交,其父级是当前提交的父级。您也可以使用git reset --soft HEAD^后跟来完成此操作git commit

于 2012-06-27T17:13:07.223 回答