Git(五)——遠(yuǎn)程倉(cāng)庫(kù)

image.png

git clone

下載遠(yuǎn)程倉(cāng)庫(kù)到本地 git clone <版本庫(kù)的網(wǎng)址>例如遠(yuǎn)程倉(cāng)庫(kù)地址是https://git.coding.net/baxiang/gitTest.git,執(zhí)行下載到本地命令

git clone https://git.coding.net/baxiang/gitTest.git

git remote

git remote命令列出所有遠(yuǎn)程主機(jī)

$ git remote -v
origin  https://git.coding.net/baxiang/gitTest.git (fetch)
origin  https://git.coding.net/baxiang/gitTest.git (push)

git remote add命令用于添加遠(yuǎn)程主機(jī)

git remote add <主機(jī)名> <網(wǎng)址>

刪除遠(yuǎn)程主機(jī)

 git remote rm <主機(jī)名>

git push

命令用于將本地分支的更新,推送到遠(yuǎn)程主機(jī)

git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
git push origin master

命令表示,將本地的master分支推送到origin主機(jī)的master分支。如果master不存在,則會(huì)被新建。
如果省略本地分支名,則表示刪除指定的遠(yuǎn)程分支,因?yàn)檫@等同于推送一個(gè)空的本地分支到遠(yuǎn)程分支。

$ git push origin :master
# 等同于
$ git push origin --delete master

上面命令表示刪除origin主機(jī)的master分支。如果當(dāng)前分支與遠(yuǎn)程分支之間存在追蹤關(guān)系,則本地分支和遠(yuǎn)程分支都可以省略。

$ git push origin

上面命令表示,將當(dāng)前分支推送到origin主機(jī)的對(duì)應(yīng)分支。如果當(dāng)前分支只有一個(gè)追蹤分支,那么主機(jī)名都可以省略。

$ git push

如果當(dāng)前分支與多個(gè)主機(jī)存在追蹤關(guān)系,則可以使用-u選項(xiàng)指定一個(gè)默認(rèn)主機(jī),這樣后面就可以不加任何參數(shù)使用git push。


$ git push -u origin master

上面命令將本地的master分支推送到origin主機(jī),同時(shí)指定origin為默認(rèn)主機(jī),后面就可以不加任何參數(shù)使用git push了。

git fetch

拉取遠(yuǎn)程主機(jī)的版本庫(kù)的更新

 git fetch <遠(yuǎn)程主機(jī)名>

錯(cuò)誤處理

git pull 失敗 ,提示:fatal: refusing to [merge](https://www.centos.bz/tag/merge/) unrelated histories

其實(shí)這個(gè)問(wèn)題是因?yàn)?兩個(gè) 根本不相干的 git 庫(kù), 一個(gè)是本地庫(kù), 一個(gè)是遠(yuǎn)端庫(kù), 然后本地要去推送到遠(yuǎn)端, 遠(yuǎn)端覺(jué)得這個(gè)本地庫(kù)跟自己不相干, 所以告知無(wú)法合并

具體的方法, 一個(gè)種方法: 是 從遠(yuǎn)端庫(kù)拉下來(lái)代碼 , 本地要加入的代碼放到遠(yuǎn)端庫(kù)下載到本地的庫(kù), 然后提交上去 , 因?yàn)檫@樣的話, 你基于的庫(kù)就是遠(yuǎn)端的庫(kù), 這是一次update

第二種方法:
使用這個(gè)強(qiáng)制的方法

git pull origin [master](https://www.centos.bz/tag/master/) --allow-unrelated-histories

后面加上 --allow-unrelated-histories , 把兩段不相干的 分支進(jìn)行強(qiáng)行合并

后面再push就可以了 [git push](https://www.centos.bz/tag/git-push/) [gitlab](https://www.centos.bz/tag/gitlab/) master:init

gitlab是別名 , 使用

Java代碼
git remote add gitlab ssh://xzh@192.168.1.91:50022/opt/gitrepo/withholdings/WithholdingTransaction

master是本地的branch名字
init是遠(yuǎn)端要推送的branch名字

本地必須要先add ,commit完了 才能推上去

關(guān)于這個(gè)問(wèn)題,可以參考http://stackoverflow.com/questions/37937984/git-refusing-to-merge-unrelated-histories。

在進(jìn)行g(shù)it pull 時(shí),添加一個(gè)可選項(xiàng)

git pull origin master --allow-unrelated-histories`

常見(jiàn)問(wèn)題2

$ git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin master

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容