我创建了一个本地分支,如何将其推送到远程服务器?
更新:我在这里为Git 2.0写了一篇更简单的答案。
首先,创建一个新的本地分支并切换到该分支:
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 push <remote>
不会推送分支,如果它在 <remote>
上不存在。 - Jakub Narębskigit push -u <remote-name> <branch-name>
,这样后续的git pull
命令就知道该怎么做了。 - Bart Schullerorigin
,它表示“我获取此存储库的其余部分的服务器”:因此,使用 git push origin <分支名称>
。 - lambshaanxy-u
选项,后来在分支中只需输入 git push -u
,然后 git pull
就会起作用。 - Jangit push -u origin <local-branch-name>
对我有效。 - Samo首先,您必须在本地创建您的分支
git checkout -b your_branch
之后,您可以在本地分支上工作,当您准备共享该分支时,请将其推送。下一个命令将分支推送到远程存储库 origin 并跟踪它。
git push -u origin your_branch
团队成员可以通过以下方式访问您的分支:
git fetch
git checkout origin/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]
。 - UncaughtTypeError-u
的实用性是什么? - Gass从Git 2.0开始,行为变得更简单了:
您可以通过push.default = current
配置git以使生活更轻松:
我添加了这个设置,现在我只需使用push
命令即可将新分支推到远程仓库:
$ git push -u
-u
选项将跟踪相同名称的远程分支。现在有了这个配置,您将自动猜测要推送到git的远程引用。来自git.config文档:
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
在这里的回答[https://dev59.com/J3I_5IYBdhLWcg3wHfSr#21991290]略显冗长(你需要写出你正在做什么),但打字量不会太多。此外,如果分支是用-t
创建的,则不带其他参数的git push -u
对我无效。 - Qw3rygit config --global push.default upstream && git checkout -b foo && <change a file> && git push -u
在 Git 2.19.1 版本中无法正常工作;push 操作需要指定远程仓库和分支参数。 - knitegit co remote_branch_name
的含义吗? - Chris Karpyszyn~/.profile
解决:function gitb() { git checkout -b $1 && git push --set-upstream origin $1; }
,然后可以执行gitb feature/abcd
- 这将为git pull
和git push
设置它们所需的参数,并将新分支推送到远程仓库以验证名称是否真正可用。 - youurayygit push -u
命令中添加 -u
标志,还要检查你的 git config --list
是否包含 push.default=current
。对我来说,git push -u
就可以正常工作。另外请注意,从 Git v2.27 开始,会提示你设置默认的推送策略。所以也许你的默认设置不同? - Jesper Rønn-Jensen如前面的答案所述,
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
。我认为这是最清晰的方法。 - Scadgegit push
命令之前应该先运行 git status
命令。 - Zenexergit remote show origin
作为第三步,以可视化新的跟踪/被跟踪关系。 - hb5fa如果你想从当前分支创建一个新的分支
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
)创建一个本地分支bug_fixes
git checkout -b bug_fixes origin/development
你可以通过以下方式将本地分支推送到远程仓库:
git push -u origin bug_fixes
如果你想要从其他分支(例如master
)更新你的分支,随时都可以这样做。
git pull origin master
你可以分为2步来完成:
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
更容易。这需要您在全局配置中添加一行代码,详情请见 https://dev59.com/J3I_5IYBdhLWcg3wHfSr#27185855。我经常使用 git push -u
,它几乎覆盖了我工作时99%的用例。 - Jesper Rønn-Jensen首先你需要在本地创建分支:
git checkout -b your_branch
然后远程创建分支:
git push --set-upstream origin your_branch
注意:此方法适用于最新版本的git:
$ git --version
git version 2.3.0
干杯!
git push
生成的帮助文本,当您的本地分支没有被远程跟踪时会出现。 - nurettin
get fetch --all
会获取远程端的新分支(但只有get fetch --prune
才会删除本地对已删除的远程分支的引用)。我认为,这应该由他们自动设置,或者您需要口头与他们沟通。 - peterh