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_Merge - Fatal编程技术网

Git 吉特公司;自动将分支与主分支合并

Git 吉特公司;自动将分支与主分支合并,git,merge,Git,Merge,我正在努力使自己更加熟悉git。我是这里唯一一个在工作中从事项目的人,所以我一直只需要对主分支进行更改就可以了,但我需要加强它,并在与分支的工作中更加流畅。所以昨天我创建了一个分支(QF1),切换到它并开始进行一些更改。不过,当我切换回主分支时,我注意到了一些事情:它显然切换了分支,并向我显示了一个以“M”开头的文件列表(顺便说一句,尽管下面的输出表明文件在此时处于暂存状态,但在我执行第一个“git签出主分支”时,它们并没有)。所以在做了一些研究之后,我发现Ms意味着git已经将我在QF1分支中

我正在努力使自己更加熟悉git。我是这里唯一一个在工作中从事项目的人,所以我一直只需要对主分支进行更改就可以了,但我需要加强它,并在与分支的工作中更加流畅。所以昨天我创建了一个分支(QF1),切换到它并开始进行一些更改。不过,当我切换回主分支时,我注意到了一些事情:它显然切换了分支,并向我显示了一个以“M”开头的文件列表(顺便说一句,尽管下面的输出表明文件在此时处于暂存状态,但在我执行第一个“git签出主分支”时,它们并没有)。所以在做了一些研究之后,我发现Ms意味着git已经将我在QF1分支中所做的更改合并到master中。我不希望这种事发生。我对此仍有点模糊,但我正在浏览git-scm.com以更好地理解它。我原以为切换分支会将主副本的内容拉回到我的工作目录中,但我的编辑器没有告诉我发生了这种情况(gvim)

  • 我不希望这种事再次发生。如果工作目录中有更改的文件尚未提交或至少尚未添加到分支索引中,git中是否有一些东西可以告诉它不要切换分支
  • 我需要在这里使用“git reset”将我的主分支指向我为主分支所做的上一次提交吗?我没有在这里做任何承诺,只是做了一个“git添加”

    $git状态
    #关于分支QF1
    #要提交的更改:
    #(使用“git重置磁头…”取消分级)
    #
    #修改:AuthNotifyResponse.cpp
    #修改:AuthNotifyResponse.h
    #修改:DataElementsTransactionResponse.cpp
    #修改:DataElementsTransactionResponse.h
    #修改:TransactionSession.cpp
    #修改:authNotifyResponse.xsd
    #修改:xch.h
    #
    $git签出主机
    M AuthNotifyResponse.cpp
    M AuthNotifyResponse.h
    M DataElementsTransactionResponse.cpp
    M DataElementsTransactionResponse.h
    M TransactionSession.cpp
    M authNotifyResponse.xsd
    mxch.h
    切换到“主”分支
    $git结帐QF1
    M AuthNotifyResponse.cpp
    M AuthNotifyResponse.h
    M DataElementsTransactionResponse.cpp
    M DataElementsTransactionResponse.h
    M TransactionSession.cpp
    M authNotifyResponse.xsd
    mxch.h
    切换到分支“QF1”
    
  • 我真的不想提交对QF1的更改,因为它们与另一个团队正在进行的项目有关,而且还没有完成。如果这是我需要做的,我可以提交它们并在以后修改提交

    也许我可以取消显示master中的更改?我一开始并没有把它们放在master中,只是放在QF1中。

    M并不意味着合并,它意味着修改。发生这种情况的原因是,您对本地文件进行了更改,然后将工作副本切换回主分支,而没有对更改进行任何操作,因此更改仍然存在。为了避免这种情况,您必须在切换分支之前提交您的工作

    您声明希望更好地使用分支。这是在使用分支时必须学习的内容之一。承诺首先是为了你,最后是为了其他人。当您进行提交时,您将获取所有更改并记录它们。如果您不想更改,请放弃它们。但是如果您确实想要更改,请提交它们,即使它们没有完成。只是不要发布分支以供其他人查看

    如果您担心其他人看到大量的检查点提交,您也可以在推之前参与


    本质上,您所做的是创建一个功能分支,而不是在继续其他操作之前完成该功能。这正是特征分支存在的原因。不要抗拒它,使用它。

    我想我真的可以将更改提交到分支,而不将提交推到存储库,或者我可以使用git stash。
    $ git status
    # On branch QF1
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #       modified:   AuthNotifyResponse.cpp
    #       modified:   AuthNotifyResponse.h
    #       modified:   DataElementsTransactionResponse.cpp
    #       modified:   DataElementsTransactionResponse.h
    #       modified:   TransactionSession.cpp
    #       modified:   authNotifyResponse.xsd
    #       modified:   xch.h
    #
    
    $ git checkout master
    M       AuthNotifyResponse.cpp
    M       AuthNotifyResponse.h
    M       DataElementsTransactionResponse.cpp
    M       DataElementsTransactionResponse.h
    M       TransactionSession.cpp
    M       authNotifyResponse.xsd
    M       xch.h
    Switched to branch 'master'
    
    $ git checkout QF1
    M       AuthNotifyResponse.cpp
    M       AuthNotifyResponse.h
    M       DataElementsTransactionResponse.cpp
    M       DataElementsTransactionResponse.h
    M       TransactionSession.cpp
    M       authNotifyResponse.xsd
    M       xch.h
    Switched to branch 'QF1'