設置git來拉動並推進全部分支

我想默認推送和拉出全部分支,包括新建立的分支。 git

我能夠爲它定義一個設置嗎? 服務器

不然,當我在本地添加一個新分支而且我想從服務器中提取它時,最簡單的方法是什麼? fetch

我建立了一個具備相同名稱的新分支,並試圖拉,但它不起做用。 問我分支機構的全部遠程配置。 我該如何設置它。 url


#1樓

最簡單的方法是: spa

git push --all origin

這將推進標籤和分支。 code


#2樓

若是您要將分支機構移動到舊的倉庫而且沒有本地的全部舊倉庫分支,則須要先跟蹤它們。 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循環將有助於此。


#3樓

使用現代git,您老是獲取全部分支 (做爲遠程跟蹤分支到refs/remotes/origin/*名稱空間,使用git branch -rgit 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/*

#4樓

要使用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

#5樓

我曾使用如下命令將全部分支遷移到新存儲庫。

~$ 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以外的其餘一些分支。

相關文章
相關標籤/搜索