如果你已经在本地创建了一个Git仓库,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,那就需要用到SSH Key,github拿到了你的公钥就会知道内容是你推送的。
SSH Key的配置:
1.Windows下打开Git Bash,创建SSH Key,按提示输入密码,可以不填密码一路回车
$ ssh-keygen -t rsa -C "注册邮箱"
然后用户主目录/.ssh/下有两个文件,id_rsa是私钥,id_rsa.pub是公钥
2.获取key,打开.ssh下的id_rsa.pub文件,里面的内容就是key的内容
$ start ~/.ssh/id_rsa.pub
3.登录GitHub,打开"SSH Keys"页面,快捷地址:https://github.com/settings/ssh
4.测试ssh key是否成功,使用命令“ssh -T git@github.com”,如果出现You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。
远程库与本地库之间的操作:
1.从远程克隆一份到本地可以通过git clone
Git支持HTTPS和SSH协议,SSH速度更快
$ git clone https://github.com/zs2018/yuancheng1.gitt
2.本地库关联远程库,在本地仓库目录运行命令:
$ git remote add origin https://github.com/zs2018/yuancheng1.git 请替换为自己仓库的的SSH
3.推送master分支的所有内容
$ git push -u origin master
第一次使用加上了-u参数,是推送内容并关联分支。
推送成功后就可以看到远程和本地的内容一模一样,下次只要本地作了提交,就可以通过命令:
$ git push origin master
把最新内容推送到Github
=实战一下吧======
首先 在本地 克隆下GitHub上的远程库链接地址 :
git clone https://github.com/zs2018/yuancheng1.git 还需要本地库和远程库相关联
git remote add origin https://github.com/zs2018/yuancheng1.git 本地创建文本test.txt,运行:
$ git add text.txt (或者用.也可以代替)
$ git commit -m"添加新文件"
$ git push origin master
弹出 填写账号和密码
然后就可以在github看到同步了
取回远程主机某个分支的更新,如
$ git pull origin master
在这个步骤中可能会出现的错误及解决办法:
1.在执行
$ git remote add origin git@github.com:zs2018/text.git
错误提示:fatal: remote origin already exists.
解决办法:
$ git remote rm origin
然后在执行:$ git remote add origin git@github.com:zs2018/text.git 就不会报错误了
- 在执行
$ git push origin master
错误提示:error:failed to push som refs to…
解决办法:
$ git pull origin master // 先把远程服务器github上面的文件拉下来,再push 上去。
Git分支的创建与合并
以dev分支为例子,分支的操作:
1.创建分支
$ git branch dev
创建并切换分支:
git checkout -b dev
2.查看分支,当前分支前面会标一个*号
$ git branch
3.切换分支
$ git checkout master
4.当前分支与dev分支合并
git merge dev
5.删除本地分支
$ git branch -d dev
6.发送分支到远程仓库
$ git push origin dev
7.删除远程分支
$ git push origin :dev
在dev分支上修改文件并不影响master分支的文件,直至他们合并,一般流程:创建->编辑->合并->删除
=尝试=====
#创建文件test.txt
$ git add test.txt
$ git commit -m"添加文件"
#创建并切换分支
$ git branch -b dev
#任意添加文字到test.txt
$ git add test.txt
$ git commit -m"添加文件"
#切换分支回master
$ git checkout master
#查看test.txt
$ git merge dev
#再查看test.txt