我该如何:
通过
git branch
或git checkout -b
从另一个分支创建一个本地分支。将本地分支推送到远程仓库(即发布),但要使其可追踪,以便
git pull
和git push
能够工作。
我该如何:
通过 git branch
或 git checkout -b
从另一个分支创建一个本地分支。
将本地分支推送到远程仓库(即发布),但要使其可追踪,以便 git pull
和 git push
能够工作。
git checkout -b <branch>
编辑文件,添加并提交修改。然后使用-u
(即--set-upstream
的简称)选项进行推送:
git push -u origin <branch>
在推送时,Git会设置跟踪信息。
push.default
设置为“upstream”,那么这将不会按照你的预期进行。它将尝试覆盖现有的跟踪分支。请使用:git push -u origin mynewfeature:mynewfeature
或者先运行 git branch --unset-upstream
。 - void.pointergit push -u origin HEAD
。 - amaslenn-u
来初始化追踪。之后,只需使用 git push
即可。 - Todd--set-upstream
跟踪:
git push --all --set-upstreamgit push --all -u
(虽然这不完全是发帖者所要求的,但这个一行代码很受欢迎)
如果您与他人共享存储库,则不应该这样做,因为您会将所有有问题的实验性分支淹没存储库。
git pull --all
可以将所有代码下载到另一个地方,很棒! - commonpikegit push --all -u
的风险信息? - user1823664在引入 git push -u
之前,没有 git push
选项可以获取您想要的结果。您必须添加新的配置语句。
如果您使用以下命令创建一个新分支:
$ git checkout -b branchB
$ git push origin branchB:branchB
你可以使用git config
命令来避免直接编辑.git/config
文件:$ git config branch.branchB.remote origin
$ git config branch.branchB.merge refs/heads/branchB
或者您可以手动编辑 .git/config
文件,向该分支添加跟踪信息:
[branch "branchB"]
remote = origin
merge = refs/heads/branchB
git push origin -u local_branch:remote_branch
这个命令。 - Bruce Lee简单来说,要创建一个新的本地分支,请执行以下操作:
git branch <branch-name>
要将其推送到 远程 仓库,请执行以下操作:
git push -u origin <branch-name>
git branch <branch-name>
和 git checkout -b <branch-name>
都可以创建一个分支,但是 checkout
命令会切换到新的分支。 - Robert以下是对此处已有解决方案的略微变化:
基于其他(远程或本地)分支创建本地分支:
git checkout -b branchname
将本地分支推送到远程仓库(发布),但使其可跟踪,以便git pull
和git push
立即起作用。
git push -u origin HEAD
使用HEAD
是将当前分支推送到远程相同名称的“方便方法”。来源:https://git-scm.com/docs/git-push
在Git术语中,大写的 HEAD 是指向当前分支(树)顶部的引用。
-u
选项只是--set-upstream
的简称。这将为当前分支添加一个上游跟踪引用。您可以通过查看您的.git/config文件来验证此操作:
git push -u origin <branch-name>
无法生效,但是使用 HEAD
替代 <branch-name>
却完美解决了问题 :) - Daniel Tonon我只是做
git push -u origin localBranch:remoteBranchToBeCreated
在一个已经克隆的项目上。
Git 在我在 localBranch
中提交的代码下创建了一个名为 remoteBranchToBeCreated
的新分支。
编辑: 这将更改您当前本地分支(可能命名为localBranch
)的上游至 origin/remoteBranchToBeCreated
。要解决此问题,只需输入:
git branch --set-upstream-to=origin/localBranch
或者git branch -u origin/localBranch
所以你当前的本地分支现在跟踪 origin/localBranch
。
local:remote
。 - andiOakgit push --set-upstream origin <你的分支名称>
或者
git push -u origin <你的分支名称>
编辑:已过时,请使用git push -u origin $BRANCHNAME
使用William's miscellaneous Git tools中的git publish-branch
命令。
好的,没有Ruby,所以 - 忽略保护! - 取脚本的最后三行创建一个bash脚本 git-publish-branch
:
#!/bin/bash
REMOTE=$1 # Rewrite this to make it optional...
BRANCH=$2
# Uncomment the following line to create BRANCH locally first
#git checkout -b ${BRANCH}
git push ${ORIGIN} ${BRANCH}:refs/heads/${BRANCH} &&
git config branch.${BRANCH}.remote ${REMOTE} &&
git config branch.${BRANCH}.merge refs/heads/${BRANCH}
然后运行 git-publish-branch REMOTENAME BRANCHNAME
命令,其中 REMOTENAME 通常为 origin(您可以修改脚本以将 origin 设为默认值等等...)
git push
和 git config
命令。我使用了脚本的代码来编辑我的答案。你可以使用这些信息创建一个小的 shell 脚本来为你完成发布。 - Lohrun拉取所有远程分支
git pull --all
git branch -a
结账或创建分支(将<feature branch>
替换为您的分支名称):
git checkout -b <feature branch>
显示当前分支。必须在前面带上*。
git branch
添加您的本地更改(.此处是有意的)
git add .
现在提交您的更改:
git commit -m "Refactored/ Added Feature XYZ"
重要提示:从主分支获取更新:
git pull origin feature-branch
现在将本地更改推送:
git push origin feature-branch
我想你已经像这样克隆了一个项目:
git clone http://github.com/myproject.git
在你的本地副本中创建一个新分支并切换到它:
git checkout -b <newbranch>
假设你在服务器上通过 "git bare --init" 命令创建了 myapp.git,那么你需要: git remote add origin ssh://example.com/var/git/myapp.git
git push origin master
在那之后,用户应该能够:git clone http://example.com/var/git/myapp.git
注意:我假设您已经启动并运行了服务器。如果没有启动,它将无法工作。一个好的如何操作可以在这里找到。
添加一个远程分支:
git push origin master:new_feature_name
检查一切是否良好(获取远程代码并列出分支):
git fetch origin
git branch -r
创建本地分支并跟踪远程分支:git checkout -tb new_feature_name origin/new_feature_name
更新所有内容:
git pull
git remote add origin
命令是否可以使本地分支可追踪?这是关键命令吗? - Roni Yanivgit remote add origin
只是注册一个新的远程仓库,不会直接将分支推送到远程仓库。这只是在推送分支到远程仓库之前必须执行的一个步骤(如果您不想每次都输入完整的地址)。 - Lohrun
git checkout -b branch
,git push
=> 这时会输出一个包含所需运行命令的错误信息。然后复制/粘贴该命令即可。 :) - Kip