我对 Git 感到困惑!
我有一些文件之前已添加并提交到 master 分支。现在,我对一些文件进行了一些更改,但在添加和提交这些修改之前,我只想放弃我所做的一切,回到我之前的平静状态!
命令是什么??
我对 Git 感到困惑!
我有一些文件之前已添加并提交到 master 分支。现在,我对一些文件进行了一些更改,但在添加和提交这些修改之前,我只想放弃我所做的一切,回到我之前的平静状态!
命令是什么??
警告!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
这是永久性的,因为它们被忽略了,所以备份它们并不重要。
运行这个:
git clean -dfx
git reset --hard
如果文件在暂存区(您git add
编辑了它们):
git reset HEAD file1 file2
git checkout file1 file2
如果他们在工作区域:
git checkout file1 file2
我还建议看一下Adam Dymitruk 的答案(至少是第一部分)。他解释了如何在取消更改之前保存更改。
目前还不清楚你想在这里做什么。如果你的目标是用一个新的提交替换你的最后一个提交,git add
你想像往常一样更新的文件,然后git commit --amend
. 这将创建一个新的提交,其父级是当前提交的父级。您也可以使用git reset --soft HEAD^
后跟来完成此操作git commit
。