相当于updateInstead for git fetch -u

时间:2017-06-01 14:02:22

标签: git git-fetch

在其他地方documenteddiscussedgit fetch拒绝提取当前分支,除非您提供-u选项。

在大多数情况下,这种行为非常有意义,显然是正确的默认值。但是,这不是我想要的行为。相反,我想要配置选项receive.denyCurrentBranch=updateInstead的功能:如果当前工作树和索引匹配HEAD,则允许获取和更新工作树;否则,拒绝使用类似的消息获取默认值。如果不使用git fetch -u编写我自己的瓷器命令,有没有办法做到这一点?

如果有更好的工作流程,我想要这个的原因是我正在处理存储在单独的Git存储库中的许多项目。它们中的大多数都位于dev本地分支上,其中dev/master远程分支作为其上游。当我实际进行开发时,我会在一个以我正在处理的任何功能命名的分支上执行,而不是dev分支。我希望所有的远程分支都可用,所以我需要定期进行git fetch --all -p,我还需要在我没有构建的项目中进行git pull,这样他们就拥有了最新的代码。因为有很多项目,最简单的方法是在Bash中循环遍历它们并在所有项目上运行git fetch --all -p; git pull。不幸的是,这也在我正在进行更改的项目上运行git pull,这可能会导致合并冲突,而不仅仅是获取最新的依赖项。

相反,我希望我目前没有工作的项目自动更新工作树;然后我只需要在我目前正在处理的存储库上运行git pull。这样,我只能在合适的情况下运行它,并且当我只想构建依赖项目的最新源时,不要担心合并冲突。

2 个答案:

答案 0 :(得分:1)

  

我还需要在我没有构建的项目中执行git pull所以他们拥有最新的代码......不幸的是,这也在我正在进行的项目上运行git pull

您可以运行git pull --ff-only,如果有一些本地提交,则会立即失败。

答案 1 :(得分:0)

你可以开始使用git hooks并运行

git fetch -a
只要有必要,

相关问题