我怎么做:

从另一个分支创建一个本地分支(通过 git 分支或 git checkout -b) 将本地分支推到远程存储库(即发布),但使其可追踪,以便 git pull 和 git push 工作。


当前回答

我假设你已经克隆了这样的项目:

git clone http://github.com/myproject.git

然后在您的本地副本中,创建一个新的分支,并检查它: git checkout -b <newbranch> 假设您在您的服务器上创建了一个“git bare --init”并创建了 myapp.git,您应该: git remote 添加起源 ssh://example.com/var/git/myapp.git git push 起源主 之后,用户应该能够 git clone http://example.com/var/git/myapp.git

注意:我假设你有你的服务器上运行,如果没有,它不会工作。

添加

添加一个远程分支:

git push origin master:new_feature_name

检查一切是否好(Fetch起源和列出远程分支):

git fetch origin
git branch -r

创建一个本地分支,并跟踪远程分支:

git checkout -tb new_feature_name origin/new_feature_name

更新一切:

git pull

其他回答

我假设你已经克隆了这样的项目:

git clone http://github.com/myproject.git

然后在您的本地副本中,创建一个新的分支,并检查它: git checkout -b <newbranch> 假设您在您的服务器上创建了一个“git bare --init”并创建了 myapp.git,您应该: git remote 添加起源 ssh://example.com/var/git/myapp.git git push 起源主 之后,用户应该能够 git clone http://example.com/var/git/myapp.git

注意:我假设你有你的服务器上运行,如果没有,它不会工作。

添加

添加一个远程分支:

git push origin master:new_feature_name

检查一切是否好(Fetch起源和列出远程分支):

git fetch origin
git branch -r

创建一个本地分支,并跟踪远程分支:

git checkout -tb new_feature_name origin/new_feature_name

更新一切:

git pull

编辑 过时,只需使用 git push -u 起源 $BRANCHNAME


使用William的错误的Git工具的Git出版分支。

好吧,没有卢比,所以 - 忽略保留! - 采取脚本的最后三行,并创建一个 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 通常是起源(您可以修改脚本以默认起源等)。

在 Git 1.7.0 或更高版本中,您可以查看一个新的分支:

git checkout -b <branch>

编辑文件,添加和承诺. 然后按下 -u (缩写为 --set-upstream) 选项:

git push -u origin <branch>

Git 在推时将设置跟踪信息。

我只是做

git push -u origin localBranch:remoteBranchToBeCreated

这是一个已经克隆的项目。

Git 创建了一个新的分支,名为远程BranchToBeCreated 在我在本地Branch 所做的承诺下。

Edit: This changes your current local branch ( possibly named localBranch) upstream to origin/remoteBranchToBeCreated. 要修复这一点,只需输入:

git branch --set-upstream-to=origin/localBranch

git branch -u origin/localBranch

因此,您目前的本地分支机构现在跟踪起源/本地分支。

我认为这是最简单的 alias,添加到你的 ~/.gitconfig

[alias]
  publish-branch = !git push -u origin $(git rev-parse --abbrev-ref HEAD)

你只是跑

git publish-branch

而且......它出版了分支。