如何创建远程Git分支?

How do you create a remote Git branch?

我创建了一个本地分支,我想"推动"上游。关于如何跟踪新创建的远程分支的堆栈溢出,这里有一个类似的问题。

但是,我的工作流程略有不同。首先,我想创建一个本地分支,只有当我满意并且想共享我的分支时,我才会将它推到上游。

  • 我该怎么做?(我的谷歌搜索似乎没有发现任何问题)。
  • 我如何告诉我的同事从上游存储库中提取它?

使用git 2.0进行更新,我在下面写了一个更简单的答案:https://stackoverflow.com/a/27185855/109305


首先,在本地创建分支:

1
git checkout -b <branch-name> # Create a new branch and check it out

将远程分支推送到远程服务器时,会自动创建远程分支。所以当你准备好了,你可以做:

1
git push <remote-name> <branch-name>

其中通常是origin,git给您克隆的远程设备起的名称。然后,您的同事只需拉动该分支,它就会自动在本地创建。

但请注意,正式格式为:

1
git push <remote-name> <local-branch-name>:<remote-branch-name>

但如果省略一个,则假定两个分支名称相同。说了这句话,要小心,不要犯只指定:的严重错误(用冒号),否则远程分支将被删除!

为了让后续的git pull知道该做什么,您可能会使用:

1
git push --set-upstream <remote-name> <local-branch-name>

如下文所述,--set-upstream期权设立上游分支机构:

For every branch that is up to date or
successfully pushed, add upstream
(tracking) reference, used by
argument-less git-pull(1) and other
commands.


首先,必须在本地创建分支

1
git checkout -b your_branch

之后,您可以在分支的本地工作,当您准备好共享分支时,将其推送。下一个命令将分支推送到远程存储库源站并跟踪它

1
git push -u origin your_branch

队友可以通过以下方式到达你的分支:

1
2
git fetch
git checkout origin/your_branch

您可以在分支中继续工作,并在不向git push传递参数的情况下随时进行推送(无参数git push会将主服务器推送到远程主服务器,您的本地分支推送到远程分支服务器,等等…)

1
git push

队友可以通过做承诺来推动你的分支,然后明确地推动

1
2
3
4
5
... work ...
git commit
... work ...
git commit
git push origin HEAD:refs/heads/your_branch

或者跟踪分支以避免git push的参数

1
2
3
4
5
6
git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push


简单Git 2.0+解决方案:

从Git2.0开始,行为变得更简单:

您可以使用push.default = current配置git,使生活更轻松:

我加了这个,所以现在我可以把一个新的分支

1
$ git push -u

-u将跟踪同名的远程分支。现在使用这个配置,您将自动猜测对git push的远程引用。从git.config文档:

push.default

Defines the action git push should take if no refspec is explicitly given.

push.default = current - push the current branch to update a branch with the
same name on the receiving end. Works in both central and non-central workflows.

对我来说,这是一个很好的简化我的日常Git工作流程。配置设置负责"常规"用例,在该用例中,您在本地添加一个分支,并希望远程创建它。另外,我也可以通过执行git co remote_branch_name标记(而不是使用--set-upstream-to标记)从远程创建本地分支。

我知道这个问题和被接受的答案是相当古老的,但是行为已经改变了,所以现在存在配置选项来简化您的工作流程。

要添加到全局Git配置,请在命令行上运行:

1
$ git config --global push.default current


如前面的答案所述,

1
git push <remote-name> <local-branch-name>:<remote-branch-name>

足以推动当地分支机构的发展。

您的同事可以使用以下命令拉取所有远程分支(包括新分支):

1
git remote update

然后,要对分支进行更改,通常的流程是:

1
git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>

基于当前分支在本地创建新分支:

1
git checkout -b newbranch

像往常一样提交任何更改。然后向上游推:

1
git push -u origin HEAD

这是将当前分支推送到origin上的同名分支并跟踪它的快捷方式,这样以后就不需要指定origin HEAD


如果您只想在没有本地分支的情况下创建远程分支,可以这样做:

1
git push origin HEAD:refs/heads/foo

它把你的头推到遥控器上不存在的分支foo上。


如果要从当前分支创建分支

1
git checkout -b {your_local_branch_name}

如果您想从远程分支中获得分支,可以尝试

1
git checkout -b {your_local_branch_name} origin/<remote_branch_name>

如果完成了更改,则可以添加文件。

1
git add -A or git add <each_file_names>

然后在本地执行提交

1
git commit -m 'your commit message'

当你想推动远程回购

1
git push -u origin <your_local_branch_name>

所有的一切都将

1
git checkout -b bug_fixes

或如果要从远程分支创建分支,请说开发

git checkout-b bug修复源站/开发

您可以通过以下方式将分支推送到远程回购

1
git push -u origin **bug_fixes**

