我有一个Git分支develop
,并且在该分支上,有许多提交只是调试语句,不应该在生产中。同时,我想从develop
分支创建一个pull请求到我们的feature
分支,但我不想包含调试提交。
似乎我做这个的两个选项是(1)创建一个develop-copy
分支,从该分支中删除相应的提交,并从develop-copy
或(2)删除PR来自develop
的适当提交,制作公关,然后将提交重新提交回develop
。这些都是一种痛苦。
除了这些提交之外,有没有办法只推送一组提交或者有两个分支是彼此的副本?感谢。
答案 0 :(得分:0)
除了这些提交之外,有没有办法只推送一组提交或者有两个分支是彼此的副本?
没有。您只能推送对提交的引用,并且提交由其内容及其父级定义。
老实说,不应该在单独的提交中调试调试语句,而应该弄清楚如何将它们保留下来,但要将它们优化出来用于生产。
答案 1 :(得分:0)
如果您是唯一一个在该分支上工作的人,则另一个选择是rebase it interactively。
git checkout develop
git rebase -i
# reorder commits
git push --force
然后,您可以重新排序提交,将调试的提交放在最后
然后你可以从最后一次非调试提交开始创建一个新分支,推送它并从那个新分支中创建你的PR。
答案 2 :(得分:0)
只需执行交互式rebase git rebase master -i
,然后从pull请求中删除或fixup
您想要的随机提交。
pick fdfb01e Real commit
# pick a382ce3 Debugging some random issue
# pick 02ff8dc Remove debugging code
fixup ddf5e91 Add missing semicolon
pick 73c7e11 Real commit