[root@gitlab git_data]# git reflog bb963eb HEAD@{0}: reset: moving to bb963 a409fc4 HEAD@{1}: reset: moving to a409fc4 bb963eb HEAD@{2}: reset: moving to bb963 a409fc4 HEAD@{3}: commit: test bb963eb HEAD@{4}: commit (initial): first commit [root@gitlab git_data]#
1.6.8 标签使用
前面回滚使用的是一串字符串,又长又难记。
git tag v1.0 #→当前提交内容打一个标签(方便快速回滚),每次提交都可以打个tag。
git tag #→查看当前所有的标签
git show v1.0 #→查看当前1.0版本的详细信息
git tag v1.2 -m "version 1.2 release is test" #→创建带有说明的标签,-a指定标签名字,-m指定说明文字
git tag -d v1.0 #→我们为同一个提交版本设置了两次标签,删除之前的v1.0
测试命令
[root@gitlab git_data]# git reset --hard 0bdf2e7 HEAD is now at 0bdf2e7 modified README file [root@gitlab git_data]# git reset --hard V1.0 HEAD is now at a66370a add test dir [root@gitlab git_data]# git tag v20171129 [root@gitlab git_data]# git tag v20171129
1.6.9 对比数据git diff可以对比当前文件与仓库已保存文件的区别,知道了对README作了什么修改
后,再把它提交到仓库就放⼼多了。
git diff README
1.7 分支结构在实际的项目开发中,尽量保证master分支稳定,仅用于发布新版本,平时不要随便直接修改里面的数据文件。
那在哪干活呢?干活都在dev分支上。每个人从dev分支创建自己个人分支,开发完合并到dev分支,最后dev分支合并到master分支。所以团队的合作分支看起来会像下图那样。
1.7.1 分支切换[root@gitlab git_data]# git branch linux [root@gitlab git_data]# git branch linux * master [root@gitlab git_data]# git checkout linux 切换到分支 'linux' [root@gitlab git_data]# git branch * linux master
在linux分支进行修改
[root@gitlab git_data]# cat README [root@gitlab git_data]# echo "2017年11月30日" >> README [root@gitlab git_data]# git add . [root@gitlab git_data]# git commit -m "2017年11月30日09点10分" [linux 5a6c037] 2017年11月30日09点10分 1 file changed, 1 insertion(+) [root@gitlab git_data]# git status # 位于分支 linux 无文件要提交,干净的工作区
回到master分支
[root@gitlab git_data]# git checkout master 切换到分支 'master' [root@gitlab git_data]# cat README [root@gitlab git_data]# git log -1 commit 7015bc7b316cc95e2dfe6c53e06e3900b2edf427 Author: clsn <admin@znix.top> Date: Wed Nov 29 19:30:57 2017 +0800 123
合并代码
[root@gitlab git_data]# git merge linux 更新 7015bc7..5a6c037 Fast-forward README | 1 + 1 file changed, 1 insertion(+) [root@gitlab git_data]# git status # 位于分支 master 无文件要提交,干净的工作区 [root@gitlab git_data]# cat README 2017年11月30日
1.7.2 合并���败解决模拟冲突,在文件的同一行做不同修改
在master 分支进行修改