我們一般把版本庫也叫倉庫(repository),其實我們可以簡單的把它看成乙個目錄,只不過目錄裡面的檔案都會由 git 進行管理,當我們對檔案進行修改、刪除、git 都可以對其進行跟蹤。
那麼,如何在本地設定乙個**庫呢? 很簡單,使用 git init 命令就可以把乙個目錄變為 git 可以管理的倉庫。
$ git init
initialized empty git repository in /users/yuge/documents/git_test/.git/
這樣,就在本地建立了乙個版本庫,並且是乙個空的版本庫。在這個資料夾下有個.git 的目錄,git 就是用這個目錄來跟蹤管理版本庫的。 在linux 下使用ls -al 命令來進行檢視。
可以在 git_test
資料夾下新建乙個檔案 readme.txt
,內容如下:
git is a distributed version control system.
git is free software.
此時使用 git status 命令可以檢視當前工作區狀態,如下:
$ git status
on branch master
initial commit
untracked files:
(use "git add ..." to include in what will be committed)
readme.txt
nothing added to commit but untracked files present (use "git add" to track)
提交檔案修改需要兩步:
第一步,使用 git add 將檔案新增到git版本庫;
第二步,使用 git commit 把檔案提交到git版本庫。
可以多次使用 git add 新增多個檔案,然後使用一次 git commit 提交多個檔案,內容如下:
$ git add readme.txt
$ git add test.txt
$ git status
on branch master
changes to be committed:
(use "git reset head ..." to unstage)
modified: readme.txt
new file: test.txt
$ git commit -m "git add test"
[master b201285] git add test
2 files changed, 2 insertions(+)
create mode 100644 test.txt
使用 git diff 命令可檢視具體修改細節,如下:
$ git diff
diff --git a/readme.txt b/readme.txt
index 9247db6..4923cda 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,3 @@
git is a distributed version control system.
git is free software.
+new line
使用 git log 命令可以檢視版本歷史記錄,如下:
$ git log
commit b201285c7a470a70e9637827c558247bb4326cdc
author: yuge date: tue jul 25 14:12:02 2017 +0800
git add test
commit 4af2d92cab54ea21af90c5feb2cc0d895c74dbea
author: yuge date: tue jul 25 14:05:29 2017 +0800
add readme.txt
在git中,用 head 表示當前版本,上乙個版本就是 head^,上上乙個版本就是head^^,當然往上100個版本寫100個 ^ 比較容易數不過來,所以寫成 head~100。
$ git reset --hard head^
head is now at 4af2d92 add readme.txt
使用sha256值回退,如下:
$ git reset --hard 3628164
使用 git reflog 可檢視命令歷史,如下:
$ git reflog
4af2d92 head@: reset: moving to head^
25606f8 head@: commit: add test
4af2d92 head@: reset: moving to head^
b201285 head@: commit: git add test
4af2d92 head@: commit (initial): add readme.txt
使用 git checkout 丟棄工作區的修改
$ git checkout -- readme.txt
命令 git checkout -- readme.txt 意思就是,把 readme.txt 檔案在工作區的修改全部撤銷,這裡有兩種情況:
一種是 readme.txt 自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是 readme.txt 已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次 git commit 或 git add 時的狀態。
Git常用命令總結
原文 author joseph lee e mail fdlixiaojun gmail.com 基礎概念 git是分布式版本控制系統,在每個主機上都儲存這版本庫的完整映象,這於cvs,svn 等集中式版本控制系統不同,集中式版本控制系統僅是在伺服器上儲存有所有資訊。git檔案更改後是以快照的方式...
git常用命令總結
一 分支新建與切換 git中的分支,本質上僅僅是個指向 commit 物件的可變指標。1 新建乙個分支 比如新建乙個名為testing的分支 git branch testing 即是在當前commit物件上新建了乙個分支指標 注 head指向當前所在的分支,用cat git head可以檢視 2 ...
git常用命令總結
檢查git 是否安裝 git 新增git 個人資訊 git config global user.name your name git config global user.email email example.com 建立乙個版本庫 mkdir learngit 建立乙個空目錄 cd learn...