如何创建远程Git分支?

我创建了一个本地分支。如何将其推送到远程服务器?

更新:我在这里为Git 2.0写了一个更简单的答案

2674817 次浏览

首先,创建一个新的本地分支并检查它:

git checkout -b <branch-name>

当您将远程分支推送到远程服务器时,会自动创建它:

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

<remote-name>通常是origin,这是git为您克隆的远程提供的名称。然后,您的同事可以简单地拉取该分支。

但请注意,正式的格式是:

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

但是当您省略一个时,它假设两个分支名称相同。话虽如此,作为警告的单词,不要犯只指定:<remote-branch-name>(带冒号)的严重错误,否则远程分支将被删除!


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

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

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

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

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

git checkout -b your_branch

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

git push -u origin your_branch

队友可以通过以下操作到达您的分支:

git fetchgit checkout origin/your_branch

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

git push

队友可以通过提交推送到你的分支,然后显式推送

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

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

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

如前面的回答所述,

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

足以推动当地分支机构。

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

git remote update

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

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

这是你如何通过Egit在Eclipse中做到这一点。

  1. 转到“Git存储库探索”视图并展开要创建分支的git项目。在分支->本地…选择要为其创建分支的分支(在我的情况下,我选择了主…您可以选择另一个分支,如果您愿意)…然后右键单击并单击创建分支选项…并选择签出此项目选项,然后单击完成按钮。

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

将创建一个新的远程分支。您可以将分支的名称提供给您的同事,以便他们可以拉取它。

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

git checkout -b newbranch

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

git push -u origin HEAD

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

如果新创建的分支不是从同一个repo生成的,则git push -u <remote-name> <branch-name>不起作用,即如果您没有使用git checkout -b new_branch创建新分支,那么这将不起作用。

例如,我在本地克隆了两个不同的存储库,我不得不将repo2/分支1复制到repo1/,然后也推送它。

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

我知道这个问题得到了很好的回答,但只想列出我创建一个新分支“myNew分支”并推送到远程(在我的情况下是“源”)并设置跟踪所采取的步骤。认为这是“太长别读”版本:)

# create new branch and checkout that branchgit checkout -b myNewBranch# now push branch to remotegit push origin myNewBranch# set up the new branch to track remote branch from origingit branch --set-upstream-to=origin/myNewBranch myNewBranch

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

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

然后git为您创建原始分支。

简单的Git 2.0+解决方案:

截至Git 2.0,行为变得更简单

您可以使用#0配置git以使生活更轻松:

我添加了这个,所以现在我可以用

$ git push -u

-u将跟踪同名的远程分支。现在使用此配置,您将自动猜测git ush的远程引用。从git.config留档

push.default

定义如果没有显式给出refspec,git ush应采取的操作。

#0-推送当前分支以使用接收端的名称相同。适用于中央和非中央工作流。

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

我知道这个问题和接受的答案相当古老,但行为已经改变,现在存在配置选项,使您的工作流程更简单。

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

$ git config --global push.default current

只是想补充一下:

git checkout -b {branchName}

创建一个新分支,它也签出该分支/使其成为您的当前分支。如果出于某种原因,您只想关闭一个分支但不将其设为您的当前分支,那么您将使用以下命令:

git branch {branchName}

在第一个命令中,“签出”使该分支成为您当前的分支,“-b”表示:该分支还不存在,所以为我制作它。

首先在本地创建分支:

git checkout -b your_branch

然后远程创建分支:

git push --set-upstream origin your_branch

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

$ git --versiongit version 2.3.0

干杯!

如何通过源代码树

 1: Open SourceTree, click on Repository -> Checkout2: Click on Create New Branch3: Select the branch where you want to get code for new branch4: Give your branch name5: Push the branch  (by click on Push-button)

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

git push origin HEAD:refs/heads/foo

它将您的HEAD推送到远程上不存在的分支foo

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

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

或如果您想从远程分支创建本地分支bug_fixes,请说development

git checkout -b bug_fixes origin/development

您可以通过以下方式推送到分支到远程存储库

git push -u origin bug_fixes

每当您想从任何其他分支更新您的分支时,例如master

git pull origin master

在本地机器上创建分支并在此分支中切换:

$ git checkout -b [name_of_your_new_branch]

在github上推送分支:

$ git push origin [name_of_your_new_branch]

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

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

$ git branch

这将显示:

* approval_messagesmastermaster_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]

所有信息

其他现有项目

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

git check out-bbranch_name

把这个推到远程

git push-uremote_namelocal_branch_name:remote_branch_name

这里,

  1. -u:设置上游分支
  2. remote_name:git在创建存储库时默认将名称设置为“原始”。但是,这可以更改为不同的任意名称。
  3. local_branch_name:是要推送的本地分支的名称。
  4. remote_branch_name:是我们要在远程上创建的远程分支的名称。

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

git push-uremote_namebranch_name

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

最简单的解决方案…鼓声卷…Git版本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

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

我用这个,它很方便:

git config --global alias.mkdir '!git checkout -b $1; git status; git push -u origin $1; exit;'

用法:git mkdirNEW_BRANCH

你甚至不需要git状态;也许,我只是想确保一切顺利。

您可以使用单个命令同时使用LOCAL和REMOTE分支。

[快速回答]

你可以分两步来做:

1.使用checkout创建本地分支:

git checkout -b yourBranchName

2.使用push命令自动创建分支并将代码发送到远程存储库:

git push -u origin yourBranchName

有很多方法可以做到这一点,但我认为这种方法非常简单。

我使用了两种方法来创建分支

如果您使用TortoiseGit,请按照以下步骤操作:-

1.使用TortoiseGit创建分支

右键单击您的项目>>>TortoiseGit>>>创建分支>>>写下分支名称并选择基本分支,然后按ok

2.推树枝

右键单击您的项目>>>TortoiseGit>>>推送>>>单击确定

3.切换到新分支

右键单击您的项目>>>TortoiseGit>>>Switch/Checkout>>>选择新创建的分支并按ok

如果您使用命令提示符,请按照以下步骤操作:-

1.使用命令提示符创建分支

#new_branch_name

2.推树枝

$git推送源new_branch_name

3.切换到新分支它已经切换到new_branch_name否则您可以使用

$git检查new_branch_name

我已经解决了这个问题,将其添加到我的bash~/.profile中:

function gitb() { git checkout -b $1 && git push --set-upstream origin $1; }

然后启动一个新的本地+远程分支,我写:

gitb feature/mynewbranch

这将创建分支进行第一次推送,不仅仅是为了设置跟踪(以便稍后的git pullgit push在没有额外参数的情况下工作),而是实际上确认目标存储库中还没有这样的分支。

这里有一个例子,我只有两个分支首先是本地的:起源和移动测试。

直到我在命令行中使用它在远程分支中实际显示我更新的文件,我才开始工作。

git push --set-upstream origin mobile-test

如果您使用--single-branch克隆了当前分支,请使用它从当前分支创建一个新分支:

git checkout -b <new-branch-name>git push -u origin <new-branch-name>git remote set-branches origin --add <new-branch-name>git fetch

你可以简单地,

  1. git checkout -b YOUR-NEW-BRANCH-NAME
  2. git add .
  3. git push origin YOUR-NEW-BRANCH-NAME

你可以在相关的git repo下看到你的分支和代码

加油!!:)

从Git 2.37.0开始,您不再需要“--set-上游起源”。只需git push。您可以在启用push.autoSetupRemote选项的情况下实现这一点

git config --global --add --bool push.autoSetupRemote true