我可以在 Git 中决定推送最后一次提交吗?

问题描述 投票:0回答:2

我的工作流程如下: 在开发过程中,我经常(本地)提交,无论我是否达到了任何里程碑,只是为了备份并在开发朝着错误的方向发展时能够恢复,或者,例如,在一天结束时的所有时间。 但我不想在以后看到这些“技术”提交,所以我经常使用修改选项。 显然,有时(通常是在达到里程碑时)我会使用 git push。

问题是我倾向于尝试修改已经拉取的提交,这会产生冲突。

问题:

  • 有什么东西可以保护我修改已经推送的提交吗?
  • 这个习惯不好吗,我应该做点别的,比如在服务器端加入“技术”提交?
git push commit git-amend
2个回答
0
投票

在本地检查临时的东西,甚至是未完成的、非工作的东西,稍后清理这些东西不仅可以,但我会声称如果你在某种程度上没有这样做,你做错了。

现在我建议在您的提交消息上采用命名约定,以明确区分已完成和未完成的提交,例如 修复前和修复后提交消息带有

====
。如果您已经准备就绪,那么管理推送或不推送的内容就会变得非常简单。

您还可以将其与分支命名约定结合使用,例如

my_feature
包含已完成的提交,然后是另一个名为
wip/my_feature
my_feature.playground
的分支,例如包含未完成的提交,然后您在
my_feature
之上变基,并最终变为“空”1,因为您将未完成的提交转换为已完成的提交2.


1 或者分支最终只包含添加的调试打印提交或类似的东西,这些显然只是临时的东西。

2 那些完成的提交然后被合并/挑选到

my_feature
中,并在重新设置基础时从另一个分支“消失”。


0
投票

您已经在本地完成了初稿工作,现在进行下一步:学习使用 Git 修改您的草稿以便发布。

不要修改。只需按顺序提交即可开始,任何时候你都可以挤压和推送:

hack
git commit
hack some more
git commit
hackity hack
git commit
hack
git commit
# . . .

什么时候推送:

git reset --soft @{u}
git commit    # this will be the only commit you push

你就完成了。或者

git reset @{u}
并做一系列
git add -p
/
git commit
s 以系列呈现作品,作为可消化的块,或者在需要通过编辑获得更多工业性时使用
git rebase --interactive

© www.soinside.com 2019 - 2024. All rights reserved.