一、Git 和 GitHub区别
1、git
git是一个版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具,其作用就是可以让你更好的管理你的程序,比如你原来提交过的内容,以后虽然修改了,但是通过git这个工具,可以把你原来提交的内容重现出来,这样对于你后来才意识到的一些错误的更改,可以进行还原。
版本管理存储在.git文件中,可以本地代码提交后恢复
2、github
github是一个网站,就是每个程序员自己写的程序,可以在github上建立一个网上的仓库,你每次提交的时候可以把代码提交到网上,这样你的每次提交,别人也都可以看到你的代码,同时别人也可以帮你修改你的代码,这种开源的方式非常方便程序员之间的交流和学习。
github是一个非常适合程序员交流的网站,很多国际上的技术大牛都在github上有自己的开源代码,其他人只要申请个账号就可以随意的看到这些大牛写的程序。同时国内的很多互联网公司如百度,阿里等,也在github上公布有开源的代码,感兴趣的程序员也可以自己查找着看一些。
总结:
git可以认为是一个软件,能够帮你更好的写程序,github则是一个网站,这个网站可以帮助程序员之间互相交流和学习。
二、如何使用Git托管项目到Github
1、安装Git
使用以下命令来检测是否成功安装:
$ git --version
git version 2.12.2.windows.2
2、使用Git上传本地项目代码到GitHub
1)、创建本地版本库
在空白地方点击右键--Git Bash Here,创建一个空目录:mkdir Wechat
进入该目录,通过git init命令把这个目录变成Git可以管理的仓库:
$ cd WeChat/
$ git init
新建一个文件test.txt,并提交到本地库
2)、在GitHub上创建一个远程仓库
3)、复制远程仓库的HTTPS地址
4)、在本地创建远程仓库别名
$ git remote add origin https://github.com/Solin520/WeChat.git
5)、把本地库的内容推送到远程库上
$ git push origin master
输入GitHub账号的用户名和密码,点击Login
执行到此处报错:
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/jiangyangll/NewClient.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
出错原因:
原因是github中的README.md文件不在本地代码目录中
解决方案:
通过命令 $ git pull --rebase origin master 进行代码合并【注:pull=fetch+merge]
执行上面代码后可以看到本地代码库中多了README.md文件
再次执行语句 $ git push -u origin master即可完成代码上传到github 或 再次执行 $ git push origin master 命令行
6)、在GitHub上查看对应的项目WeChat,可以看到本地项目的文件已经提交到远程仓库上了
三、从GitHub下载项目到本地
如果GitHub上没有项目就自己创建一个,方法同上。这里我们使用上面创建的项目WeChat
1、复制项目WeChat的HTTPS地址
2、打开你想要存储的该项目的位置(如F:\GitProject),鼠标右键,点击Git Bash Here,弹出Git命令窗口,输入git clone 你复制的项目地址,如下所示,然后回车
3、通过上图可以看出,克隆远程仓库项目到本地成功。
4、测试
新建一个文件apple.txt,提交到本地仓库
由于git clone [远程地址]命令会自动创建一个origin远程地址别名
所以可以直接通过 $ git push origin master 命令将本地库的内容推送到远程库上
输入GitHub账号的用户名和密码,点击Login
在GitHub上查看对应的项目WeChat,可以看到本地项目新增的文件apple.txt已经提交到远程仓库上了
四、SSH免密连接
在使用HTTPS协议连接github时,使用git pull、git push等命令时需要输入密码,让人感觉很烦,我们可以使用ssh协议链接实现免密连接。
1、生成SSH私钥公钥
ssh-keygen -t rsa -C "你的邮箱" 邮箱可以随便填
2、将生成的私钥公钥文件移动到C:\Users\Solin\.ssh目录下
3、登录GitHub账户,在setting中设置。
4、打开Git Bash客户端(管理员身份运行)执行测试命令测试是否配置成功(会自动在.ssh目录生成known_hosts文件把私钥配置进去)
测试命令:$ ssh -T git@github.com
出现上图的提示就说明链接成功了。
如果提示:git@github.com: Permission denied (publickey)
请参考:https://blog.csdn.net/qq_32786873/article/details/80947195
5、配置好之后,使用方法与https协议的使用方法一致,只需要将https链接换成ssh链接即可。
如果之前使用的是https协议,现在想换成ssh协议,只需要使用命令 git remote set-url url来调整你的url,或者重新增加一个远程仓库地址
使用命令 $ git remote -v 查看你当前的 remote url
如果是以上的结果那么说明此项目是使用https协议进行访问的(如果地址是git开头则表示是ssh协议)
登录github,复制项目对应的ssh链接,然后使用命令 git remote set-url url来调整你的url,或者重新增加一个远程仓库地址
如果是以上的结果那么说明此项目是使用https协议进行访问的(如果地址是git开头则表示是ssh协议)
登录github,复制项目对应的ssh链接,然后使用命令 git remote set-url url来调整你的url,或者重新增加一个远程仓库地址
然后就可以愉快的使用git pull , git push等命令,再也不用输入烦人的密码了。
总结:
初次使用ssh协议实现免密连接大概需要三个步骤:
1、生成密钥对
2、设置远程仓库上的公钥
3、设置git的 remote url 为ssh链接
1,2两个步骤初次设置过以后,以后使用都不需要再次设置,第3个步骤视以后项目的remote url而定