有時候,我們想把一個項目從github切換到其他git服務器,免不了就要切換遠程倉庫地址。那這時候有什么辦法解決呢?據(jù)目前自己的了解,有三種辦法。
一、修改命令
git remote set-url origin url
二、先刪后加
git remote rm origingit remote add origin git@github.com:sheng/demo.git
三、修改config文件
如果你的項目有加入版本控制,那可以到項目根目錄下,查看隱藏文件夾, 發(fā)現(xiàn).git文件夾,找到其中的config文件,就可以修改其中的git remote origin地址了。
切換完了之后我們發(fā)現(xiàn)無法提交代碼,報錯如下:
git push origin master
To git@github.com:qzmly100/repository-.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:qzmly100/repository-.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
解決方案:
遠程分支上存在本地分支中不存在的提交,往往是多人協(xié)作開發(fā)過程中遇到的問題,可以先fetch再merge,也就是pull,把遠程分支上的提交合并到本地分支之后再push。先抓取并合并遠程倉庫全部內(nèi)容(git pull origin master),再推送本地倉庫數(shù)據(jù)(git push origin master)。
如果你確定遠程分支上那些提交都不需要了,那么直接git push origin master -f,強行讓本地分支覆蓋遠程分支
把本地倉庫與遠程倉庫建立關聯(lián)
git branch --set-upstream master origin/master