我和Git混淆了!!
我之前添加并提交了master分支的一些文件。 不,我在一些文件中做了一些更改,但是之前添加并进行了这些修改,我只想放弃我所做的一切,回到我以前的,和平的状态!
命令是什么?
答案 0 :(得分: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
这是永久性的,因为它们被忽略了,备份它们并不重要。
答案 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
来完成此操作。