Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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
Git 不合并而交换更新的分支_Git_Git Checkout - Fatal编程技术网

Git 不合并而交换更新的分支

Git 不合并而交换更新的分支,git,git-checkout,Git,Git Checkout,我有两个工作分支:master和features。我做了git签出功能,并在功能分支上工作。我喜欢这些变化,但没有做出任何承诺 然后我回到我的主分支(git checkout master),在执行git status时,我在功能分支的暂存区域中所做的所有更改也都在我的主分支中。这一点在我从master分支运行我的应用程序时得到了进一步的证明,并且发生了更改 问题是分支机构如何在没有合并的情况下交换信息?首先使用分支的目的是,如果我搞砸了,我可以简单地删除分支,不用担心。所发生的情况是,我在功能

我有两个工作分支:
master
features
。我做了
git签出功能
,并在
功能
分支上工作。我喜欢这些变化,但没有做出任何承诺

然后我回到我的主分支(
git checkout master
),在执行
git status
时,我在
功能
分支的暂存区域中所做的所有更改也都在我的
主分支中。这一点在我从
master
分支运行我的应用程序时得到了进一步的证明,并且发生了更改


问题是分支机构如何在没有合并的情况下交换信息?首先使用分支的目的是,如果我搞砸了,我可以简单地删除分支,不用担心。所发生的情况是,我在
功能
分支上所做的更改自动转移到
分支,而无需我手动这样做

如果您在暂存区域中进行了未限制的更改(在分支上时
features
)涉及未在
features
master
分支之间修改的文件(甚至可能是文件的一部分-我不确定)(即,这两个分支中的这些文件相同),
git checkout
只是不涉及更改,允许您更改分支(否则,git可能会抱怨)

您现在要做的是:

  • git签出功能
  • git提交
  • 从文档中:

    git checkout <branch>
    
    To prepare for working on <branch>, switch to it by updating the index and the files 
    in the working tree, and by pointing HEAD at the branch. Local modifications to the 
    files in the working tree are kept, so that they can be committed to the <branch>.
    
    git签出
    若要准备处理,请通过更新索引和文件切换到它
    在工作树中,通过将头部指向分支。对
    将保留工作树中的文件,以便将其提交到。
    
    你的本地修改被保留,并转移到新的分支,因为不需要合并

    如果您的更改发生冲突并需要合并,则不可能进行合并。在这种情况下,您会收到一条消息:

    error: Your local changes to the following files would be overwritten by checkout:
            <your files here>
    Please, commit your changes or stash them before you can switch branches.
    Aborting
    
    错误:签出将覆盖您对以下文件的本地更改:
    请在切换分支之前提交或隐藏更改。
    流产
    
    如果我不想保留本地更改怎么办?首先使用分支的意义是,如果我搞砸了,我可以简单地删除分支,不用担心。现在发生的事情是,我对
    功能
    分支所做的更改自动转移到
    分支,而无需我手动执行ng所以。@MiddleZ如果不提交它们,您就不会将它们放在分支上,您只是将它们放在“工作树”中。要放弃它们,您可以(1)将它们提交到分支并放弃分支,或者(2)git checkout
    或(3)
    git reset--hard
    它们。git非常努力地工作,不破坏您的工作,正如本答案的第二部分所暗示的。阅读以更好地理解git的工作流程。可能重复