Git知识
版本控制
1、本地版本控制
记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用
2、集中版本控制 SVN
所有的版本数据都储存在服务器上,用户的本地只有自己以前所同步的版本。
3、分布式版本控制 Git
所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以在本地提交,只需在联网时push到相应的服务器。
Git是目前世界上最先进的分布式版本控制系统
程序
1、Git Bash
Unix与Linux风格的命令行,使用最多,推荐最多
2、Git CMD
Windows风格的命令行
3、Git GUI
图形界面的Git
Git配置
1、查看用户名和邮箱
1 | git config --global --list |
2、配置用户名和邮箱
用户名
1 | git config --global user.name "zishuQ" |
邮箱
1 | git config --global user.email "1574908708@qq.com" |
Git基本理论
工作区域
1、工作区(Working Directory):
平时存放代码的地方
2、暂存区(Stage/Index):
用于临时存放你的改动,事实上只是一个文件,保存即将提交到文件列表信息
3、本地仓库(Repository/Git Directory)
安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD
指向最新放入仓库的版本
4、远程仓库(Remote Directory):
托管代码的服务器
工作流程
1、在工作区添加、修改文件
2、将需要进行版本管理的文件放入暂存区域
3、将暂存区域的文件提交到git仓库
git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
Git项目搭建
工作目录(WorkSpace)一般就是用Git管理的文件夹,可以是项目的目录,也可以是空目录
1、创建全新的仓库
1 | git init |
2、克隆远程仓库
1 | git clone [url] |
Git文件操作
文件状态
- Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制。通过
git add
状态变为Staged
- Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致。这种类型的文件有两种去处,如果它修改,而变为
Modified
。如果使用git rm
移出版本库,则成为Untracked
文件 - Modified:文件已修改,仅仅是修改,并没有进行其他的操作。这个文件也有两个去处,通过
git add
可进入暂存态,使用git checkout
则丢弃修改过,返回Unmodify
状态,这个git checkout
即从库中取出文件,覆盖当前修改! - Staged:暂存状态。执行
git commit
则将修改同步到库中,这时候库中的文件和本地文件又变为一致,文件未Unmodify
状态。执行git reset HEAD filename
取消暂存,文件状态为Modified
查看文件状态
1 | # 查看指定文件状态 |
忽略文件
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等
在主目录下建立.gitignore
文件,此文件有如下规则:
- 忽略文件中的空行或以井号(#)开始的行将会被忽略
- 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等
- 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
- 如果名称的最前面有一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略
- 如果名称的最后面有一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
1 | *.txt # 忽略所有 .txt结尾的文件,这样的话上传就不会被选中! |
使用远程仓库 github 或者 gitee
1、注册账号
2、配置
3、ssh公钥设置
Git分支
两个分支互不干扰
1 | # 列出所有本地分支 |
如果出现了冲突,协商保留好谁的代码。
一般master是主分支稳定版,dev分支是开发版。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zishuQ's blog!