我有3个提交(我目前只在我的本地机器上使用GIT)。删除本地提交?
如果我删除提交2,是否会影响提交3中的任何更改,因为提交3是从提交2开始的后续操作?
我打算用:
git reset --hard <commit 2 id here>
我有3个提交(我目前只在我的本地机器上使用GIT)。删除本地提交?
如果我删除提交2,是否会影响提交3中的任何更改,因为提交3是从提交2开始的后续操作?
我打算用:
git reset --hard <commit 2 id here>
命令
git reset --hard <commit 2 id here>
不会删除提交2.这将只是把你当前分支上提交2.如果没有其他分支指向提交3你可能垃圾回收过程中失去它。
你需要的是互动变基:
git rebase -i HEAD~2
然后你会得到编辑开始犯2和3提交上市。使用提交2删除该行,保存并退出编辑器。这将删除提交2,并保留提交3。提交3的父代将是提交1.所有与提交2一起引入的更改将完成。
提及git rebase -i +1 – Tim
提交#3将与新的母公司更新提交你的情况提交#1,它会得到一个新的SHA1。如果您提交#2和#3的更改是独立的,则不应有任何问题/冲突。
你的建议只会删除你的第三次提交,并保留提交一和二。这是您可以使用git rebase
的其中一种情况。
的语法是这样的:
git rebase --onto <branch name>~<first commit number to remove> \
<branch name>~<first commit to be kept> <branch name>
我建议你尝试一下你的reop的副本第一。
取决于您如何“删除”提交2.您计划执行的命令是什么? – Shahbaz
更新的问题与计划命令。但是,如果存在这样的命令,我宁愿采用更安全的方式? – oshirowanen
如果你'git reset --hard',那么你不会删除一个提交,你只需要回到一个较旧的提交(基本上失去了所有的东西)。你可以尝试'git revert'来取消一个提交,或者'git rebase',它将这个提交重新应用到前一个提交,从而有效地消除了之间的提交。我个人会选择'git revert'。 – Shahbaz