刚接触Git有很多困惑
1.为什么要公钥和私钥呢,到底有啥用呢(详细点)
2.为什么要把我的公钥加到Git项目之中保存起来
3.比如,某路人甲 想给我的项目提供一些代码,他没有我的公钥可以push给我吗?
1. 2. GIT服务器上存储的是公钥,你本地存储的是私钥,当你push本地代码库到远程代码库,服务器会要求你出示私钥,并且用你出示的私钥和它的公钥配对来完成认证。由于使用的是不对称加密,所以公钥可以公开,只要保管好私钥就可以。
3. 路人甲只要没有私钥,所以无法push。这样才能保证开源项目的完整性,否则阿猫阿狗都去push代码,那项目不就乱套了?如果路人甲想对你的项目做出贡献,那么以GITHUB为例,他会发送一个pull request给你,然后由你来审核他作出的改变,如果审核通过,那么你就可以将他的pull request合并到你工程的某一分支中。这里只以GITHUB为例,私有的GIT服务器可能没有类似功能,比如GITLAB就没有pull request。
http://bbs.csdn.net/topics/390599148