我想默认情况下推拉所有分支,包括新创建的分支。
我可以为它定义一个设置吗?
否则,当我在本地添加新分支并且要从服务器中将其提取时,最简单的方法是什么?
我用相同的名称创建了一个新分支,并尝试拉,但它不起作用。向我询问分支的所有远程配置。我该如何设置。
最简单的方法是:
git push --all origin
这将推送标签和分支。
使用现代 git 时,您始终会获取所有分支(作为进入refs/remotes/origin/*
命名空间的git branch -r
或git remote show origin
看到)。
默认情况下(请参见push.default
config 变量的文档),您推送匹配的分支,这意味着您首先必须执行git push origin branch
以便 git 始终在git push
上推送它。
如果要始终推送所有分支,则可以设置推送 refspec。假设遥控器被命名为origin
,则可以使用git config :
$ git config --add remote.origin.push '+refs/heads/*:refs/heads/*'
$ git config --add remote.origin.push '+refs/tags/*:refs/tags/*'
或直接编辑.git/config
文件,使其具有以下内容:
[remote "origin"] url = [email protected]:/srv/git/repo.git fetch = +refs/heads/*:refs/remotes/origin/* fetch = +refs/tags/*:refs/tags/* push = +refs/heads/*:refs/heads/* push = +refs/tags/*:refs/tags/*
在 push 规范中包含 + 可能不是一个好主意,因为这意味着即使没有 - f ,git 也会很乐意进行非快进推送,并且如果将远程服务器设置为接受那些,则可能会丢失历史记录。
试试这个:
$ git config --add remote.origin.push 'refs/heads/*:refs/heads/*'
$ git config --add remote.origin.push 'refs/tags/*:refs/tags/*'
$ git config --add remote.origin.fetch 'refs/heads/*:refs/remotes/origin/*'
$ git config --add remote.origin.fetch 'refs/tags/*:refs/tags/*'