项目管理切到git了,用起来总是不那么svn,好尴尬呀。
git参考手册:https://git-scm.com/book/zh/v1
windows下,
客户端下载地址:https://git-scm.com/downloads,我用的是Git-2.8.1-64-bit.exe
安装个图形界面sourcetree:https://www.sourcetreeapp.com/,我用的是SourceTreeSetup_1.8.3.exe
首先介绍几个概念:
工作区,就是一个目录,你存放项目文件的地方
版本库,工作区有一个隐藏目录.git
,就是Git的版本库
暂存区,版本库里一个重要部分stage
从一个在svn转过的人来看,这是git的精要,very important!!!
1. 随便找个空目录(C:UsersduDesktopjdk1.8.0_65gittest),试一下手git init
初始化gittest目录,创建了一个本地仓库,目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中
执行git status
2.创建README.xml, git add README.txt,把文件修改添加到暂存区,没有输出就是成功了
执行git status
3.git commit -m '我的新文件哦',把暂存区的所有内容提交到 版本库当前分支
查看状态:
4.git log,查看最近commit日志
也可以git log --pretty=oneline,精简输出
5.为了展示我们强大的回退功能,在README.txt文件多次添加内容,并多次add commit,
准备回滚了,git reset --hard HEAD~1
,回退一个版本
OK,成功!
变态,我又想回去,不回退了,可以么?答案当然是no problem,只要找到那次的commit id,就上面图中81开头的那个,不用写全,git能区分就行
git reset --hard 81bccb7
以上是提交版本库后,版本的回退
ps:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- {file}
。
一种是{file}自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是{file}已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit
或git add
时的状态
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,
第一步用命令git reset HEAD {file}
,{file}从暂存区回到工作区,也就回到了场景1
第二步按场景1操作
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考上面说的版本回退,不过前提是没有推送到远程库
参考文章:
1. Git教程
2. Git手册