如何从git中理解特定分支 - 理解差距

时间:2017-10-04 10:55:12

标签: gitlab

我正在使用gitlab并且在很少的事情上真的很困惑。 :

  1. 当我们通过git checkout -b test创建新分支时。它是创建主副本还是创建我目前在的分支副本?
  2. 例如:我目前在分支开发,然后我写命令git checkout -b test。所以它将是dev的副本,而不是大师?

    1. 拉:当我们写git pull时,它从同名的远程分支拉出当前分支的变化。当更多人在同一个项目上工作时使用它。
    2. 示例:我在分支开发,我写git pull,它更新我的本地作为远程开发。现在我创建了一个新的分支测试,结帐测试分支并执行git pull。它告诉我:当前分支没有跟踪信息。 请指定您要反对的分支。

      因为远程没有测试分支? 如果我想在我的当前分支测试时从dev分支拉出来使用什么命令?它是git pull --rebase dev test吗?

      1. 当我们编写git push时,它会将当前分支推送到远程分支。 例如:我正在进行分支测试,我添加,提交并编写git push。它只是将我的分支测试推送到与测试同名的远程测试。 我们可以推送到特定的分支,如推送测试到开发?
      2. 以下考虑我在分支测试时有什么区别: git push git push origin test 他们都推到远程?

        我的要求是:有分支dev不是主分支,我应该在这个分支上作为起点和终点。就像,新分支应该是这个的副本,我应该推到同一个分支。

2 个答案:

答案 0 :(得分:2)

  

是否创建了master的副本,或者它创建了我当前所在分支的副本?

它创建了一个名为test的新分支,它基于当前分支,无论可能是什么,作为起点。

  

如果我想在当前分支测试时从dev分支拉出来使用什么命令?

我相信你可以将你想要的任何分支拉到你当前的分支。例如。如果你在分支dev并想要拉git pull origin dev ,你可以使用:

git push origin test:dev
  

我们可以将推送测试推送到特定分支吗?

是的,可以在推送时指定本地和远程分支名称,例如

{{1}}

答案 1 :(得分:0)

1-执行git checkout -b test后,它会创建当前分支的副本(在本例中为' dev')。

2- git pull只会在远程和本地之间同步您的更改。如果您上传分支并尝试拉取,则它不起作用,因为您的本地和远程更改将同步。

3-这可以帮到你:Make an existing Git branch track a remote branch?

如果您想使用分支的副本,您应该这样做:

  • git checkout <origin_branch>(主人,开发者,你想要的)
  • git checkout -b <work_branch>(例如,测试。这会创建原始分支的副本)

在此之后,你有一个新的分支&#39;测试&#39;在您的本地存储库中。如果你想在repo上推动这个分支:

  • git add .
  • git commit -m "Pushing new branch test"
  • git --set-upstream origin <your_new_branch>