Git,版本控制工具
版本控制是Git的一个主要关键词,git可以在开发中管理我们的文件,方便地查看记录,备份之前的版本。
1.1 Git可以解决以下问题
多人协同开发
追踪一个文件的历史记录
提高工作效率
记录开发过程
统计工作量
1.2 常见的版本控制器
Git
SVN(Subversion)
CVS(Concurrent Version System)
VSS(Micorosoft Visual SourceSafe)
TFS(Team Foundation Server)
Visual Studio Online
但影响力最大、使用最广泛的还是Git
1.3 版本控制分类
版本控制主要分为以下三个
本地版本控制
集中版本控制(如,SVN)
分布式版本控制(如,Git)
1.3.1 本地版本控制
用于记录文件的每次更新,可以对每个版本做一个快照,适合个人用。
1.3.2 集中版本控制
所以的版本数据都保持到服务器上,开发者从服务器上同步更新或上传自己的修改。不联网就看不到历史数据。但所有数据都保存在单一服务器上,发现风险过大。
1.3.3 分布式版本控制
所有的版本信息都同步到本地的每个用户,这样可以在本地查看所有版本历史,可以离线在本地提交,只需在联网时push到相应的服务器或其他用户那里。只要有一个用户的设备没有问题,就可以恢复所有的数据。但这增加了本地存储空间的占用。
2. Git历史
Git的诞生起源于Linux,Linux的创造者Lnus就是早期要维护众多开发者的不同版本,花费了大量的时间,绝大多数时间都花在了提交补丁和保存归档的繁琐事务上。知道2002年Linux项目组启用了一个分布式版本控制工具BitKeeper来管理和维护代码。2005年,BitKeep与Linux停止合作,Linus通过总结使用BitKeeper时的经验和教训,开发出了自己的分布式版本控制工具,Git。
Git是免费的、开源的,最初Git是为辅助Linux内核开发的,来取代BitKeeper。
Git是目前世界上最先进的分布式版本控制系统
3. Git环境配置
进入下载Git,安装无脑下一步就可。
安装成功后会有三个
Git Bash(Linux风格√)
Git CMD(Windows风格)
Git GUI(图形界面)
3.1Git命令
git config -l(查看配置)
git config --system --list (查看本地系统配置,在Git\etc\gitconfig目录下)
git config --global --list(查看全局配置,在C:\Users\root.gitconfig目录下)
3.2 设置用户名和邮箱
git config --global user.name "sangui"(设置用户名)
git config --global user.eamil "shouhaoze@stu.sjzu.edu.cn"(设置邮箱)
4. Git基本理论
4.1 工作区域
Git本地有三个工作区域,一个远程仓库
工作目录(Working Directory,平时存放代码的地方)
暂存区(Stage/Index,本质上只是个文件,保存即将提交到到文件列表信息)
仓库区或者本地仓库(Repository或Git Directory,就是安全存放数据的位置,这里有你提交到所有版本的数据。其中Head指向最新放入仓库的版本)
远程的Git仓库(Remote Directory,可以简单的认为是你项目组中的一台电脑用于远程交换)
4.2 工作流程
在工作目录中添加、修改代码
将需要进行版本管理的文件放入暂存区域
将暂存区域的文件提交到Git仓库
因此,Git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
5. Git项目搭建
5.1 创建工作目录与常用指令
工作目录(WorkSpace)一般就是你希望Git帮助管理的文件夹,可以是你项目的目录,也可以是一个空的目录,
5.2 本地仓库搭建
5.2.1 创建全新的仓库
需要在GIT管理的项目的根目录执行:
git init
5.2.2 克隆远程仓库
将远程服务器上的仓库完全镜像一份到本地:
git clone [url]
6. Git文件操作
6.1 文件4种状态
Untracked:未跟踪。此文件在文件夹中,但并没有加入到Git库,不参与版本控制。使用git add命令,状态变成Staged
Unmodify:文件已经入库,未修改。即版本库中的文件快照内容与文件夹中完全一致。修改文件,状态变为Modified。使用git rm命令移出版本库,状态变成Untracked。
Modified:文件已修改,仅仅是修改,并没有进行其他操作。使用git add命令,状态变为staged。使用git checkout,则放弃修改,状态变成Unmodify。
Staged:暂存状态。执行git commit命令将修改同步到库里,这时库中的文件和本地文件又变为一致,文件为Unmodify状态。执行git reset HEAD filename命令取消暂存,文件状态变为Modified
6.2 查看文件状态
6.2.1 查看指定文件状态
git status [filename]
6.2.2 查看所有文件状态
git status
6.3 提交文件
6.3.1 添加文件到暂存区
git add .
6.3.2 提交暂存区的文件(提交到本地仓库)
git commit -m "消息内容"
6.4 忽略文件
有时候不想把某些文件提交,或有些文件没必要提交的,可以在主目录下建立“.gitignore”文件,
*.txt:忽略所有.txt结尾的文件
!lib.txt:但lib.txt除外
/temp:忽略所有文件,但不忽略temp目录里的文件
build/:忽略build目录里的所有文件
doc/*.txt:忽略doc目录下的所有txt文件,但不忽略doc子目录里的txt文件
7.使用Github
设置本机绑定SSH公钥,实现免密码登录。Github是远程仓库,我们平时工作在本地仓库
在主目录下新建文件夹.ssh。在此处输入bash命令,ssh-keygen -t rsa,输入之后会生成两个文件:
id_rsa.pub
id_rsa
将公钥信息public key添加到Github账户中就行了。
在Github中新建仓库就可以
- 微信
- 赶快加我聊天吧
- 赶快加我聊天吧