如何从分支历史记录中删除提交?我应该使用git reset-hard HEAD吗?
当前回答
git reset—软Id提交允许您删除提交,但不删除当前文件。然后使用git push-f源名称分支
其他回答
如果您刚刚弄糟了上一次提交(错误的消息,忘记添加一些更改),并想在将其推送到公共回购之前修复它,为什么不使用:
git commit --amend -m "New message here"
如果您有新暂存的更改,它们将与上一次提交(您正在尝试删除)合并,并将替换该提交。
当然,如果你在推送之后修改了一个承诺,你就是在改写历史,所以如果你这样做,一定要理解其中的含义。
如果您希望使用上一次提交的消息,也可以传递“--no edit”选项而不是“-m”。
文件:http://git-scm.com/docs/git-commit.html
如果要删除当前正在进行但不想删除数据的提交-
git reset --soft HEAD~1
如果要删除当前正在进行的提交,并希望删除相关数据-
git reset --hard HEAD~1
PS:这些命令只会删除本地提交。
git rebase -i HEAD~2
这里“2”是您要重新设置基准的提交次数。
'git rebase -i HEAD`
如果您想重新设置所有提交的基础。
然后,您可以选择其中一个选项。
p、 pick=使用提交
r, reword = use commit, but edit the commit message
e, edit = use commit, but stop for amending
s, squash = use commit, but meld into previous commit
f, fixup = like "squash", but discard this commit's log message
x, exec = run command (the rest of the line) using shell
d, drop = remove commit
这些线路可以重新订购;它们是从上到下执行的。如果您删除此处的一行,则承诺将丢失。但是,如果您删除了所有内容,则重新启动将被中止。注意,空提交被注释掉
您只需使用选项“d”或删除包含您提交的行即可删除该提交。
git重置--硬HEAD~1你现在将处于前一个位置。拉动树枝。推送新代码。提交将从git中删除
这里有30多个回答者,我将简单介绍适合我的答案
删除.git文件夹可能会导致git存储库出现问题。如果您希望删除所有提交历史记录,但将代码保持在当前状态,则可以按照以下方式进行操作:
结账
git checkout --orphan latest_branch
添加所有文件
git add -A
提交更改
git commit -m "commit message"
删除分支
git branch -D master
将当前分支重命名为主分支
git branch -m master
最后,强制更新存储库
git push -f origin master
PS:这不会保留您以前的提交历史。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别