我想知道如何删除提交.
通过delete,我的意思是,如果我没有做那个承诺,当我将来做一推,我所做的更改不会推到远程分支.
我读了git help,我认为我应该使用的命令是git reset --hard HEAD.它是否正确?
可能重复:
通过1次提交回滚本地和远程git存储库
如何从远程GIT存储库中删除最后一次提交,例如我在日志中不再看到它?
例如git log,如果给我以下提交历史记录
A->B->C->D[HEAD, ORIGIN]
Run Code Online (Sandbox Code Playgroud)
我怎么去
A->B->C[HEAD,ORIGIN]
Run Code Online (Sandbox Code Playgroud)
谢谢.
考虑到有几个git命令在裸存储库中没有意义(因为裸存储库不使用索引而没有工作目录),
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
不是解除对此类存储库中的最后一次更改的解除.
搜索通过互联网,所有我能找到相关的话题就是这个,在我提出这样做的方式有三种:
1."手动更新裁判(其中涉及水暖)";
2." git push -f来自非裸库";
3." git branch -f this $that".
您认为哪种解决方案更合适,或者有哪些方法可以做到这一点?不幸的是,我发现的关于git bare存储库的文档相当差.
我试图了解它们之间的区别
git push -f
Run Code Online (Sandbox Code Playgroud)
和
git push --force-with-lease
Run Code Online (Sandbox Code Playgroud)
我的猜测是,如果遥控器没有本地分支没有的提交,后者只会推送到遥控器?
如果有更好的方式来表达问题,lmk,但希望它很清楚.
我正在使用Zsh并尝试为项目运行git show以查看我的修订历史记录.如果我做
git show HEAD
Run Code Online (Sandbox Code Playgroud)
它工作正常,显示我上次提交,但以下命令不起作用
[master?5?]:~/project $ git show HEAD^
zsh: no matches found: HEAD^
[master?5?]:~/project $ git show HEAD^^
zsh: no matches found: HEAD^^
Run Code Online (Sandbox Code Playgroud)
但这确实有效
git HEAD~1
Run Code Online (Sandbox Code Playgroud)
我在这里做错了git show HEAD^^吗?
git版本1.7.4.5
如何在github.com托管的git远程上删除提交?我已经在SO上找到了多个答案,展示了如何从分支的提交历史中删除提交.我尝试了这些,但是我的提交仍然清晰可用,因为我可以使用其哈希直接浏览它.
所以为了清楚起见,我的问题不是如何从我的遥控器上所有分支的提交历史中删除提交.我的问题是如何删除提交本身,以便在我之前推送我的分支的git遥控器上没有它的记录.
我试过的解决方案包括:
编辑: Git:从远程分支永久删除一些提交是另一个不适合我的解决方案.这个特定解决方案不起作用的原因是因为它保持"git push - 强制你修改的本地分支到远程.",它不会从远程删除提交,而只是从当前的提交历史中删除它们科.
我已经对存储库进行了一些更改。
我想从存储库中删除最后一次提交,并永久删除历史记录条目。
我怎样才能做到这一点?
git ×7
commit ×2
bash ×1
git-bare ×1
git-commit ×1
git-push ×1
git-rebase ×1
git-reset ×1
github ×1
repository ×1
reset ×1
zsh ×1