我创建了一个本地分支。如何将其推送到远程服务器?
更新:我写了一个simpler answer for Git 2.0 here。
get fetch --all
获取远程端的新分支(但只有 get fetch --prune
会在本地删除对已删除远程分支的引用)。我认为,要么这应该由他们自动设置,要么你必须与他们口头交谈。
首先,创建一个新的本地分支并检查它:
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-pull(1) 和其他命令使用。
首先,您必须在本地创建您的分支
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 本地到远程 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
git push -u origin [local-branch-name]:[remote-branch-name]
。您还可以在拉取远程分支时指定自己的分支名称:git branch -t -b [local-branch-name] origin/[remote-branch-name]
。
简单的 Git 2.0+ 解决方案:
从 Git 2.0 开始,行为变得更加简单:
您可以使用 push.default = current
配置 git 以使生活更轻松:
我添加了这个,所以现在我可以向上游推送一个新分支
$ git push -u
-u
将跟踪同名的远程分支。现在使用此配置,您将自动猜测对 git push 的远程引用。从 git.config documentation:
push.default 定义如果没有明确给出 refspec,git push 应该采取的行动。 push.default = current - 推送当前分支以更新接收端同名的分支。适用于中央和非中央工作流程。
对我来说,这是对我日常 Git 工作流程的一个很好的简化。配置设置处理“通常”用例,您在本地添加分支并希望远程创建它。此外,我可以通过执行 git co remote_branch_name
(而不是使用 --set-upstream-to
标志)轻松地从远程创建本地分支。
我知道这个问题和接受的答案相当陈旧,但行为已经改变,因此现在存在配置选项以使您的工作流程更简单。
要添加到全局 Git 配置,请在命令行上运行:
$ git config --global push.default current
git push -u origin HEAD
作为回答 here 有点冗长(你写你正在做的事情),而不是太多的打字。此外,如果分支是使用 -t
创建的,那么没有附加参数的 git push -u
对我不起作用
git config --global push.default upstream && git checkout -b foo && <change a file> && git push -u
不起作用(从 git 2.19.1 开始); push 需要远程和分支参数。
git co remote_branch_name
的含义?
~/.profile
解决:function gitb() { git checkout -b $1 && git push --set-upstream origin $1; }
然后可以执行 gitb feature/abcd
- 这为 git pull
和 git push
设置它而没有额外的参数 + 将新分支推送到远程 repo 以验证名称是否真实自由的。
-u
标志添加到 git push -u
并检查您的 git config --list
是否包含 push.default=current
对我来说,git push -u
才有效。另请注意,从 Git v2.27 开始,系统会提示您设置默认推送策略。所以也许你的默认值没有什么不同?
如前面的答案所述,
git push <remote-name> <local-branch-name>:<remote-branch-name>
足以推动本地分支。
您的同事可以使用以下命令拉取所有远程分支(包括新分支):
git remote update
然后,要对分支进行更改,通常的流程:
git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>
基于当前分支在本地新建一个分支:
git checkout -b newbranch
像往常一样提交任何更改。然后,将其推送到上游:
git push -u origin HEAD
这是将当前分支推送到 origin
上的同名分支并对其进行跟踪的快捷方式,以便您以后无需指定 origin HEAD
。
git push -u origin HEAD
。我认为这是最明确的方法。
git status
。
git remote show origin
作为第三步,以可视化新的跟踪/被跟踪关系。
如果要从当前分支创建分支
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
[快速回答]
您可以分两步完成:
1. 使用 checkout
创建本地分支:
git checkout -b yourBranchName
2. 使用 push
命令自动创建分支并将代码发送到远程存储库:
git push -u origin yourBranchName
有多种方法可以做到这一点,但我认为这种方法非常简单。
如果您实际上只想创建远程分支而没有本地分支,则可以这样做:
git push origin HEAD:refs/heads/foo
它将您的 HEAD 推送到远程不存在的分支 foo 。
最简单的解决方案...鼓滚... 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 push -u
更容易。要求您有一个全局配置行,请参阅 stackoverflow.com/a/27185855/109305。我经常使用 git push -u
,它在工作时涵盖了我 99% 的用例。
首先在本地创建分支:
git checkout -b your_branch
然后远程创建分支:
git push --set-upstream origin your_branch
注意:这适用于最新版本的 git:
$ git --version
git version 2.3.0
干杯!
git push
生成的帮助文本。
在本地机器上创建分支并切换到这个分支:
$ 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]
你可以简单地,
git checkout -b 你的新分支名称 git add 。 git push origin YOUR-NEW-BRANCH-NAME
你可以在相关的 git repo 下看到你的分支和代码
干杯!! :)
从现有分支创建本地分支(可以是 master/develop/any-other-branch)。
git checkout -b 分支名称
将此推送到远程
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 同名。本地分支也将跟踪远程分支。
我知道这个问题得到了很好的回答,但只是想列出我创建新分支“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
只是想补充一点:
git checkout -b {branchName}
创建一个新分支,它还检查该分支 / 使其成为当前分支。如果出于某种原因,您只想关闭一个分支但不将其设为当前分支,那么您将使用以下命令:
git branch {branchName}
在第一个命令中,“checkout”将所述分支设为当前分支,而“-b”表示:此分支尚不存在,因此请为我创建。
现在使用 git,当您在正确的分支中时,您只需键入
git push --set-upstream origin <remote-branch-name
>
和 git 为你创建 origin 分支。
如何通过 Source Tree 进行操作
1: Open SourceTree, click on Repository -> Checkout
2: Click on Create New Branch
3: Select the branch where you want to get code for new branch
4: Give your branch name
5: Push the branch (by click on Push-button)
如果新创建的分支不是从同一个 repo 产生的,则 git push -u <remote-name> <branch-name>
不起作用,即如果您没有使用 git checkout -b new_branch
创建新分支,那么这将不起作用。
例如,我在本地克隆了两个不同的存储库,我必须将 repo2/branch1 复制到 repo1/,然后再推送它。
This 链接帮助我将本地分支(从另一个仓库克隆)推送到远程仓库:
这是通过 Egit 在 Eclipse 中执行此操作的方法。
转到“Git Repository Exploring”视图并展开要创建分支的 git 项目。在 Branches -> Local .. 选择要为其创建分支的分支(在我的情况下,我选择了 master .. 如果您愿意,可以选择另一个分支).. 然后右键单击并单击 Create Branch 选项.. 和选择结帐此项目选项,然后单击完成按钮。现在从项目资源管理器中选择项目.. 右键单击然后团队 -> 推送分支。
将创建一个新的远程分支。您可以将分支的名称提供给您的同事,以便他们可以拉取它。
我使用了两种方法来创建分支
如果您使用 TortoiseGit,请按照以下步骤操作:-
1.使用 TortoiseGit 创建分支
右键单击您的项目 >>> TortoiseGit >>> 创建分支 >>> 编写分支名称并选择基础分支然后按确定
2.推分支
右键单击您的项目 >>> TortoiseGit >>> 推送 >>> 单击确定
3.切换到新分支
右键单击您的项目 >>> TortoiseGit >>> Switch/Checkout >>> 选择新创建的分支并按确定
如果您使用命令提示符,请按照下列步骤操作:-
1.使用命令提示符创建分支
$git checkout -b new_branch_name
2.推分支
$git push origin new_branch_name
3.切换到新分支它已经切换到 new_branch_name 否则你可以使用
$git checkout new_branch_name
我使用它,它非常方便:
git config --global alias.mkdir '!git checkout -b $1; git status; git push -u origin $1; exit;'
用法:git mkdir NEW_BRANCH
你甚至不需要 git status;也许,我只是想确保一切顺利......
您可以使用单个命令同时拥有 LOCAL 和 REMOTE 分支。
我通过将其添加到我的 bash ~/.profile
中解决了这个问题:
function gitb() { git checkout -b $1 && git push --set-upstream origin $1; }
然后启动一个新的本地+远程分支,我写:
gitb feature/mynewbranch
这将创建分支 并且 进行第一次推送,不仅仅是设置跟踪(以便稍后的 git pull
和 git push
无需额外参数即可工作),但实际上确认目标 repo 还没有里面有这样的分支。
这是一个示例,我只有两个本地分支:origin 和 mobile-test。
直到我在命令行中使用它在远程分支中实际显示我更新的文件之前,对我来说没有任何效果。
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
<remote>
上,git push <remote>
将不会推送它。git push -u <remote-name> <branch-name>
,以便后续的git pull
知道该做什么。origin
,而不是显式指定服务器名称,这意味着“我从中获得了此 repo 其余部分的服务器”:因此是git push origin <branch-name>
。-u
选项,您可以稍后在分支中键入git push -u
,然后git pull
将起作用。git push -u origin <local-branch-name>
对我有用。