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