gpt4 book ai didi

git - 如何将 Git 配置为在分支更改时自动从原点 pull ?

转载 作者:行者123 更新时间:2023-12-02 03:10:52 25 4
gpt4 key购买 nike

当我切换分支时,如果本地是干净的并且在其原始对应物之后,我想总是从源中提取最新的更改。本地分支是其远程分支的跟踪分支,fetch 按预期工作。

  • 可以将 Git 配置为自动执行此操作吗?
  • 是否有一个存储库范围的设置来为所有分支执行此操作? (我们的分支经常被创建和删除,因为公司政策是每个任务一个分支,审查时被 PR'd 和 merge )


  • 编辑:

    对于上下文,我使用 Visual Studio 2017 及其用户界面来执行 Git 命令。让 Git 保持最新没有问题。我需要使用命令行执行一些 Git 命令,例如重命名分支或 stash repo 设置。

    当我说“本地是干净的”时,是的,它指的是来自 git status 的工作树,以及在没有传出提交或本地修改文件的 VS 中。 VS 有一个非常漂亮的 UI,可以实时显示这些信息。

    经过

    (Our branches are frequently created and deleted as company policy is one branch per task which is PR'd and merged when reviewed)



    这应该是说“我真的不想为每个分支设置此设置或连接”的一种即兴方式,但解释是:

    我们创建自己的本地分支,从主分支中分离出来来完成一项任务。在 VS 中,这是“从...创建本地分支”,它使用所需的名称执行分支的 check out 。
    在幕后,我确定这相当于 git checkout -b fillcatnip master . fillcatnip在推送到远程之前是未跟踪的本地分支,但它将作为新分支推送 fillcatnip而不是原来的 master .那时,它变成了一个跟踪分支,并且可以被赋予一个 pull 请求 (PR) 以 merge 回 master。当任务完成时。
    但是如果 master在 PR 可以实现之前已经移动并发生冲突,那么在冲突解决之前无法 merge 分支。发生这种情况时,我可能已经开始了另一项任务。因此,如果我保存当前正在执行的任务(提交和推送、存储等),然后切换回冲突的分支,我想要该分支的远程副本而不是我自己的本地副本,因为有人可能已经推送在等待 merge 时对其进行更改。

    最佳答案

    您需要一个 git hook - 在你的情况下是 post-checkout hook .在钩子(Hook)里你打电话 git pull .

    像这样的东西:

    #!/bin/sh

    prev_HEAD="$1"
    new_HEAD="$2"
    new_branch="$3"

    if [ "$new_branch" = 1 ]; then
    git pull origin "$new_HEAD"
    fi

    exit 0

    关于git - 如何将 Git 配置为在分支更改时自动从原点 pull ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48830327/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com