Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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_Svn_Github_Version Control_Merge - Fatal编程技术网

从源代码合并分支的git过程

从源代码合并分支的git过程,git,svn,github,version-control,merge,Git,Svn,Github,Version Control,Merge,我是Github存储库的成员,其中有三个分支,master、dev和deployment 我使用以下工具在本地计算机上克隆了存储库: git克隆git@github.com:COMPANY/repo.git 我需要做的是将开发分支中推送的更改合并到主分支,然后将主分支合并到部署分支。我的问题是,我只能在本地克隆上看到主分支 我尝试做需要做的事情的方式如下: 我在本地存储库上创建了dev分支和git checkout-b dev和git checkout-b部署分支 我使用:git-pull-or

我是Github存储库的成员,其中有三个分支,
master
dev
deployment

我使用以下工具在本地计算机上克隆了存储库:
git克隆git@github.com:COMPANY/repo.git

我需要做的是将
开发分支
中推送的更改合并到
主分支
,然后将
主分支
合并到
部署分支
。我的问题是,我只能在本地克隆上看到
主分支

我尝试做需要做的事情的方式如下:

  • 我在本地存储库上创建了
    dev分支
    git checkout-b dev
    git checkout-b部署分支

  • 我使用:
    git-pull-origin-dev
    git-pull-origin-deployment
    从源站拉取
    dev分支和
    deployment分支

  • 我切换到
    主分支(git checkout master)
    并将
    开发分支
    合并到它中:
    git merge dev

  • 然后我切换到
    部署分支(git checkout deployment)
    ,并将
    主分支
    合并到它中:
    git merge master

  • 这是正确的程序还是有更好的方法


    如何将两个合并分支的所有更改推回到Github上的源位置?

    我担心您使用了错误的步骤顺序。您不应该使用
    git checkout-b dev
    创建
    dev
    deployment
    分支。这将创建从当前分支分支分支出来的本地分支-这可能不是您想要的

    干净的方式应该是这样的:

    # Clone the repo
    git clone git@github.com:COMPANY/repo.git
    
    # Fetch everything, just to be sure
    git fetch --all
    
    # Take a look at the available branches
    # This should list the remote dev and deployment branches in the form 'remotes/origin/dev'
    git branch -a
    
    # Now simply check out the dev branch without creating a new branch
    git checkout dev
    

    Git知道,如果有一个名为
    dev
    的远程分支,而您没有匹配的本地分支,那么当您执行
    Git签出dev
    时,它应该使用远程分支(没有
    -b
    开关!)。它将从远程
    dev
    分支自动创建一个新的本地
    dev
    分支。

    看看这个关于如何获取远程分支的答案:如果您在本地创建了一个与远程分支同名的分支,可能会出现问题——是这样吗?如果是这样,您可能想修改远程分支(显然您看不到)。