若是你已经在本地建立了一个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