git创建版本库及第一次提交
查看git版本:
$ git --version
git version 2.10.1 (Apple Git-78)
告诉git当前用户的姓名和邮件地址
$ git config user.name 查看用户名
wangchengwei
$git config --global user.name "wangchengwei"
创建版本库 在项目根目录下执行 git init
$ git init
Initialized empty Git repository in /Users/rock/IdeaProjects/webDemoTwo/.git/
查看执行后 生成的隐藏文件夹
$ ls -aF
./ ../ .git/
这个隐藏的.git 文件夹就是Git的版本库
将修改的文件提交到版本库
$ git add .
此处提交全代码是 git commit -m "测试缩写"
$ git ci -m "测试缩写"
[master 53e9a0d] 测试缩写
2 files changed, 54 insertions(+), 16 deletions(-)
撤销(回退)
git reset
git checkout
先修改一个文件并查看工作区 状态:
$ git status -s
M .idea/workspace.xml
M firstweb/src/Other.java
执行git checkout
$ git checkout .
查看当前工作区工作状态
$ git status -s
没有输出 当前工作区更改被撤销
修改文件后 执行 git add . 将文件保存到git 暂存区 查看文件状态
$ git status -s
M .idea/workspace.xml
M firstweb/src/Other.java
执行 git reset
$ git reset
Unstaged changes after reset:
M .idea/workspace.xml
M firstweb/src/Other.java
再次 执行 git status -s
$ git status -s
M .idea/workspace.xml
M firstweb/src/Other.java
此时git缓存区已经没有提交 缓存区内信息被放到了工作区
git reset +版本号 回退到某一版本 保留修改
根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
查看SHA1
查看commit
# rock @ localhost in ~/IdeaProjects/webDemoTwo on git:master o [8:03:46]
$ git rev-parse master
fada18cf5cfe54a7c10183a214e72467864dcb59
# rock @ localhost in ~/IdeaProjects/webDemoTwo on git:master o [8:04:10]
$ git rev-parse HEAD
fada18cf5cfe54a7c10183a214e72467864dcb59
# rock @ localhost in ~/IdeaProjects/webDemoTwo on git:master o [8:04:19]
$ git rev-parse refs/heads/master
fada18cf5cfe54a7c10183a214e72467864dcb59
查看tree
# rock @ localhost in ~/IdeaProjects/webDemoTwo on git:master x [8:09:00]
$ git rev-parse HEAD^{tree}
bf3b00a0b83b290dc2d6b155d56863ffd0b4f3db
# rock @ localhost in ~/IdeaProjects/webDemoTwo on git:master x [8:09:44]
$ git rev-parse refs/heads/master^{tree}
bf3b00a0b83b290dc2d6b155d56863ffd0b4f3db
# rock @ localhost in ~/IdeaProjects/webDemoTwo on git:master x [8:09:59]
$ git rev-parse master^{tree}
bf3b00a0b83b290dc2d6b155d56863ffd0b4f3db
查看parent
# rock @ localhost in ~/IdeaProjects/webDemoTwo on git:master x [8:11:54]
$ git rev-parse HEAD^
e157c352309ea6fcf662f1787990d0c552860fce
查看 commit tree parent
# rock @ localhost in ~/IdeaProjects/webDemoTwo on git:master x [8:11:22]
$ git log -1 --pretty=raw
commit fada18cf5cfe54a7c10183a214e72467864dcb59
tree bf3b00a0b83b290dc2d6b155d56863ffd0b4f3db
parent e157c352309ea6fcf662f1787990d0c552860fce
author wangchengwei <wang1100@vip.qq.com> 1510790626 +0800
committer wangchengwei <wang1100@vip.qq.com> 1510790626 +0800