版本控制系统(VCS)
- 版本控制系统(Version Control System)是一种记录一个或若干文件内容变化历史的系统。
- 集中化的版本控制系统(CVS,SVN)*
分布式版本控制系统(Git)
Git 的诞生
- Git是目前世界上最先进的分布式版本控制系统(没有之一)
- 好不好用,看看它的开发者是谁就知道了:Linux之父 Linus Torvalds
- Linux内核社区原本使用的是名为BitKeeper的商业化版本控制工具,2005年,因为社区内有人试图破解BitKeeper的协议,BitMover公司收回了免费使用BitKeeper的权力;
- Linus原本可以出面道个歉,继续使用BitKeeper,然而并没有… Linus大神仅用了两周时间,自已用C写了一个分布式版本控制系统,于是Git诞生了!
Git 与GitHub
- Git: 是一种开源的版本控制系统,可以高效的管理项目版本,同时也是一种协议;
- GitHub: 是一个面向开源及私有软件项目的托管平台, 私有项目收费;
- GitLab: 社区版相当于私有版的github,可以自己搭建GitLab仓库服务器,企业版收费;
- Gitee:码云(gitee.com)是开源中国推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管;
- linus大叔*
Git基本原理
- git add files 把当前文件放入暂存区域。
- git commit 给暂存区域生成快照并提交。
- git reset – files 用来撤销最后一次git add files,你也可以用git reset 撤销所有暂存区域文件。
- git checkout – files 把文件从暂存区域复制到工作目录,用来丢弃本地修改。
- git commit -a 相当于运行 git add 把所有当前目录下的文件加入暂存区域再运行git commit.
- git commit files 进行一次包含最后一次提交加上工作目录中文件快照的提交。并且文件被添加到暂存区域。
- git checkout HEAD – files 回滚到复制最后一次提交。
Git基本命令
1 | git status 查看代码修改状态 |
git常见冲突解决
1 | CONFLICT (content): Merge conflict in readme.md |
紧急bug修复
1 | git stash :暂存当前编辑的代码 |
快捷键设置
经常使用git命令,设置快捷键会方便很多,设置方式如下:
1
git config --global alias.st status
或者:
修改~/.gitconfig,加入以下部分:
1
2
3
4
5
6
7
8
9
10
11[alias]
co = checkout
ci = commit
st = status
br = branch
sh = stash
sp = stash pop
pu = push
pr = pull -r
rb = rebase
lg = log -p
###git 命令搜集
下载git项目下某个目录下的文件例如:想下载链接https://github.com/grpc/grpc/tree/master/examples/python/helloworld这个目录
1 | tree/master 改为 trunk |
- 更多命令:git help