一、Git 工作流程
一般工作流程如下:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
二、四个工作区域
1、Workspace: 工作区,就是平时存放项目代码的地方
2、Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
3、Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
4、Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
三、文件的四种状态
1、Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add和get commit 状态变为Staged.
2、Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
3、Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
4、Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
四、Git安装
五、Git初始配置
1、配置git使用用户:
git config –‐global user.name “wyf”
2、配置git使用邮箱:
git config –‐global user.email “wyf@qq.com”
3、语法高亮:
git config –‐global color.ui true
4、检查部署情况方法一:
[root@gitlab ~]# git config –‐listuser.name=wyfuser.email=wyf@qq.comcolor.ui=true
5、检查部署情况方法二:
[root@git ~]# cat .gitconfig[user]name = wyfemail = wyf@qq.com
六、Git常用命令
1、初始化,创建版本库
2、添加文件跟踪
3、由工作区提交到本地仓库
4、查看git的状态
5、提交至远程仓库流程
git clone git@172.1.1.11:gitlab-instance-c4c6e366/monitoring.gitcd monitoringtouch README.mdgit add README.mdgit commit -m "add README"git push -u origin master
6、其他常用命令
| 命令 | 命令说明 |
|---|---|
| add | 添加文件内容至暂存区 |
| bisect | 通过二分查找定位引入 bug 的变更 |
| branch | 列出、创建或删除分支 |
| checkout | 检出一个分支或路径到工作区 |
| clone | 克隆一个版本库到一个新目录 |
| commit | 记录变更到版本库 |
| diff | 显示提交之间、提交和工作区之间等的差异 |
| fetch | 从另外一个版本库下载对象和引用 |
| grep | 输出和模式匹配的行 |
| init | 创建一个空的 |
| Git | 版本库或重新初始化一个已存在的版本库 |
| log | 显示提交日志 |
| merge | 合并两个或更多开发历史 |
| mv | 移动或重命名一个文件、目录或符号链接 |
| pull | 获取并合并另外的版本库或一个本地分支 |
| push | 更新远程引用和相关的对象 |
| rebase | 本地提交转移至更新后的上游分支中 |
| reset | 重置当前HEAD到指定状态 |
| rm | 从工作区和索引中删除文件 |
| show | 显示各种类型的对象 |
| status | 显示工作区状态 |
| tag | 创建、列出、删除或校验一个GPG签名的 tag 对象 |
