我想默認推送和拉出全部分支,包括新建立的分支。 git
我能夠爲它定義一個設置嗎? 服務器
不然,當我在本地添加一個新分支而且我想從服務器中提取它時,最簡單的方法是什麼? fetch
我建立了一個具備相同名稱的新分支,並試圖拉,但它不起做用。 問我分支機構的全部遠程配置。 我該如何設置它。 url
最簡單的方法是: spa
git push --all origin
這將推進標籤和分支。 code
若是您要將分支機構移動到舊的倉庫而且沒有本地的全部舊倉庫分支,則須要先跟蹤它們。 rem
for remote in `git branch -r | grep -v '\->'`; do git branch --track $remote; done
而後添加新的遠程倉庫: 文檔
git remote add bb <path-to-new-repo>
而後你可使用這個命令所有推送: get
git push -u bb --all
或者您可使用此處其餘響應中提到的git config命令配置repo,若是您沒有這樣作或只想移動本地分支。 it
重要的是,其餘響應只會推進全部LOCAL分支。 若是分支僅存在於備用REMOTE存儲庫中,則它們將在不先跟蹤它們的狀況下移動。 這裏介紹的for循環將有助於此。
使用現代git,您老是獲取全部分支 (做爲遠程跟蹤分支到refs/remotes/origin/*
名稱空間,使用git branch -r
或git remote show origin
可見)。
默認狀況下(參見push.default
配置變量的文檔)你推送匹配的分支 ,這意味着首先你必須爲git push origin branch
執行git push origin branch
,以便老是在git push
上推送它。
若是要始終推送全部分支 ,能夠設置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 = user@example.com:/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/*
要使用git branch -a
查看全部分支,您應該執行:
for remote in `git branch -r`; do git branch --track $remote; done git fetch --all git pull --all
如今你能夠看到全部的分支:
git branch
推進全部分支嘗試:
git push --all
我曾使用如下命令將全部分支遷移到新存儲庫。
~$ git clone --mirror <url_of_old_repo> ~$ cd <name_of_old_repo> ~$ git remote add new-origin <url_of_new_repo> ~$ git push new-origin master ~$ git push new-origin --mirror
注意 :在將Atlassian Stash的repo克隆到AWS CodeCommit (空白回購)時,我必須使用倒數第二個(即首先推送主控)命令。 我不肯定緣由,但在推送( git push new-origin --mirror
)以後,默認分支指的是除了master
以外的其餘一些分支。