在本地,测试和开发存储库不同步导致的一些冗长的事件序列中,我最终做了一些现在需要删除的提交。
特别是最新的提交,称之为A是需要删除的提交。在它之前的提交,称之为B是HEAD所在的那个。
当我运行git status
时,我得到了
目前不在任何分支上。没有提交(工作目录清理)
如何摆脱提交A?另外,将自动删除它让Git意识到它在主分支上?
答案 0 :(得分:1)
如果要在命令
下删除任何提交执行第1步:git revert commit_id
步骤:2 git push origin branch_name
答案 1 :(得分:1)
第1步:您需要列出您拥有的所有git分支
git branch
第2步:您需要从列表中签出特定分支,并确保只有在您要删除特定提交的位置才能结帐到该分支
git checkout branch_name
第3步:现在您需要列出该分支的所有提交
git log
setp 4:现在您需要从列表中选择要删除的提交ID
步骤5:现在您需要执行命令来删除特定提交。
以下branch_name
与您目前的相同
git revert commit_id
git push origin branch_name
步骤6:现在,如果执行git log
,则会发现有新的提交,并且在此提交代码中是您要执行的删除操作。
现在,如果您转到代码库,则会删除不需要的代码
我希望它会帮助你。
感谢。
答案 2 :(得分:1)
git branch -f master
git checkout master
git reset --hard HEAD~1
请参阅How to revert Git repository to a previous commit?
另外:如果head在上一次提交中,那么您的主分支不会被检出。你的头是分开的。
D <- master
C <- head
B
A
如果你已经签出了C,你只需将master强制转为C.
如果您已签出D,则只需将master恢复为C.