这是我的Git状态。
由于一些奇怪的原因,master
和task-e
分支被打破。他们现在无法建立
只有6f374ed94ad7f04b1f7a2ca2019374bb7785d9e6
提交才有效。
我想将此提交作为master
分支的最新提交。我该怎么办?
答案 0 :(得分:1)
您的问题并不完全清楚,但我认为您想要的是添加一个新提交,其源代码与旧提交6f374ed9
完全相同。 (换句话说,您希望避免重写历史记录,因为显然master
和task-e
已被推送到GitHub。)这需要在git中执行几个步骤,这在this question中有所描述。总而言之,首先要确保没有未提交的更改(即git status
是干净的)。然后你需要这样做:
# Switch to the branch you want to add the commit to:
git checkout master
# (... you can merge the result to the other branch later)
# Move the master branch back to the earlier, good commit, forcing the
# working tree and the index to match:
git reset --hard 6f374ed
# Use git reset --soft to point the master branch back to where it was
# originally, but leave the working tree and index as they were at 6f374ed
git reset --soft HEAD@{1}
# Commit the result:
git commit -m "Reverting state back to 6f374ed9"
然后,要更新task-e
,您可以执行以下操作:
git checkout task-e
git merge master
答案 1 :(得分:0)
您可以使用git reset
,但它会重写已公开推送的历史记录,因此不建议这样做。我使用git revert
:它允许你恢复提交,即。它创建一个与提交相反的提交。这样,您可以取消提交并返回到您想要的状态,而无需重写历史记录。