git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是[Linus Torvalds]为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
ssh
SSH 为 [Secure Shell](https://baike.baidu.com/item/Secure Shell) 的缩写,是建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。
传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道" 。
git 使用 rsa,rsa 要解决的一个核心问题是,如何使用一对特定的数字,使其中一个数字可以用来加密,而另外一个数字可以用来解密。这两个数字就是你在使用 git 和 github 的时候所遇到的 public key 也就是公钥以及 private key 私钥。本地用私钥,上传公钥。
本地创建ssh key
$ ssh-keygen -t rsa -C "your_email@youremail.com"
~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。标题建议和仓库名一致, 便于区分.
验证:$ ssh -T git@github.com
与github建立连接
1.github上建立仓库
2.本地建立仓库 git init // 把这个目录变成Git可以管理的仓库,本地多一个.git文件夹,用来跟踪管理版本库
mac第一次建仓库出现问题:xcode-select --install
git clone username@host:/path/to/repository 相当于创建一个远程仓库的克隆版本
3.关联github仓库 git remote add origin git@github.com:Hexagon-Man/HelloWorld.git
4.提交代码
git add 添加文件
git add . // 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录
git remote add origin git@github.com:xxx/xxx.git // 关联远程仓库
git commit -m "" // 提交到了 HEAD,但是还没到你的远端仓库
git push <远程主机名> <本地分支名> <远程分支名> ,例如 git push origin HEAD:refs/for/master // refs/for 的意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的
git push -u origin master // 把本地库的所有内容推送到远程库上
git仓库结构
本地仓库由 git 维护的三部分组成。第一个是 工作目录
,它持有实际文件;第二个是 暂存区(Index)
,它像个缓存区域,临时保存改动;最后是 HEAD
,它指向你最后一次提交的结果。
git命令
git checkout -b f //创建并切换分支
git branch -d f //删除分支
git push origin <branch> //分支推送到远端
git pull //获取fetch并合并到本地