我希望能够执行以下操作:
基于其他(远程或本地)分支(通过git branch
或git checkout -b
)创建本地分支
推送本地分支到远程存储库(发布),但是进行可跟踪的,因此git pull
和git push
将立即运行。
我该怎么做?
我知道Git 1.7中的--set-upstream
,但这是创建后的操作。我想找到一种将分支推送到远程存储库时进行类似更改的方法。
在Git 1.7.0及更高版本中,您可以签出一个新分支:
git checkout -b <branch>
编辑文件,添加并提交。然后push with the -u
(short for --set-upstream
)选项:
-u
Git将在推送过程中设置跟踪信息。
git push -u origin name_new_branch
文件中:push
到公共存储库,然后使用以下代码:如果您不与其他人共享您的仓库,这对于将分支机构的[[all推送到远程,并为您正确跟踪--set-upstream
很有用:
git push -u origin <branch>
(不完全是OP的要求,但是这种单线很受欢迎)如果您要与其他人共享您的存储库,这不是一个很好的形式,因为您将使用所有狡猾的实验分支阻塞该存储库。
--set-upstream
引入之前,没有git push --all -u
选项可以获取您想要的东西。您必须添加新的配置语句。如果使用以下方法创建新分支:
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
local分支,请执行:
.git/config
要将其推送到存储库,请执行:remote
[branch "branchB"]
remote = origin
merge = refs/heads/branchB
git branch <branch-name>
git push -u origin <branch-name>
和git checkout -b branchname
将立即起作用git pull
使用git push
是“将当前分支推送到遥控器上相同名称的简便方法”。资料来源:git push -u origin HEAD
用Git术语来说,HEAD(大写)是对当前分支(树)顶部的引用。
HEAD
选项只是https://git-scm.com/docs/git-push的缩写。这将为当前分支添加上游跟踪参考。您可以通过查看.git / config文件来验证这一点:
-u
git branch --set-upstream-to=origin/localBranch
- 然后在您的本地副本中,创建一个新分支并检出它:
origin/localBranch
git clone http://github.com/myproject.git
git checkout -b <newbranch>
NOTE:我假设您已启动服务器并正在运行。如果不是,它将不起作用。一个好方法是
ADDEDgit 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
edit已过时,只需使用git checkout -tb new_feature_name origin/new_feature_name
git pull
中的git push -u origin $BRANCHNAME
(git publish-branch
和William's miscellaneous Git tools)。[确定,没有Ruby,所以-忽略安全措施! -使用脚本的最后三行并创建一个bash脚本,gitorious repo:
然后运行git-publish-branch
,其中REMOTENAME通常是原点(您可以修改脚本以将原点作为默认值,等等...]
#!/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
这将创建所有本地提交并将其推送到新创建的远程分支git checkout -b <new_branch>