我是我正在从事的项目的唯一开发人员。我正在使用git和Github进行版本控制。
我的工作流程非常简单:
feature_branch
。feature_branch
的工作后,将其推向上游。以前在远程上被合并为master的提交丢失了一行注释。我总是可以遵循上面概述的协议并创建一个新的本地分支,将其推送并通过此更改将其合并到master中。但是,仅单行注释似乎很浪费。
我想到的一种解决方案是执行以下步骤:
git checkout master
git reset HEAD~ // Revert last commit
// Add the missing comment to my code
git add .
git commit -m 'Commit message' // This would be the same commit message as the reverted commit
git push -f origin master
问题:
答案 0 :(得分:1)
push -f
可能会弄乱版本历史记录。如果您知道自己在做什么,那就不会了。只要您的本地存储库不是最新的,您正在执行的命令就不会弄乱历史记录。 (请确保在git fetch origin
之前先做git push -f
)。
话虽如此,即使您确定您不会弄乱历史,您仍然可能不想这样做。您正在创建一个新的提交并替换现有的提交(即使您仅添加一行注释)。如果有人用您的原始提交进行了更新,则可以用一个新的提交来代替他们。
如果您正在与其他人一起工作并且已经推送了您的提交,我强烈建议您不要重写历史记录-而是在原始文档之后使用所需的任何修复程序创建一个新的提交。