首页 文章

你如何创建一个远程Git分支?

提问于
浏览
2792

我创建了一个本地分支,我想在上游“推” . Stack Overflow上有一个关于如何跟踪新创建的远程分支的类似问题 .

但是,我的工作流程略有不同 . First 我想创建一个本地分支,当我满意并且想要共享我的分支时,我只会将其推送到上游 .

  • 我该怎么做? (我的谷歌搜索似乎没有提出任何东西) .

  • 如何告诉我的同事从上游存储库中取出它?

UPDATE With Git 2.0 there is a simpler answer 我写的如下:https://stackoverflow.com/a/27185855/109305

17 回答

  • 4

    我知道这个问题得到了很好的回答,但只想列出我创建新分支“myNewBranch”并推送到远程(我的情况下为“origin”)并设置跟踪的步骤 . 考虑这个“TL; DR”版本:)

    # 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
    
  • 264

    如前面的答案所述,

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

    足以推动当地分公司 .

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

    git remote update
    

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

    git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>
    
  • 22

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

    git checkout -b your_branch
    

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

    git push -u origin your_branch
    

    队友可以通过以下方式联系您的分支机构:

    git fetch
    git checkout origin/your_branch
    

    您可以继续在分支中工作并随时随地推送而不将参数传递给git push(无参数git push会将master推送到远程master,your_branch本地到remote your_branch等等)

    git push
    

    队友可以通过提交推送到您的分支,然后明确推送

    ... work ...
    git commit
    ... work ...
    git commit
    git push origin HEAD:refs/heads/your_branch
    

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

    git checkout --track -b your_branch origin/your_branch
    ... work ...
    git commit
    ... work ...
    git commit
    git push
    
  • 36

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

    git checkout -b {your_local_branch_name}
    

    你想要一个远程分支的分支,你可以试试

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

    如果您完成了更改,则可以添加该文件 .

    git add -A or git add <each_file_names>
    

    然后在本地进行提交

    git commit -m 'your commit message'
    

    当你想推送到远程仓库时

    git push -u origin <your_local_branch_name>
    

    一起将是

    git checkout -b bug_fixes
    

    或者如果要从远程分支创建分支,请说 development

    git checkout -b bug_fixes origin / development

    您可以将分支推送到远程仓库

    git push -u origin **bug_fixes**
    

    任何时候你想从任何其他分支更新你的分支说 master .

    git pull origin master .

  • 54

    在本地计算机上创建分支并切换到此分支:

    $ git checkout -b [name_of_your_new_branch]
    

    在github上推分支:

    $ git push origin [name_of_your_new_branch]
    

    如果您想在分支机构中提交某些内容,请务必进入您的分支机构 .

    您可以使用以下命令查看所有分支:

    $ git branch
    

    哪个会显示:

    * approval_messages
      master
      master_clean
    

    为您的分支添加新的远程:

    $ git remote add [name_of_your_remote]
    

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

    $ git push origin [name_of_your_remote]
    

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

    $ git fetch [name_of_your_remote]
    

    然后,您需要申请合并更改,如果您的分支派生自您需要做的开发:

    $ git merge [name_of_your_remote]/develop
    

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

    $ git branch -d [name_of_your_new_branch]
    

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

    $ git branch -D [name_of_your_new_branch]
    

    删除github上的分支:

    $ git push origin :[name_of_your_new_branch]
    

    Here All Information

    Other Existing project

  • 68

    根据当前分支在本地创建新分支:

    git checkout -b newbranch
    

    像往常一样提交任何更改 . 然后,将其推向上游:

    git push -u origin HEAD
    

    这是一个快捷方式,可以将当前分支推送到 origin 上的同名分支并跟踪它,以便将来不需要指定 origin HEAD .

  • 6

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

    git push origin HEAD:refs/heads/foo
    

    它将您的HEAD推送到遥控器上不存在的分支foo .

  • 3400

    Simple Git 2.0解决方案:

    截至 Git 2.0 the behaviour has become simpler

    您可以使用 push.default = current 配置git以简化生活:

    我添加了这个,所以现在我可以在上游推送一个新的分支

    $ git push -u
    

    -u 将跟踪同名的远程分支 . 不使用此配置,您将自动猜测对git push的远程引用 . 从git.config documentation

    push.default定义git push应该采取的操作,如果没有明确给出refspec . push.default = current - 推送当前分支以更新接收端具有相同名称的分支 . 适用于中央和非中央工作流程 .

    对我来说,这是我日常Git工作流程的一个很好的简化 . 配置设置负责'usual'用例,您可以在本地添加分支并希望远程创建分支 . 此外,我可以通过执行 git co remote_branch_name (而不是使用 --set-upstream-to 标志)轻松地从遥控器创建本地分支 .

    我知道这个问题并且接受的答案相当陈旧,但行为已经改变,因此现在存在配置选项以使您的工作流更简单 .

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

    $ git config --global push.default current
    
  • 7

    最简单的解决方案...... Drumm Roll ...... git version 2.10.1 (Apple Git-78)

    1) git checkout -b localBranchNameThatDoesNotExistInRemote
    
    2) Do your changes, and do a git commit 
    
    3) git push origin localBranchNameThatDoesNotExistInRemote --force
    

    注: - 您刚刚在本地环境中创建的分支和远程分支你想要推送的不存在的分支, must have the same name .

  • 3

    首先,在本地创建分支:

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

    将其推送到远程服务器时,将自动创建远程分支 . 因此,当您准备好它时,您可以这样做:

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

    其中 <remote-name> 通常是 origin ,git为您克隆的远程提供的名称 . 然后你的同事就会拉出那个分支,它会在本地自动创建 .

    但请注意,正式格式为:

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

    但是当你省略一个时,它假设两个分支名称是相同的 . 话虽如此,作为 caution 的一句话,不要犯下仅指定 :<remote-branch-name> (带冒号)的严重错误,否则将删除远程分支!

    因此,后续 git pull 将知道该怎么做,你可能会想要使用:

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

    如下所述, --set-upstream 选项设置上游分支:

    对于每个最新或成功推送的分支,添加上游(跟踪)引用,由无参数git-pull(1)和其他命令使用 .

  • 16

    如何通过源树

    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)
    
  • 8

    git push -u <remote-name> <branch-name> doesn 't work if the newly created branch isn' t从同一个仓库中产生,即如果您还没有使用 git checkout -b new_branch 创建新分支,那么这将不起作用 .

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

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

  • 5

    首先,您在本地创建分支:

    git checkout -b your_branch
    

    然后远程创建分支:

    git push --set-upstream origin your_branch
    

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

    $ git --version
    git version 2.3.0
    

    干杯!

  • 21

    这是你如何通过Egit在eclipse中完成的 .

    1)转到“Git Repository Exploring”视图并解释要为其创建分支的git项目 . 在Brances - > Local ..下选择要为其创建分支的分支(在我的情况下,我选择了master ..如果您愿意,可以选择另一个分支)..然后右键单击并单击Create Branch选项..并选择结帐此项目选项,然后单击完成按钮 .

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

    将创建一个新的远程分支 . 您可以将分支的名称提供给您的同事,以便他们可以将其拉出来 .

  • 10

    现在使用git,当你在正确的分支中时,你可以输入

    git push --set-upstream origin <remote-branch-name >

    和git为你创建原始分支 .

  • 25

    只想添加:

    git checkout -b {branchName}
    

    创建一个新分支,它还会检出该分支/使其成为当前分支 . 如果出于某种原因,您想要做的就是截取分支但不使其成为当前分支,那么您将使用以下命令:

    git branch {branchName}
    

    在第一个命令中,“checkout”使所述分支成为当前分支,“ - b”表示:该分支尚不存在,所以请为我做 .

  • 818

    从现有分支创建本地分支(可以是master / develop / any-other-branch) .

    git checkout -b branch_name

    将其推到远程

    git push -u remote_name local_branch_name:remote_branch_name

    这里,

    • -u:设置上游分支

    • remote_name:git在创建存储库时默认将名称设置为"origin" . 但是,这可以更改为不同的任意名称 .

    • local_branch_name:是要推送的本地分支的名称 .

    • remote_branch_name:是我们要在远程创建的远程分支的名称 .

    如果我们删除本地和远程分支名称,它将具有该格式

    git push -u remote_name branch_name

    这会将本地分支推送到远程并与本地分支branch_name同名 . 本地分支也将跟踪远程分支 .

相关问题