Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git-删除所有尚未推送的提交_Git - Fatal编程技术网

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

Git-删除所有尚未推送的提交,git,Git,关于GIT的一个非常基本的问题: 如何删除所有尚未推送到远程存储库的提交,从而保留对文件的修改 git reset --soft origin/master 该命令将头移回原始分支,但保留工作存储库。您能试试吗 git log --oneline git reset --soft COMMIT 其中,COMMIT是推送到远程存储库的最新提交。如果确实要删除提交,则需要从键值存储中删除对象 这可以通过在添加任何提交之前先将分支重置为提交来完成 git reset --soft <COMM

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

如何删除所有尚未推送到远程存储库的提交,从而保留对文件的修改

git reset --soft origin/master
该命令将头移回原始分支,但保留工作存储库。

您能试试吗

git log --oneline
git reset --soft COMMIT
其中,
COMMIT
是推送到远程存储库的最新提交。

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

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

git reset --soft <COMMIT-SHA>
或同等产品

完成此操作后,您需要对存储库进行修剪

基本上你需要:

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

实际上没有任何理由这么做,因为最终git会自动这么做。

为了理解,我们需要关于您的问题的更多细节

你想要:

  • 还原已定义的提交集
  • 是否恢复到原始状态(原始/主)
  • 压扁你的承诺

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

    我真的不明白你真正想做什么。你能说得更准确些吗?也许举一个你想完成的事情的例子可以帮助你理解这个问题。为我的英语道歉。我对使用GIT很陌生。我做出了一些承诺。这将提交尚未推送到远程存储库的位置。如何删除所有提交条目?另外,还有一个问题,我的团队成员只有在我按下正确的按钮后才能看到我编辑的模板?@phd,不,我只想删除所有提交,但我想保留对模板的所有修改。重复:我不确定你所说的“模板”是什么意思:Git有一个工作树,其中包含文件,但就Git而言,这些只是文件。其他一些程序可能会将其视为模板(无论对其他程序意味着什么)。值得记住的是,Git还有一个称为索引的东西,它是“提交”(除了下面的答案中的
    Git reset
    )和工作树之间的中间暂存区域。使用
    git reset--soft
    将索引和工作树都单独保留。
    git reflog expire --expire-unreachable=now --all
    git gc --prune=now