防止git拉合并

防止git拉合并,git,merge,pull,Git,Merge,Pull,有时,当我执行“git pull origin branch”时,我意外地键入了错误的分支名称。 当XXX不是我当前在本地存储库中检查的分支时,有没有办法禁止“git pull origin XXX”?i、 e.仅当本地选中分支为XXX而非YYY时,才允许“git pull” 也就是说,我确实希望“合并”到hapen,但前提是我提取当前在本地存储库中检查的分支。有没有一种方法可以配置本地存储库,只允许从同一个分支名称进行“git pull” 例如: 案例1: 本地存储库上当前选中的分支为“测试

有时,当我执行“git pull origin branch”时,我意外地键入了错误的分支名称。
当XXX不是我当前在本地存储库中检查的分支时,有没有办法禁止“git pull origin XXX”?i、 e.仅当本地选中分支为XXX而非YYY时,才允许“git pull”

也就是说,我确实希望“合并”到hapen,但前提是我提取当前在本地存储库中检查的分支。有没有一种方法可以配置本地存储库,只允许从同一个分支名称进行“git pull”

例如: 案例1:
本地存储库上当前选中的分支为“测试”

这将代码从“测试”分支合并到我的本地“主”分支。==>我想禁止这样做

案例2:

本地存储库上当前选中的分支为“主”

这将合并从远程“主”分支到我的本地“主”分支的更改。==>这 没关系

我希望我能很好地解释我的问题


提前感谢。

您应该使用
git fetch

以下哪项是:

从远程存储库中获取所有不可用的对象 目前在当地的一个

编辑:

“git pull执行git获取,然后执行git合并”

编辑2:

好吧,你不能禁止拉入一个分支,因为它可以是本地名称,也可以是任何时候

但是您可以使用
git pull--abort
没有检查它应该是这样的

您可以做的另一件事是在进行
git拉取之前将
git checkout
发送到分支的SHA1

请记住,您始终可以通过以下方式撤消所有操作(不可逆):


您应该使用
git fetch

以下哪项是:

从远程存储库中获取所有不可用的对象 目前在当地的一个

编辑:

“git pull执行git获取,然后执行git合并”

编辑2:

好吧,你不能禁止拉入一个分支,因为它可以是本地名称,也可以是任何时候

但是您可以使用
git pull--abort
没有检查它应该是这样的

您可以做的另一件事是在进行
git拉取之前将
git checkout
发送到分支的SHA1

请记住,您始终可以通过以下方式撤消所有操作(不可逆):


使用不合并代码的
git fetch
git pull
实际上是两个命令的组合
git fetch
,然后是
git merge
使用
git fetch
,它不合并代码
git pull
实际上是两个命令的组合
git fetch
,然后是来自“man git pull”的
git merge

    git pull runs git fetch with the given parameters and calls git merge to
    merge the retrieved branch heads into the current branch.
因此,

    git fetch origin master
不执行自动合并

您还可以执行以下操作:

    git fetch origin master:tmp 
从获取的主分支创建新分支“tmp”。
然后,
git merge FETCH\u HEAD
将显示任何冲突

这就是你的意思吗?

摘自《男人的把戏》:

    git pull runs git fetch with the given parameters and calls git merge to
    merge the retrieved branch heads into the current branch.
因此,

    git fetch origin master
不执行自动合并

您还可以执行以下操作:

    git fetch origin master:tmp 
从获取的主分支创建新分支“tmp”。
然后,
git merge FETCH\u HEAD
将显示任何冲突


这就是你的意思吗?

不要太担心,明智地使用
git reset
可以消除混乱。只要确保每次提取存储库时都处于井然有序的状态。

不要太担心,明智地使用git reset
可以消除混乱。只要确保每次拉动时,您的存储库都处于井然有序的状态。

如果不明白您想要什么,请签出到分支主控,然后拉动,它将合并到当前分支。请重新编写您的问题?让它更清晰,因为本地分支与服务器上的分支是正交的,所以您不能这样做。但我认为有一些黑客这样做。我的意思是,你应该更新你的原始语言,这样其他人也可以帮助你,顺便说一句,如果可以做到的话,有人肯定知道,并会回答你的问题。这正是我要发布的内容。无论您的工作树是什么,都可以安全地运行
git fetch
。如果不了解您想要的是什么,请先签出到分支主控,然后将其拉入,并将其合并到当前分支。请重新编写您的问题?让它更清晰,因为本地分支与服务器上的分支是正交的,所以您不能这样做。但我认为有一些黑客这样做。我的意思是,你应该更新你的原始语言,这样其他人也可以帮助你,顺便说一句,如果可以做到的话,有人肯定知道,并会回答你的问题。这正是我要发布的内容。无论您的工作树是什么,运行
git fetch
总是安全的。@dritan,
git reset--hard HEAD^
应该可以。是的,但这只重置最后一次提交。在合并期间,可能会有多个合并的提交。也就是说,我必须找出合并了多少次提交,然后运行git reset--hard HEAD~3来重置最后3次提交commits@dritan,git reset--hard HEAD^
应该可以。是的,但这只重置最后一次提交。在合并期间,可能会有多个合并的提交。也就是说,我必须找出合并了多少次提交,然后运行git reset--hard HEAD~3来重置最后3次提交