Git远程仓库的概念

  多人协同做战的时候,一般找一台电脑充当服务器的角色,天天24小时开机,其余每一个人都从这个“服务器”仓库克隆一份到本身的电脑上,而且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。git

github网站和git的关系

  github网站底层使用git技术为每一个组织和我的提供Git仓库托管服务的,省去搭建git服务器的步骤,方便全世界的开发者去共同维护一项开源项目或者私人项目。github

  因为你的本地Git仓库和GitHub仓库之间的传输是经过SSH加密的,因此须要一点设置,此处为Github的设置,链接本身的服务器,原理与此相同。ruby

 

第1步:建立SSH Key在用户主目录下(不是工程目录),看看有没有.ssh目录,若是有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,若是已经有了,可直接跳到下一步。若是没有,打开Shell(Windows下打开Git Bash),建立SSH Key:服务器

$ ssh-keygen -t rsa -C "youremail@example.com"

你须要把邮件地址换成你本身的邮件地址,而后一路回车,使用默认值便可,因为这个Key也不是用于军事目的,因此也无需设置密码。ssh

若是一切顺利的话,能够在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,能够放心地告诉任何人。fetch

第2步:添加SSH KEY。登录GitHub,打开“Account settings->SSH and GPG Keys”页面:而后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。网站

为何须要SSH KEY?

  由于GitHub须要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,因此,GitHub只要知道了你的公钥,就能够确认只有你本身才能推送。固然,GitHub容许你添加多个Key。假定你有若干电脑,你一下子在公司提交,一下子在家里提交,只要把每台电脑的Key都添加到GitHub,就能够在每台电脑上往GitHub推送了。加密

建立git仓库--从本地仓库导入远程仓库

  点击new repository填入repository name,其余保持默认,点击create repository,就成功建立了一个新的git仓库。而后Github会提示咱们能够把这仓库做为新的仓库,或者与本地仓库作关联,而后把本地仓库内容推送到github仓库url

##建立新的仓库的命令
echo "# learn_git" >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/chengfng/learn_git.git   //添加远程仓库地址 git push -u origin master      //用于首次关联本地master分支与github仓库的master分支。以后推送和拉取能够简化操做,如 git push origin master
##把本地仓库推送到github仓库
git remote add origin https://github.com/chengfng/learn_git.git
git push -u origin master

同步远程仓库到本地

git clone git@github.com:michaelliao/gitskills.git    //从远程仓库克隆到本地。spa

Git支持多种协议,包括https,但经过ssh支持的原生git协议速度最快。使用https最大的麻烦是每次推送都须要输入口令。

命令小结

git remote add origin git地址  //添加远程仓库地址

git push <远程主机名> <本地分支名>:<远程分支名> 

git push origin master    //简化的推送命令

git clone git地址       //克隆命令

git fetch 和git pull的区别

git pull = git fetch + git merge。

git fetch 只是更新了本地库的commi ID。

git pull   是把本地库更新,而后再merge,HEAD的值又发生了变化。

 

文章参考廖雪峰Git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

相关文章
相关标签/搜索