Git : 将本地git仓库同步到远端github上
現(xiàn)在的情景是,你已經(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)程同步,這樣,GitHub上的倉(cāng)庫(kù)既可以作為備份,又可以讓其他人通過(guò)該倉(cāng)庫(kù)來(lái)協(xié)作,真是一舉多得。
首先,登陸GitHub,然后,在右上角找到“Create a new repo”按鈕,創(chuàng)建一個(gè)新的倉(cāng)庫(kù):
在Repository name填入learngit,其他保持默認(rèn)設(shè)置,點(diǎn)擊“Create repository”按鈕,就成功地創(chuàng)建了一個(gè)新的Git倉(cāng)庫(kù):
目前,在GitHub上的這個(gè)learngit倉(cāng)庫(kù)還是空的,GitHub告訴我們,可以從這個(gè)倉(cāng)庫(kù)克隆出新的倉(cāng)庫(kù),也可以把一個(gè)已有的本地倉(cāng)庫(kù)與之關(guān)聯(lián),然后,把本地倉(cāng)庫(kù)的內(nèi)容推送到GitHub倉(cāng)庫(kù)。
現(xiàn)在,我們根據(jù)GitHub的提示,在本地的learngit倉(cāng)庫(kù)下運(yùn)行命令:
$ git remote add origin git@github.com:michaelliao/learngit.git請(qǐng)千萬(wàn)注意,把上面的michaelliao替換成你自己的GitHub賬戶名,否則,你在本地關(guān)聯(lián)的就是我的遠(yuǎn)程庫(kù),關(guān)聯(lián)沒(méi)有問(wèn)題,但是你以后推送是推不上去的,因?yàn)槟愕腟SH Key公鑰不在我的賬戶列表中。
添加后,遠(yuǎn)程庫(kù)的名字就是origin,這是Git默認(rèn)的叫法,也可以改成別的,但是origin這個(gè)名字一看就知道是遠(yuǎn)程庫(kù)。
下一步,就可以把本地庫(kù)的所有內(nèi)容推送到遠(yuǎn)程庫(kù)上:
這里會(huì)出現(xiàn)錯(cuò)誤:
原因是ssh key有問(wèn)題,連接不上服務(wù)器。
解決方案:
1、首先我得重新在git設(shè)置一下身份的名字和郵箱(因?yàn)楫?dāng)初都忘了設(shè)置啥了,因?yàn)橛龅娇恿?#xff09;進(jìn)入到需要提交的文件夾底下(因?yàn)橹苯哟蜷_(kāi)git Bash,在沒(méi)有路徑的情況下,根本沒(méi)!法!改!剛使用git時(shí)遇到的坑。。。)
git config --global user.name "yourname"
git config --global user.email“your@email.com"
注:yourname是你要設(shè)置的名字,your@email是你要設(shè)置的郵箱。
?
2、刪除.ssh文件夾(直接搜索該文件夾)下的known_hosts(手動(dòng)刪除即可,不需要git)
?
3、git輸入命令
$ ssh-keygen -t rsa -C "your@email.com"(請(qǐng)?zhí)钅阍O(shè)置的郵箱地址)
?
接著出現(xiàn):
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):
?
請(qǐng)直接按下回車(chē),然后系統(tǒng)會(huì)自動(dòng)在.ssh文件夾下生成兩個(gè)文件,id_rsa和id_rsa.pub,用記事本打開(kāi)id_rsa.pub
將全部的內(nèi)容復(fù)制
?
4、打開(kāi)https://github.com/,登陸你的賬戶,進(jìn)入設(shè)置
?
進(jìn)入ssh設(shè)置
?
在key中將剛剛復(fù)制的粘貼進(jìn)去
點(diǎn)擊add ssh key,
?
ok!
?
5、在git中輸入命令:
?
ssh -T git@github.com
?
然后會(huì)跳出一堆話。。
?
輸入命令:yes
?
一直回車(chē),然后就會(huì)提示你成功了~~
?
因此再次連接github,將當(dāng)前項(xiàng)目push到github:
?
把本地庫(kù)的內(nèi)容推送到遠(yuǎn)程,用git push命令,實(shí)際上是把當(dāng)前分支master推送到遠(yuǎn)程。
由于遠(yuǎn)程庫(kù)是空的,我們第一次推送master分支時(shí),加上了-u參數(shù),Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來(lái),在以后的推送或者拉取時(shí)就可以簡(jiǎn)化命令。
此時(shí),本地倉(cāng)庫(kù)和遠(yuǎn)端github已經(jīng)進(jìn)行連接了。從現(xiàn)在起,只要本地作了提交,就可以通過(guò)命令:
$ git push origin master把本地master分支的最新修改推送至GitHub,現(xiàn)在,你就擁有了真正的分布式版本庫(kù)!
?
小結(jié)
要關(guān)聯(lián)一個(gè)遠(yuǎn)程庫(kù),使用命令git remote add origin git@server-name:path/repo-name.git;
關(guān)聯(lián)后,使用命令git push -u origin master第一次推送master分支的所有內(nèi)容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
?
總結(jié)
以上是生活随笔為你收集整理的Git : 将本地git仓库同步到远端github上的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Git :LF will be repl
- 下一篇: Git:分支的使用