1.1, 版本管理的演变
1,VCS(版本控制系统) 出现前
用目录拷贝区别不同版本
公共文件容易被覆盖
成员沟通成本高
2, 集中式 VCS
有集中的版本管理服务器
具备文件版本管理和分支管理能力
集成效率有明显的提高
客户端必须时刻和服务器相连
3, 分布式 VCS
服务端和客户端都有完整的版本库
脱离服务端, 客户端照样可以管理版本
查看历史和版本比较等多数操作, 都不需要访问服务器, 比集中式 VCS 更能提高版本管理效率
4,Git 的特点
最优的存储能力
非凡的性能
开源
容易做备份
支持离线操作
容易定制工作流程
学习顺序: Git -> GitHub -> GitLab
1.2, 安装 Git
https://git-scm.com/downloads
1.3, 使用 Git 之前需要做的最小配置
- ## 设置 name 和 email 地址, 出现问题发邮件给你
- $ Git config --global user.name 'dy201'
- $ Git config --global user.email 'dy201@163.com'
- ##local ,global system (缺省 = local)
$ Git config --local 对某特定仓库起作用
$ Git config --global 对所有仓库起作用
$ Git config --global 对系统所有登录的用户起作用
- ## 显示 config 的配置, 加 --list
- $ Git config --list --local
- $ Git config --list --global
- $ Git config --list --global
1.4, 创建第一个仓库并配置 local 用户信息
建 Git 仓库
两种场景:
1, 把已有的项目代码纳入 Git 管理
$ cd 项目代码所在的文件夹
$ Git init
2, 新建的项目直接用 Git 管理 (下面举例说明)
$ cd 某个文件夹
- $ Git init you_project #会在当前路径下创建和项目名称同名的文件 (隐藏文件夹. Git)
- $ cd your_project
文件准备:
- $ cd /data/
- k@k-PC MINGW64 /data
- $ ll
- total 1
-rw-r--r-- 1 k 197121 13 三月 22 23:14 readme
操作:
- ## 代码存放目录 (自己创建)
- $ cd /user/dy201/101-GitRunner/git_learning/
- k@k-PC MINGW64 /user/dy201/101-GitRunner
- ## 设置为项目目录
- $ Git init git_learning
- Initialized empty Git repository in D:/Git/user/dy201/101-GitRunner/git_learning/.Git/
- ## 进入项目目录, 查看结构
- k@k-PC MINGW64 /user/dy201/101-GitRunner/git_learning (master)
- $ ls -al
- total 4
drwxr-xr-x 1 k 197121 0 三月 22 23:09 ./
drwxr-xr-x 1 k 197121 0 三月 22 23:09 ../
drwxr-xr-x 1 k 197121 0 三月 22 23:09 .Git/
- ## 在项目目录中放入数据
- $ cp /data/readme .
- ## 将数据加入 Git
- $ Git add readme
- warning: LF will be replaced by CRLF in readme.
- The file will have its original line endings in your working directory
- ## 查看数据状态
- $ Git status
- On branch master
- No commits yet
- Changes to be committed:
- (use "git rm --cached <file>..." to unstage)
- new file: readme
- ## 提交数据
- $ Git commit -m "add readme"
- [master (root-commit) 226b8bf] add readme
- 1 file changed, 2 insertions(+)
- create mode 100644 readme
- ## 查看 Git 日志
- $ Git log
- commit 226b8bf13841275f3404945a3853f1b4d1adc28c (HEAD -> master)
- Author: k <15757388@163.com>
- Date: Fri Mar 22 23:21:29 2019 +0800
- add readme
使用时, local 优先级比 global 高
1.5, 通过几次 commit 来认识工作区和暂存区
1.6, 给文件重命名的简便方法
1.7, 通过 Git log 查看版本演变历史
1.8,Gitk: 通过图形界面工具来查看版本历史
1.9, 探秘 Git 目录
1.10,Commit,tree 和 blob 三个对象之间的关系
1.11, 小练习: 数一数 tree 的个数
1.12, 分离头指针情况下的注意事项
1.13, 进一步理解 HEAD 和 branch
来源: http://www.bubuko.com/infodetail-2996627.html