EGit(EclipseGit插件):混合/合并两个提交

EGit(EclipseGit插件):混合/合并两个提交,eclipse,git,egit,Eclipse,Git,Egit,如何在Egit(Git)中像这样“混合/合并”两个提交 提交1 void test(void) { unsigned int foo, bar; foo = 42; // Foo 42! } 承诺2 void test(void) { unsigned int foo, bar; foo = 10; // Changed var val printf("foo = %u", foo); } 新的混合结果 void test(void) {

如何在Egit(Git)中像这样“混合/合并”两个提交

提交1

void test(void) {
    unsigned int foo, bar;

    foo = 42; // Foo 42!


}
承诺2

 void test(void) {
    unsigned int foo, bar;

    foo = 10; // Changed var val

    printf("foo = %u", foo);
}
新的混合结果

 void test(void) {
    unsigned int foo, bar;

    foo = 42; // Foo 42!

    printf("foo = %u", foo);
}

Commit 2实际上是master(HEAD)。我试着点击提交2(在历史记录中),然后点击“合并”。我得到的信息是:“结果:已经是最新的了。”

根据您在评论中所说的(除了回购协议中的
master
之外,没有其他分支),您的两次提交似乎都在
master
分支上,所以这里不需要进行合并

如果这些提交在不同的分支上,您可以合并它们,您将有一个手动解决的合并冲突。所以我建议这样做,除了不合并


打开你的文件,当你似乎确切地知道文件应该是什么样子时,编辑它直到它令人满意并提交它。合并并不是一个神奇的过程,它将涉及基本相同的问题和行动。

从您在评论中所述(除了回购协议中的
master
之外,没有其他分支),您的两次提交似乎都在
master
分支上,因此这里不需要进行合并

如果这些提交在不同的分支上,您可以合并它们,您将有一个手动解决的合并冲突。所以我建议这样做,除了不合并


打开你的文件,当你似乎确切地知道文件应该是什么样子时,编辑它直到它令人满意并提交它。合并不是一个神奇的过程,它将涉及基本相同的问题和操作。

在git中,合并分支,而不是提交。你能告诉我们你的分支机构的布局吗?(
git branch
用于本地列表)并告诉哪个提交在哪个分支上?$git branch*master(我只有一个“master”)在git中合并分支,而不是提交。你能告诉我们你的分支机构的布局吗?(
git branch
用于本地列表)并告诉哪个提交在哪个分支上?$git branch*master(我只有一个“master”)“看起来您的两个提交都在主分支上”-是的,这是正确的。“如果这些提交在不同的分支上,您可以合并它们,您将有一个手动解决的合并冲突。因此,我建议这样做,但不在合并中。”-那么,在这种情况下,我应该打开另一个分支吗?“打开您的文件,因为您似乎确切知道该文件的外观,编辑它直到满意为止,然后提交。”-您的意思是,我应该用于例如“diff view”吗“然后通过手动编辑来解决它?@TickTacJoe?不,我的意思是手动编辑文件,然后提交更改。如果您更容易从提交之间的差异开始,那么就这样吧,使用
git diff
获取它,然后根据需要手动编辑。纯手动编辑是我试图避免的方法。我认为EGit中可能有一种机制可以使它半自动(比如给我看预览)。因此,我唯一能做的就是为该文件创建一个分支?“似乎您的两个提交都在主分支上”-是的,这是正确的。“如果这些提交在不同的分支上,您可以合并它们,您将有一个合并冲突,您可以手动解决。因此我建议您只执行此操作,但不在合并中。”-那么,在这种情况下,我应该打开另一个分支吗?“打开您的文件,并且您似乎确切地知道该文件的外观,对其进行编辑,直到满意为止,然后提交。”-您的意思是,我应该使用例如“diff view”,然后通过手动编辑来解决它吗?@TickTacJoe?不,我的意思是手动编辑文件,然后提交更改。如果您更容易从提交之间的差异开始,那么就这样吧,使用
git diff
获取它,然后根据需要手动编辑。纯手动编辑是我试图避免的方法。我认为EGit中可能有一种机制可以使它半自动(比如给我看预览)。所以我唯一能做的就是为那个文件做一个分支?