我犯了很多我不想使用的东西,并且已经使用
git checkout“”
回到我想要的位置。如何删除其他?以及如何摆脱超然的HEAD?我已经推送了所有提交,我想这对于我已经看到的解决方案更加困难。
答案 0 :(得分:0)
您可以推送所有提交的内容, 然后返回到您想要的任何版本, git branch一个新的分支, 最后,您可以将版本推送到新分支。
答案 1 :(得分:0)
当然这是一种可选方式。 完成现在所需的版本后,您可以合并新的分支代码以与其他提交进行母版化。
答案 2 :(得分:0)
如果您按下主分支:
您可以通过添加新的提交(包含更改的反向差异)来恢复更改,即使用git revert <unwanted_commit_number>
如果您按下“正在进行的工作”分支:
git commit --amend
修改最后一次提交,以添加/删除一些更改并强制推送(/!\重写历史记录)git rebase -i <base_commit_number>^
。在交互式窗口中删除不需要的提交并强制推送(/!\重写历史记录)git reset ---hard <commit_number>
返回到先前的状态并强行推送(/!\重写历史记录)退出分离的HEAD状态:
如果您来自git checkout <commit_number>
或git checkout remote/some_branch
之类的结帐帐户,则可以使用git branch <branch_name>
否则,您可能正在进行 merge 或 rebase 。使用git merge --abort
或git rebase --abort
移回到上一个分支
答案 3 :(得分:0)
这里是一个选择:
// tell those impacted not use name_of_old_branch
git checkout -b feature/yeah1 // create a new branch from where you are
git push // push new branch
// tell those impacted to use new branch
// you can stop here and enjoy life
git push -d origin name_of_old_branch // delete remote branch
git branch -d name_of_old_branch // delete local
//enjoy life
请注意,确实删除git中的内容需要做更多的工作。