任何时候你想更新你的分支从任何其他分支说,主人。

git pull origin master


最简单的解决方案…Drumm Roll…Git版本2.10.1(Apple Git-78)

1
2
3
4
5
1) git checkout -b localBranchNameThatDoesNotExistInRemote

2) Do your changes, and do a git commit

3) git push origin localBranchNameThatDoesNotExistInRemote --force

注意-您刚刚在本地环境中创建的分支,以及您尝试推送的远程不存在的分支,必须具有相同的名称。


首先在本地创建分支:

1
git checkout -b your_branch

然后远程创建分支:

1
git push --set-upstream origin your_branch

注意:这适用于最新版本的Git:

1
2
$ git --version
git version 2.3.0

干杯!


Create the branch on your local machine and switch in this branch :

1
$ git checkout -b [name_of_your_new_branch]

推动Github上的分支:

1
$ git push origin [name_of_your_new_branch]

当你想在你的分支中提交一些东西时,一定要在你的分支中。

您可以看到通过以下方式创建的所有分支:

1
$ git branch

将显示:

1
2
3
* approval_messages
  master
  master_clean

为分支添加新的远程:

1
$ git remote add [name_of_your_remote]

将更改从提交推送到分支中:

1
$ git push origin [name_of_your_remote]

更新官方存储库中的原始分支后,更新您的分支:

1
$ git fetch [name_of_your_remote]

然后,您需要应用合并更改,如果您的分支是从开发派生的,那么您需要执行以下操作:

1
$ git merge [name_of_your_remote]/develop

删除本地文件系统上的分支:

1
$ git branch -d [name_of_your_new_branch]

要强制删除文件系统上的本地分支,请执行以下操作:

1
$ git branch -d [name_of_your_new_branch]

删除Github上的分支:

1
$ git push origin :[name_of_your_new_branch]

这里是所有信息

其他现有项目


从现有分支创建本地分支(可以是主分支/开发分支/任何其他分支)。

git checkout -b branch_name

把这个推到遥控器上

git push -u remote_name local_branch_name:remote_branch_name

在这里,

  • -U:设置上游分支
  • 远程名称:git在创建存储库时,默认将名称设置为"origin"。但是,可以将其更改为其他任意名称。
  • 本地分支名称:要推送的本地分支的名称。
  • 远程分支名称:是要在远程上创建的远程分支的名称。
  • 如果删除本地和远程分支名称,它将具有以下格式

    git push -u remote_name branch_name

    这会将本地分支推送到远程,并使用与本地分支名称相同的名称。本地分支也将跟踪远程分支。


    我知道这个问题得到了很好的回答,但是我只想列出我创建一个新分支"myNewbranch"和推到远程(在我的例子中是"origin")并设置跟踪的步骤。将此视为"tl;dr"版本:)

    1
    2
    3
    4
    5
    6
    # create new branch and checkout that branch
    git checkout -b myNewBranch
    # now push branch to remote
    git push origin myNewBranch
    # set up the new branch to track remote branch from origin
    git branch --set-upstream-to=origin/myNewBranch myNewBranch

    现在有了Git,当你在正确的分支中时,你可以只输入

    git push --set-upstream origin

    和Git为您创建源分支。


    只是想补充一下:

    1
    git checkout -b {branchName}

    创建一个新分支,它还签出该分支/使其成为当前分支。如果出于某种原因,您所要做的只是将某个分支断开,而不是将其设为当前分支,那么您将使用以下命令:

    1
    git branch {branchName}

    在第一个命令中,"checkout"使所说的分支成为您当前的分支,"-b"意味着:这个分支还不存在,所以请为我创建它。


    如果新创建的分支不是从同一回购中生成的,即如果您没有使用git checkout -b new_branch创建新分支,那么这将不起作用。

    例如,我在本地克隆了两个不同的存储库,我必须将repo2/branch1复制到repo1/,然后再将其推送。

    此链接帮助我将本地分支(从另一个repo克隆)推送到远程repo:


    如何通过源树

    1
    2
    3
    4
    5
     1: Open SourceTree, click on Repository -> Checkout
     2 :Click on Create New Branch
     3: Select branch where from you want to get code for new branch
     4: Give your branch name
     5: Push the branch  (by click on Push button)


    以下是在Eclipse中通过eGit执行此操作的方法。

    1)转到"Git存储库探索"视图,并解释要创建分支的Git项目。在brances->local.选择要为其创建分支的分支(在我的示例中,我选择了master..如果愿意,您可以选择其他分支机构)。然后右键单击并单击创建分支选项。然后选择"签出此项目"选项,然后单击"完成"按钮。

    2)现在从项目资源管理器中选择项目。右键单击,然后单击团队->推送分支。

    将创建新的远程分支。你可以把这个分支的名字给你的同事,这样他们就可以拔出来了。