問題1:Git多分支管理及遠(yuǎn)程配置
當(dāng)從服務(wù)器中clone下來一個(gè)項(xiàng)目后,默認(rèn)會(huì)有本地分支master
以及服務(wù)器的所有遠(yuǎn)程分支繁莹。其中本地分支master
與遠(yuǎn)程origin/master
自動(dòng)關(guān)聯(lián)逊彭。而遠(yuǎn)程origin/dev
這類分支則不存在關(guān)聯(lián)裳涛。
通常個(gè)人僅做dev
上的更改纤壁,首先本地創(chuàng)建分支git branch dev
稠鼻,并切換至新的本地分支git checkout dev
。然后按一般的操作進(jìn)行本地的開發(fā)之后岳瞭。通過git push origin dev
上傳到遠(yuǎn)程dev
分支上拥娄。
當(dāng)其他成員在遠(yuǎn)程dev
分支上進(jìn)行修改,直接在本地dev
分支中git pull
時(shí)會(huì)提示當(dāng)前分支沒有關(guān)聯(lián)遠(yuǎn)程分支瞳筏。因此通過git branch --set-upstream-to=origin/<branch> dev
使得本地dev與遠(yuǎn)程相應(yīng)的分支關(guān)聯(lián)稚瘾。此時(shí)在本地dev
分支中執(zhí)行git status
則顯示up-to-date with origin/dev
。
此時(shí)執(zhí)行git remote show origin
顯示
$ git remote show origin
* remote origin
Fetch URL: git@git.coding.net:xxxx.git
Push URL: git@git.coding.net:xxxx.git
HEAD branch: master
Remote branches:
dev tracked
master tracked
Local branches configured for 'git pull':
dev merges with remote dev
master merges with remote master
Local refs configured for 'git push':
dev pushes to dev (up to date)
master pushes to master (up to date)
問題2:多個(gè)ssh-key配置姚炕,從https切換到ssh
由于項(xiàng)目是用https方式clone下來摊欠,如果要切換到ssh則需要執(zhí)行git remote set-url origin <url>
切換到相應(yīng)的ssh地址丢烘。
由于對(duì)不同賬號(hào)有多個(gè)key存在,通過ssh-add
進(jìn)行添加些椒。詳細(xì)參考此處播瞳。這種方法的不好之處就在于每次都要重新運(yùn)行ssh-agent
。
第二種方法就是在~/.ssh/config
中配置相關(guān)地址映射免糕,不然默認(rèn)只會(huì)用id_rsa來做認(rèn)證赢乓。
Host github.com
HostName github.com
User yourusername
IdentityFile ~/.ssh/id_rsa
Host git.coding.net
HostName git.coding.net
PreferredAuthentications publickey
User yourusername
IdentityFile ~/.ssh/coding_rsa
特別注意,當(dāng)Host之后的域名修改之后说墨,則會(huì)強(qiáng)制使用新的Host骏全,比如git.coding.net改成coding,則要確保相應(yīng)的git里的域名也都是對(duì)應(yīng)的是coding尼斧,不然就會(huì)使得這個(gè)映射失效姜贡。