在其他地方documented和discussed,git 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
。这样,我只能在合适的情况下运行它,并且当我只想构建依赖项目的最新源时,不要担心合并冲突。
答案 0 :(得分:1)
我还需要在我没有构建的项目中执行
git pull
所以他们拥有最新的代码......不幸的是,这也在我正在进行的项目上运行git pull
上
您可以运行git pull --ff-only
,如果有一些本地提交,则会立即失败。
答案 1 :(得分:0)
你可以开始使用git hooks并运行
git fetch -a
只要有必要,