我怎么做:

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


当前回答

完整的 Git 工作流,以推动本地变更到另一个功能分支类似于此

排除所有远程分支

git pull --all

列出所有分支现在

git branch -a  

查询或创建分支(用分支名替换 <函数分支>):

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 命令. 例如,在您的 $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 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

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

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

你只是跑

git publish-branch

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

我创建了一个标签,所以每当我创建一个新的分支,它将按下推和跟踪远程分支。

# Create a new branch, push to origin and track that remote branch
publishBranch() {
  git checkout -b $1
  git push -u origin $1
}
alias gcb=publishBranch

使用: 只是用 thuy/do-sth-kool 输入 gcb thuy/do-sth-kool 是我的新分支名称。

你可以在2个步骤中完成:

使用支票来创建本地分支:

git checkout -b yourBranchName

随心所欲地与你的分支工作。

使用推命令自我创建分支,并将代码发送到远程存储库:

git push -u origin yourBanchName

有很多方法可以做到这一点,但我认为这很简单。