首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在实际合并之前检查git-merge的结果

在实际合并之前检查git-merge的结果
EN

Stack Overflow用户
提问于 2013-05-28 00:18:00
回答 3查看 7.1K关注 0票数 20

在实际合并之前,有没有办法检查两个分支之间的合并结果?

当尝试将分支A合并到分支B时,我通常从B签出一个临时分支,将它与分支A合并,然后我会创建一个不同的补丁,或者只是签出到那个临时分支,并在将A合并到B之前检查是否一切正常。

git是否提供了可以完成此任务的命令或功能?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-28 02:32:19

正如Marian Theisen建议的那样,您可以这样做,以便在不提交的情况下进行合并

代码语言:javascript
运行
复制
git merge --no-commit <branchname>

您可以使用以下命令退出合并

代码语言:javascript
运行
复制
git reset --hard

此外,请记住,在Git中改变主意并返回到以前的状态总是很容易的。你可以做一个完整的合并,包括提交,检查完整的结果,如果你改变了主意,你可以

代码语言:javascript
运行
复制
git reset --hard HEAD^

丢弃合并并返回到合并之前的提交。

实际上,在合并解析过程中的任何时候,您都可以这样做

代码语言:javascript
运行
复制
git reset --merge

中止合并并仅丢弃合并更改。

票数 27
EN

Stack Overflow用户

发布于 2013-05-28 02:46:22

我称之为“代码评审工作流”,并且一直在这么做。

代码语言:javascript
运行
复制
git merge --no-commit --no-ff branchname

在没有--no-ff标志的情况下,如果Git可以进行快进,那么它就会这么做。(正如预期的那样,在快进的情况下,没有要创建的合并提交。)

为了方便起见,我在.gitconfig中设置了这个别名:

代码语言:javascript
运行
复制
rev = merge --no-ff --no-commit

这样我就可以简单地做:

代码语言:javascript
运行
复制
git rev branchname

其想法是,所有功能都是在单独的分支中开发的,每个功能都由作者以外的其他人审查和合并。正如其他答案所指出的,您可以使用以下命令中止合并:

代码语言:javascript
运行
复制
git reset --merge

并要求作者做更多的修改。

要查看仅包含合并提交的日志,我使用以下别名:

代码语言:javascript
运行
复制
revlog = log --first-parent

这样,日志就变成了大步骤的时间线:一个特性一个特性,而不是一个提交一个提交。

票数 23
EN

Stack Overflow用户

发布于 2013-05-28 02:43:11

为什么要这么麻烦呢?只需执行合并,测试它,如果您不喜欢它,然后使用git reset --hard HEAD^返回到预合并状态。做一些临时的或中途的合并只会增加你的工作量,不管你决定要不要保留合并。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16777058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档