Git,在添加/提交之前放弃修改过的文件

时间:2012-06-27 17:10:25

标签: git

我和Git混淆了!!

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

命令是什么?

4 个答案:

答案 0 :(得分:4)

警告! git reset --hardgit 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

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

答案 1 :(得分:1)

跑吧:

git clean -dfx
git reset --hard

答案 2 :(得分:0)

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

git reset HEAD file1 file2
git checkout file1 file2

如果他们在工作区域:

git checkout file1 file2

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

答案 3 :(得分:0)

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