Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何自动将本地git分支链接到远程git分支?_Git_Github_Version Control - Fatal编程技术网

如何自动将本地git分支链接到远程git分支?

如何自动将本地git分支链接到远程git分支?,git,github,version-control,Git,Github,Version Control,为了快速重新设置分支的基础,我创建了一个.gitconfig别名,用于从master和force-pushing重新设置基础 rb=“拉原点主数据——重新基准” 一个是用力推 fp=“push-f” 我使用git-rb&&git-fp将它们链接到shell中。这对于在shell中与autocomplete一起执行这两个命令非常有用 除非远程分支在我的本地分支之前,否则这是有效的 我想添加另一个别名,以确保我所在的本地分支与remote是最新的,但无需指定分支名称 如果我设定 [pull]

为了快速重新设置分支的基础,我创建了一个.gitconfig别名,用于从master和force-pushing重新设置基础

rb=“拉原点主数据——重新基准”

一个是用力推

fp=“push-f”

我使用
git-rb&&git-fp
将它们链接到shell中。这对于在shell中与autocomplete一起执行这两个命令非常有用

除非远程分支在我的本地分支之前,否则这是有效的

我想添加另一个别名,以确保我所在的本地分支与remote是最新的,但无需指定分支名称

如果我设定

[pull]
    default = current
这能让我做些类似的事情吗

up=git pull--rebase
而不必指定分支

理想情况下,我想串在一起

git up&&git rb&&git fp

为确保远程分支是最新的,请从主分支重新设置基础,然后强制推送分支

我想在上面设置
[pull]default=current
,它会工作。。。但它似乎没有,因为
git pull--rebase
给了我这个失败

Please specify which branch you want to rebase against.
See git-pull(1) for details.

git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

git branch --set-upstream-to=origin/<branch> chore/prs
请指定要重设基础的分支。
有关详细信息,请参见git pull(1)。
吉特拉力
如果您希望为此分支设置跟踪信息,可以通过以下方式进行设置:
git branch——将上游设置为=origin/chore/prs

您可以在本地repo中创建shell脚本,每次要执行串行命令时,只需运行shell脚本即可

例如,test.sh文件可以执行
git pull--rebase&&git pull origin master&&git push-f

#!/bin/sh
current_branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')

(git pull origin $current_branch --rebase && git pull origin master --rebase && git push origin $current_branch -f)

您可以在本地repo中创建shell脚本,每次要执行串行命令时,只需运行shell脚本即可

例如,test.sh文件可以执行
git pull--rebase&&git pull origin master&&git push-f

#!/bin/sh
current_branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')

(git pull origin $current_branch --rebase && git pull origin master --rebase && git push origin $current_branch -f)

您的问题的答案在git输出的消息中:最后一行告诉您如何将本地分支链接到远程分支


另外:您应该使用
push--force with lease
而不是
push-f


例如,请参见

git输出的消息中给出了问题的答案:最后一行告诉您如何将本地分支链接到远程分支


另外:您应该使用
push--force with lease
而不是
push-f


例如,请参见

除了@LeGEC提示使用
push--force with lease
之外,您还可以在通过运行强制推之前更新分支

git pull --rebase origin \"$(git rev-parse --abbrev-ref HEAD)\"

除了@LeGEC提示使用
push--force with lease
之外,您还可以通过运行

git pull --rebase origin \"$(git rev-parse --abbrev-ref HEAD)\"

(1) 没有
pull.default
(Git忽略它不期望的任何设置,所以您可以设置它,它什么也不做)。(2) 使用
——将上游设置为
,如Git的建议所示。每个分支必须执行一次,尽管大多数基于
origin/
创建本地分支名称的情况下都会自动执行,所以这不是什么大问题。(3) 我建议完全避免
git-pull
:它只是
git-fetch
,然后是第二个命令(通常是merge或rebase),但您计划执行两个post-
fetch
命令,所以您最好只执行它们。(1)没有
pull.default
(Git忽略它不期望的任何设置,所以您可以设置它,它什么也不做)。(2)使用
——按照Git的建议将上游设置为
。这必须每个分支执行一次,尽管大多数基于
源代码/
创建本地分支名称的情况下都会自动执行,所以这不是什么大问题。(3)我建议完全避免使用
git-pull
:这只是
git-fetch
,然后再执行第二个命令(通常是合并或重基),但您计划执行两个post-
fetch
命令,所以您最好只执行它们。我编辑了我的答案,最初的消息是关于“不要使用
-f
”没有使用rebase工作流。很高兴了解这一点,这一点非常重要。我最近犯过几次错误,我覆盖了远程更改,这至少会超级强调它不会发生。我编辑了我的答案,即关于“不要使用
-f
”的初始消息没有使用rebase工作流。很高兴了解这一点,这一点非常重要。最近我犯了几次错误,我覆盖了远程更改,这至少会超级强化它不会发生。这正是我所需要的!这正是我所需要的!感谢这个伟大的想法,但它可以在没有如上面丹尼尔的回答中所示的脚本。谢谢你的好主意,但如上面丹尼尔的回答中所示,没有脚本也可以解决问题。