已經(jīng)在本地創(chuàng)建了一個(gè)Git倉(cāng)庫(kù)后,又想在GitHub創(chuàng)建一個(gè)Git倉(cāng)庫(kù)浦箱,并且讓這兩個(gè)倉(cāng)庫(kù)進(jìn)行遠(yuǎn)程同步
創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)
登陸GitHub
名字填寫(xiě)為gittest柳弄,點(diǎn)擊Create repository
推送分支git push
英語(yǔ)好的同學(xué)自行翻譯一下,我就不多做敘述了
這里我們用下面箭頭標(biāo)示的方法号坡,用終端推送一個(gè)存在的倉(cāng)庫(kù)
首先選擇SSH肆资,然后進(jìn)入我們的gittest本地倉(cāng)庫(kù)
cd /Users/blurryssky/Desktop/iOS/gittest
執(zhí)行以下命令矗愧,直接從上面圖里的位置復(fù)制過(guò)來(lái)
git remote add origin git@github.com:blurryssky/gittest.git
git push -u origin master
注意,如果本地git倉(cāng)庫(kù)里什么文件都沒(méi)有,需要先創(chuàng)建一些文件并且提交
SSH警告
當(dāng)你第一次使用Git的git clone
或者git push
命令連接GitHub時(shí)唉韭,會(huì)得到一個(gè)警告
The authenticity of host 'github.com (192.30.252.130)'
can't be established.
RSA key fingerprint is
SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?
輸入yes即可
看到這樣的界面代表推送已經(jīng)成功了(如果卡住關(guān)掉再來(lái)一次即可)
刷新一下我們GitHub夜涕,可以看到遠(yuǎn)程倉(cāng)庫(kù)的目錄已經(jīng)和本地一樣了
遠(yuǎn)程庫(kù)的名字就是origin,這是Git默認(rèn)的叫法属愤,也可以改成別的女器,但是origin這個(gè)名字一看就知道是遠(yuǎn)程庫(kù),最好也不要去修改
git push
命令住诸,實(shí)際上是把當(dāng)前分支master推送到遠(yuǎn)程
第一次推送master分支時(shí)驾胆,加上了-u
參數(shù),Git不但會(huì)把本地的master分支內(nèi)容推送到遠(yuǎn)程庫(kù)origin的master分支贱呐,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來(lái)丧诺,在以后的推送時(shí)就可以不加了,直接使用
git push
抓取git pull
從遠(yuǎn)程倉(cāng)庫(kù)獲取最新的更新用
git pull origin master
如果你收到以下提示奄薇,代表遠(yuǎn)程倉(cāng)庫(kù)的版本要先于本地版本驳阎,必須先用git pull
獲取更新
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
自動(dòng)追蹤分支信息
每一次使用git push
或者git pull
后面都要跟上origin master
顯然是比較麻煩的,可以使用以下命令建立自動(dòng)追蹤
git branch --set-upstream-to=origin/master master
顯示如下
Branch master set up to track remote branch master from origin.
以后就可以直接使用馁蒂,會(huì)自動(dòng)去找到建立了追蹤信息的分支(例子里是master)
git push
git pull
如果你收到的提示是這樣的
error: the requested upstream branch 'origin/new_test' does not exist
hint:
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint:
hint: If you are planning to push out a new local branch that
hint: will track its remote counterpart, you may want to use
hint: "git push -u" to set the upstream config as you push.
說(shuō)明本地有這個(gè)分支了呵晚,但是遠(yuǎn)程庫(kù)根本不存在,那當(dāng)然無(wú)法建立連接了
再次使用git push -u
git push -u origin new_test
創(chuàng)建遠(yuǎn)程分支new_test沫屡,并且把本地內(nèi)容上傳饵隙,并且把兩者信息關(guān)聯(lián)起來(lái)
注意,每一個(gè)分支都可以去分別追蹤遠(yuǎn)程庫(kù)不同的分支沮脖,這就意味著你可以讓本地庫(kù)和遠(yuǎn)程庫(kù)的每一個(gè)分支一一對(duì)應(yīng)起來(lái)金矛。也意味著每一次你創(chuàng)建一個(gè)新的分支,可能都要去設(shè)置一下追蹤信息倘潜。
git config -e
該命令可查看已經(jīng)與遠(yuǎn)程庫(kù)建立好信息追蹤的所有分支信息
克隆git clone
從遠(yuǎn)程倉(cāng)庫(kù)克隆到本地
找一個(gè)合適的目錄
git clone git@github.com:blurryssky/gittest.git