我怎么做:
从另一个分支创建一个本地分支(通过 git 分支或 git checkout -b) 将本地分支推到远程存储库(即发布),但使其可追踪,以便 git pull 和 git push 工作。
我怎么做:
从另一个分支创建一个本地分支(通过 git 分支或 git checkout -b) 将本地分支推到远程存储库(即发布),但使其可追踪,以便 git pull 和 git push 工作。
当前回答
我只是做
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
因此,您目前的本地分支机构现在跟踪起源/本地分支。
其他回答
这里已经提供的解决方案的轻微变化:
创建一个本地分支,基于某些其他(远程或本地)分支: git checkout -b 分支名称 将本地分支推到远程存储库(发布),但使其可追踪,所以 git pull 和 git push 将立即运行 git push -u 起源 HEAD 使用 HEAD 是一个“手动的方式,将当前分支推到相同的名称在远程”。 来源: https://git-scm.com/docs/git-push 在 Git 条款中, HEAD (in)
为了获得最大的灵活性,您可以使用自定义的 Git 命令. 例如,在您的 $PATH 中的某个地方创建下列 Python 脚本,并以 git-publish 名称进行执行:
#!/usr/bin/env python3
import argparse
import subprocess
import sys
def publish(args):
return subprocess.run(['git', 'push', '--set-upstream', args.remote, args.branch]).returncode
def parse_args():
parser = argparse.ArgumentParser(description='Push and set upstream for a branch')
parser.add_argument('-r', '--remote', default='origin',
help="The remote name (default is 'origin')")
parser.add_argument('-b', '--branch', help='The branch name (default is whatever HEAD is pointing to)',
default='HEAD')
return parser.parse_args()
def main():
args = parse_args()
return publish(args)
if __name__ == '__main__':
sys.exit(main())
然后 git publish -h 将向您展示使用信息:
usage: git-publish [-h] [-r REMOTE] [-b BRANCH]
Push and set upstream for a branch
optional arguments:
-h, --help show this help message and exit
-r REMOTE, --remote REMOTE
The remote name (default is 'origin')
-b BRANCH, --branch BRANCH
The branch name (default is whatever HEAD is pointing to)
创建一个新的分支,通过从现有分支中分支
git checkout -b <new_branch>
然后将这个新分支推到存储库使用
git push -u origin <new_branch>
此创建并推动所有本地承诺到新创建的远程分支起源/<new_branch>
现在可以(Git 版本 2.37.0)设置 git config --global push.autoSetupRemote true。
在引入 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