Jak*_*ski 71
"git merge --squash"(在"git fetch"之后;"git pull"只是fetch + merge,pehaps它也允许--squash选项)可能是你想要的.
- 壁球
生成工作树和索引状态,就好像发生了真正的合并,但实际上没有提交或移动HEAD,也没有记录
$GIT_DIR/MERGE_HEAD导致下一个git commit命令创建合并提交.这允许您 在当前分支之上创建单个提交,其效果与合并另一个分支(或章鱼的情况下更多)相同.
Pat*_*otz 25
您可以使用交互式rebase并"压缩"提交 - 另请参阅Git Ready教程,了解如何通过rebase进行挤压.很抱歉只是转发链接,但这是一个非常全面的教程.哦,这也会压缩你的合并就好了.
正如Brian White所评论的那样,问题git merge --squash在于它没有给你任何可见的链接,因此没有可追溯到你合并的分支(或个别更改).
可见(当被视为图形时git log --graph),一个重新合并的重要分支看起来与你搞砸的实验分支没什么不同,并且很乐意丢弃.两者都挂在那里没有任何东西.我个人想知道某个分支已经合并回来,所以我知道工作已经完成.
对我有用的解决方案是使用带有no-fastforward选项的合并.
git merge --no-ff somebranch -m "my commit message"
Run Code Online (Sandbox Code Playgroud)
这会强制git创建包含所有分支更改的单个提交,您可以自己设置提交消息(如果需要)但最重要的是,它将新提交链接回刚刚合并的分支.这显然表明工作在该分支上已完成,但也允许您追溯以查看合并分支中各个提交的详细信息.
下面是一个示例,其中分别有一个和两个提交的非常简单的分支已合并回主服务器.我随后删除了合并分支上的分支标记,但是仍然可以在合并提交消息上看到分支名称.分支名称应该总结更改,如果您想知道所包含的确切更改,您可以将其追溯到各个提交.对于简单的项目,这种方法似乎很有效.
注意:我不得不手动绘制其中一个连接器,因为它是如此深蓝色,几乎看不到.
| 归档时间: |
|
| 查看次数: |
36806 次 |
| 最近记录: |