Git - 删除所有尚未推送的提交

问题描述 投票:-2回答:4

关于GIT的一个非常基本的问题:

如何删除所有尚未推送到远程存储库的提交,以便我对我的文件进行修改?

git
4个回答
1
投票

如果您确实要删除提交,则需要从键值存储中删除对象。

这可以通过在添加任何提交之前首先将分支重置为提交来完成。

git reset --soft <COMMIT-SHA>

--soft标志将保留您的工作目录。我假设你所指的模板位于工作目录的某个地方?

通常,origin / master将指向COMMIT-SHA,如果不是,则通过执行来查找它

git log --oneline

或同等的。

完成此操作后,您需要修剪存储库。

Here is an answer which explains how

基本上你需要:

git reflog expire --expire-unreachable=now --all
git gc --prune=now

没有任何理由这样做,因为最终git会自动执行此操作。


1
投票
git reset --soft origin/master

该命令将HEAD移回原始分支,但保留了工作存储库。


1
投票

你能试试吗?

git log --oneline
git reset --soft COMMIT

其中COMMIT是推送到远程存储库的最新提交。


0
投票

试图理解,我们需要有关您的问题的更多详细信息。

你要:

  1. 还原一组已定义的提交?
  2. 恢复到原始状态(原点/主人)?
  3. 压制你的提交?

这不是你的答案,只是一个提示:使用分支机构。

© www.soinside.com 2019 - 2024. All rights reserved.