文章目录
1 服务器上的git
1.1 协议简介
Git 可以使用四种主要的协议来传输资料:本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 Git协议。 在此,我们将会讨论那些协议及哪些情形应该使用(或避免使用)他们。
- 本地协议:本地共享文件系统
- HTTP协议:以使用 HTTP 协议的用户名/密码的基础授权,免去设置 SSH 公钥。
- SSH协议:SSH 协议也是一个验证授权的网络协议,向服务器上传公钥可以实现免密登录
- Git协议:访问无需授权,传输最快,但是不需要为用户授权
1.2 gitlab
1.3 GitHub合作开发项目(详细参考progit这本书里的介绍)
1.4 gitlab、github和gitee的区别
github 是一个基于git实现在线代码托管的仓库,向互联网开放,企业版要收钱。
gitee 即码云,是 oschina 免费给企业用的,不用自己搭建环境。
gitlab 类似 github,一般用于在企业内搭建git私服,要自己搭环境。
第一,github针对企业要收费,那当然是不同意,毕竟都想节约资金,那就还能使用gitee,或者gitlab了。
第二,但是码云虽然是免费的,而且不用自己搭环境,但是企业中把项目放在别人的服务器上,始终没有安全感。
第三,因此,衍生出了gitlab,就是用于企业搭私服,而且还是在自己的服务器上
2 储藏工作与清理(stash)
应用场景:在某个分支做了一些事情,然后临时需要切换到另一个分支做一些事情,但是又不想现在就提交当前还未做完事情的分支,现在怎么办?
答案:使用git stash命令
2.1 场景应用
- 当前在master分支,使用git status查看然后index.html是modified的
- 运行git stash命令,再运行git status,此时是working directory clean的
- 运行git stash list,查看修改存储的栈的列表,如下:
$ git stash list
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert “added file_size”
stash@{2}: WIP on master: 21d80a5 added number to log - 运行 git stash apply 可以将刚刚的工作出栈恢复
也可以通过名字来指定,如运行 git stash apply stash@{2} - 运行 git stash drop 加上将要移除的储藏的名字来移除它,如:
$ git stash drop stash@{0}
Dropped stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43)