Git
1 | Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 |
安装git
1 | yum install -y git |
Git全局配置
1 | git config --global user.name "garywu" #配置git使用用户 |
初始化git目录
1 | #创建git工作目录 |
常规使用
创建数据 –> 提交数据
1 | cd git_data && touch README #在工作目录创建测试文件 |
直接提交(针对已存在的文件)
1 | README文件上一步已经存在 |
删除暂存区数据
方式一:
1 | touch test.txt |
方式二:
1 | git add test.txt #将文件添加到暂存区 |
重命名
1 | git mv kkk.txt test.txt |
查看提交历史记录
1 | #查看提交历史记录 |
还原历史数据
1 | Git服务程序中有一个叫做HEAD的版本指针,每次进行数据还原可以理解为断开当前版本的软链并与指定版本进行软链 |
- 从本地仓库回滚到指定版本号
1 | [root@gitlab git_data]# git reset --hard 2c1897 |
- 还原未来数据
1 | 回滚后,之前的数据相当于是未来数据,那么假如说回滚错误,如何重新回滚? |
给当前版本打标签Tag
1 | 前面回滚使用的是一串字符串,又长又难记。 |
1 | git tag v20171111 #给当前版本打标签 |
利用tag标签回滚
1 | 给当前版本打上标签后,切换到其他版本模拟tag回滚 |
对比数据
1 | git diff <filename> |
1 | [root@gitlab git_data]# echo "test" >> kkk.txt |
Git分支结构
1 | 在实际的项目开发中,尽量保证master分支稳定,仅用于发布新版本,一般禁止直接修改里面的数据文件。开发可以在dev分支上。 |
1 | [root@gitlab git_data]# git status |
创建分支
1 | [root@gitlab git_data]# git branch dev #创建dev分支 |
1 | 注:切换分支之前请务必commit,否则修改会丢失。 |
分支自动合并
- 自动合并:只有文件同一行内容没有冲突,就可以自动合并
1 | [root@gitlab git_data]# git checkout master #切换到master分支 |
- 合并冲突: 文件冲突 – 文件的同一行有不同的内容
1 | 模拟冲突(分别修改不同分支文件中的同一行的内容并提交): |
1 | 合并冲突: |
- 手动解决合并冲突
1 | 修改提交的文件,保留要留下的内容,其他冲突内容删除 |
- 删除dev分支
1 | git branch -d dev |
Git 服务器仓库上传下载代码
安装gitlab
1 | https://wuyanteng.github.io/2017/12/05/Gitlab%E9%83%A8%E7%BD%B2CentOS7/ |
创建仓库
1 | #全局配置 |
测试
1 | 在Gitlab中的README.md中编辑添加一些内容,然后点击下面的提交Commit changes |
git客户端pull下载代码库
1 | git pull #非首次下载仓库直接git pull即可 |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2017/12/16/Git版本控制/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!