当我切换分支时,如果本地是干净的并且在其原始对应物之后,我想总是从源中提取最新的更改。本地分支是其远程分支的跟踪分支,fetch 按预期工作。
可以将 Git 配置为自动执行此操作吗?
是否有一个存储库范围的设置来为所有分支执行此操作?(我们的分支经常被创建和删除,因为公司政策是每个任务一个分支,在审查时被 PR 和合并)
编辑:
对于上下文,我使用 Visual Studio 2017 及其用户界面来执行 Git 命令。让 Git 保持最新没有问题。我需要使用命令行执行一些 Git 命令,例如重命名分支或隐藏 repo 设置。
当我说“本地是干净的”时,是的,它指的是来自git status
和 VS的工作树,其中没有传出提交或本地修改的文件。VS 有一个非常漂亮的 UI,可以实时显示这些信息。
经过
(我们的分支经常被创建和删除,因为公司政策是每个任务一个分支,在审查时被 PR 和合并)
这应该是一种说“我真的不想为每个分支设置此设置或连接”的即兴方式,但解释是:
我们创建自己的本地分支,从主分支中分离出来来完成一项任务。在 VS 中,这是“从...创建本地分支”,它使用所需的名称执行分支的检出。在幕后,我确定这相当于git checkout -b fillcatnip master
. fillcatnip
是一个未跟踪的本地分支,直到推送到远程,但它将作为新分支推送fillcatnip
而不是原始master
. 在这一点上,它成为一个跟踪分支,并且可以master
在任务完成时给出一个拉取请求 (PR) 以合并回。但是如果master
在 PR 可以实现之前已经移动并发生冲突,那么在冲突解决之前无法合并分支。发生这种情况时,我可能已经开始了另一项任务。因此,如果我保存当前正在执行的任务(提交和推送、存储等),然后切换回冲突的分支,我想要该分支的远程副本而不是我自己的本地副本,因为有人可能已经推送在等待合并时对其进行更改。