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