在我的本地机器上使用git时,我通常会投入很多。为此,我使用主题分支。然后我将这样一个主题分支合并到一个名为develop的分支中,该分支将被推送到远程仓库。
我总是与--no-ff合并,所以他们总是提交我的整个主题。
现在我只想用指定的描述推送这个提交,我在整个分支中做了什么。
我更喜欢这个,因为您可以查看服务器上的提交历史记录,直接查看发生的情况,而不需要阅读每一次提交。
对于我的本地工作,如果我想重置我的分支或类似的东西,我将拥有完整的历史记录。
我不知道他们是否可以通过git这样做,但这对我来说非常有用,所以我试试问你。
答案 0 :(得分:1)
根据您的描述,看起来您只需要推送您的开发分支,而不是推动您的主题分支。
devel
分支将包含一个提交(在与主题分支合并时创建),该提交总结了已完成的工作。git merge --squash
对于生成单个提交非常有用。topic
分支仍然未发布(未推送)并包含所有详细历史记录
例如,您可以通过hook on the remote side强制执行此操作,以拒绝任何您不希望被推送到(远程)仓库的分支。在评论中提及Daniel Yankowsky,git merge --squash
有效,但“失去了变化血统”。
这就是为什么你可以设置2'开发'分支。
t--t--t--t (topic)
/
x--x (devel)
\
p--p (devel_pub)
devel
”分支)devel_pub
'),您执行merge --squash
)(topic) | x--x--t--t--t--t--d (devel) \ p--p--T (devel_pub, with T being "git merge --squash topic")
答案 1 :(得分:1)
我不知道有什么方法可以做你正在描述的内容,我怀疑它是在反对git的设计。听起来你想总结一整套提交。如果与--no-commit选项合并,并编辑合并提交消息以汇总分支的更改,该怎么办?
答案 2 :(得分:0)
听起来您可能希望在推送之前使用git rebase
重写本地历史记录。
为什么你不想在偏远的一面呢?它似乎并不重要。只需将远程端设置为仅显示一个具有合并提交的分支。