若是你已經在本地建立了一個Git倉庫,又想在GitHub建立一個Git倉庫,而且讓這兩個倉庫進行遠程同步,那就須要用到SSH Key,github拿到了你的公鑰就會知道內容是你推送的。git
git本地倉庫關聯遠程倉庫(兩種方法):github
檢查你的電腦中用戶主目錄中(C:\Users\Administrator\.ssh)是否有密匙對文件id_rsa
和id_rsa.pub
shell
沒有的話,git bash中執行如下命令建立密匙對,按提示輸入密碼,能夠不填密碼一路回車 : ssh-keygen -t rsa -b 4096 -C "你的git中設置的郵箱"
。 而後用戶主目錄/.ssh/下有兩個文件,id_rsa
是私鑰,id_rsa.pub
是公鑰bash
檢查你的ssh-agent是不是活躍的 eval "$(ssh-agent -s)"
ssh
將私匙添加到 ssh-add ~/.ssh/id_rsa
ide
而後將公匙id_rsa.pub
文件中的內容複製後添加到git網站中,如github測試
登陸GitHub,打開"SSH Keys"頁面,快捷地址:github.com/settings/ss…網站
測試ssh key是否成功: git bash中測試是否可以鏈接ssh -T git@github.com
若是出現You’ve successfully authenticated, but GitHub does not provide shell access
。這就表示已成功連上github。ui
從遠程克隆一份到本地能夠經過git clonethis
Git支持HTTPS和SSH協議,SSH速度更快
例如: git bash中執行 git clone git@github.com:xxxxx/yyy.git
而後切換到倉庫目錄,這時就不須要手動關聯倉庫了。
在github上建立新倉庫(create new repository) 填入倉庫名字(最好與本地項目倉庫的名字一致,不能和已有倉庫名字相同)、描述、權限)、選擇初始化的時候是否建立README文件(Markdown格式)、是否添加gitignore文件、是否添加版權(通常是選 GNU General Public License 或者 Apache License,關於這兩個協議,你們能夠去網上搜一下),而後點擊下面的 Create repository就完成了遠程倉庫建立
將本地倉庫和遠程倉庫關聯
$ echo # repository name>> README.md // 建立 README.md文件,並將# repository name 寫入到文件
$ git init // 初始化一個本地Git倉庫(把本地的文件夾初始化成一個Git能夠管理的版本庫)
注意:需讓命令行終端處在當前文件目錄下
$ git add README.md // 把文件添加到本地版本庫
$ git commit -m "first commit" // 把文件修改提交到倉庫
$ git remote add origin git@github.com:your name/repository name.git // 將本地倉庫和你本身的遠程倉庫關聯起來,origin是倉庫的名字
$ git pull origin master // 先將關聯後的github倉庫中的代碼pull下來,
$ git push -u origin master // 將最新的修改推送到遠程倉庫 將本地倉庫的文件推送到遠程倉庫,可能你的本地項目關聯着幾個倉庫,
你能夠根據倉庫的名字git push origin master 將代碼提交到不一樣倉庫中,能夠指定分支,
第一次使用加上了-u參數,是推送內容並關聯分支。
推送成功後就能夠看到遠程和本地的內容如出一轍,下次只要本地做了提交,就能夠經過命令:
$ git push origin master 把最新內容推送到Github上關聯的遠程倉庫中去。
複製代碼
注意:
每次push前要先進行git add 文件名
和 git commit -m "註釋"
。
在第一次進行push時,咱們加上-u參數,後期push時就不用再加-u參數。
若是新建的遠程庫有文件(好比遠程倉庫裏的LICENSE或者READ.ME文件),須要先 git pull ,可是會遇到
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> master
複製代碼
解決方法:在git pull origin master後面跟上參數--allow-unrelated-histories
git pull origin master --allow-unrelated-histories
遠程倉庫有更新的話須要先pull下來、而後再push