Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IntelliJ Git重基错误_Git_Intellij Idea - Fatal编程技术网

IntelliJ Git重基错误

IntelliJ Git重基错误,git,intellij-idea,Git,Intellij Idea,我有以下情况: 分支主机 主题分支x关闭master 我已经向master提交了一份承诺,我希望在x中也可以使用此承诺。据我所知,我必须在master上重新设置x的基础 我就是这么做的: 签出x分支机构:VCS->Git->branchs->Local branchs->x->Checkout 转到VCS->Git->Rebase->选择主控进入 单击“重设基础” 此时出现了一个错误,告诉我检查VC控制台以了解详细信息。这是控制台显示的内容: 23:59:22.839: git rebase -

我有以下情况:

  • 分支
    主机
  • 主题分支
    x
    关闭
    master
  • 我已经向
    master
    提交了一份承诺,我希望在
    x
    中也可以使用此承诺。据我所知,我必须在
    master
    上重新设置
    x
    的基础
  • 我就是这么做的:

  • 签出
    x
    分支机构:
    VCS->Git->branchs->Local branchs->x->Checkout
  • 转到
    VCS->Git->Rebase->选择主控进入
  • 单击“重设基础”
  • 此时出现了一个错误,告诉我检查VC控制台以了解详细信息。这是控制台显示的内容:

    23:59:22.839: git rebase -i -v -m refs/heads/master
    Cannot rebase: You have unstaged changes.
    Additionally, your index contains uncommitted changes.
    Please commit or stash them.
    

    在任何地方的任何分支中都没有挂起的更改。所有内容都已提交(如果有任何区别,则推送到Bitbucket)。我这样做对吗?如何在
    master
    上重新设置分支的基础?

    发生错误的原因是您有未保存的更改,将其隐藏或提交将允许您执行rebase命令

    但是,我认为你在这里做的是完全错误的。

    首先,您不应该在主分支上进行提交,您应该在主题分支上进行提交,并将其与主分支合并/重新设置基础

    第二,根据你们想做的,这是在x上对母版进行重定基调,而不是在母版上对x进行重定基调

    所以你应该

    1, checkout master  --> git checkout master
    2, rebase on x      --> git rebase x
    3, do some merge job
    4, continue the rebase --> git rebase --continue
    
    顺便说一句,你应该阅读,它是免费的,是一本非常好的书

    编辑:

    在阅读了你发布的url后,我想我在这里有一些误解

    假设你有这个:

    $ git log --oneline --graph --decorate --all
    * c85d8bd (HEAD, master) dev on master again
    | * 431a9c6 (topic) dev on topic
    |/
    * 4ad2cc4 dev on master
    * d576e88 init
    
    在这里,我们将尝试两个rebase命令:

    1,在主题上重新设置master的基础

    git checkout master
    git rebase topic
    
    这将使历史看起来像这样:

    $ git log --oneline --graph --decorate --all
    * 03021da (HEAD, master) dev on master again
    * 431a9c6 (topic) dev on topic
    * 4ad2cc4 dev on master
    * d576e88 init
    
    2,在主控台上重新设置主题的基础

    git checkout topic
    git rebase master
    
    您的历史将类似于:

    $ git log --oneline --graph --decorate --all
    * adc93f1 (HEAD, topic) dev on topic
    * c85d8bd (master) dev on master again
    * 4ad2cc4 dev on master
    * d576e88 init
    
    这都是关于你想要谁在谁身上:)

    我以这种方式记住了这一点:

    merge with <branch>
    rebase on <branch>
    

    您可以在的第3.6章中找到这些详细信息。发生错误的原因是您有未保存的更改,将其隐藏或提交将允许您执行rebase命令

    但是,我认为你在这里做的是完全错误的。

    首先,您不应该在主分支上进行提交,您应该在主题分支上进行提交,并将其与主分支合并/重新设置基础

    第二,根据你们想做的,这是在x上对母版进行重定基调,而不是在母版上对x进行重定基调

    所以你应该

    1, checkout master  --> git checkout master
    2, rebase on x      --> git rebase x
    3, do some merge job
    4, continue the rebase --> git rebase --continue
    
    顺便说一句,你应该阅读,它是免费的,是一本非常好的书

    编辑:

    在阅读了你发布的url后,我想我在这里有一些误解

    假设你有这个:

    $ git log --oneline --graph --decorate --all
    * c85d8bd (HEAD, master) dev on master again
    | * 431a9c6 (topic) dev on topic
    |/
    * 4ad2cc4 dev on master
    * d576e88 init
    
    在这里,我们将尝试两个rebase命令:

    1,在主题上重新设置master的基础

    git checkout master
    git rebase topic
    
    这将使历史看起来像这样:

    $ git log --oneline --graph --decorate --all
    * 03021da (HEAD, master) dev on master again
    * 431a9c6 (topic) dev on topic
    * 4ad2cc4 dev on master
    * d576e88 init
    
    2,在主控台上重新设置主题的基础

    git checkout topic
    git rebase master
    
    您的历史将类似于:

    $ git log --oneline --graph --decorate --all
    * adc93f1 (HEAD, topic) dev on topic
    * c85d8bd (master) dev on master again
    * 4ad2cc4 dev on master
    * d576e88 init
    
    这都是关于你想要谁在谁身上:)

    我以这种方式记住了这一点:

    merge with <branch>
    rebase on <branch>
    

    您可以在的第3.6章中找到这些详细信息,但我没有任何未老化的更改。每个分支的更改列表都为空。你确定你的步骤能满足我的要求吗?我想知道这里描述的内容:-它说在那里使用
    git-rebase-master
    。知道我为什么会在没有变化的情况下显示错误吗?谢谢,但我知道这些。我仍然会在没有可提交内容的情况下收到该错误,知道原因吗?如果您确定没有未提交的更改,也许您可以尝试使用
    git reset--hard HEAD
    命令。我想我不确定。IDE中没有显示任何文件,但在命令行中运行
    git status
    时,显然有一些已删除的文件。我想不要太依赖IDE,是吗?该命令修复了它,我能够重新设置基址,谢谢你的帮助。但我没有任何未老化的更改。每个分支的更改列表都为空。你确定你的步骤能满足我的要求吗?我想知道这里描述的内容:-它说在那里使用
    git-rebase-master
    。知道我为什么会在没有变化的情况下显示错误吗?谢谢,但我知道这些。我仍然会在没有可提交内容的情况下收到该错误,知道原因吗?如果您确定没有未提交的更改,也许您可以尝试使用
    git reset--hard HEAD
    命令。我想我不确定。IDE中没有显示任何文件,但在命令行中运行
    git status
    时,显然有一些已删除的文件。我想不要太依赖IDE,是吗?那个命令修复了它,我能够重新设置基址,谢谢你的帮助。