- 創(chuàng)建版本庫
$ git init test
Initialized empty Git repository in /home/tstcit/Git/test/.git/
- 添加文件修改到暫存區(qū)
$ git add read.txt
- 提交暫存區(qū)文件到倉庫
$ git commit -m "hello Git"
[master (root-commit) 57cb487] hello Git
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 read
注意使用-m命令來寫更新描述
- 查看狀態(tài)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: read
no changes added to commit (use "git add" and/or "git commit -a")
- 對比文件區(qū)別
$ git diff read
diff --git a/read b/read.txt
index e69de29..802d8e8 100644
--- a/read.txt
+++ b/read.txt
@@ -0,0 +1 @@
+sfds
- 查看日志
$ git log
commit 57cb48772f15d42d8aba170b21cfd85b50c07818
Author: lee_3do <lee3do@gmail.com>
Date: Thu Nov 12 16:37:44 2015 +0800
hello Git
- 回退版本
$ git reset --hard 57cb48772f15d42d8aba170b21cfd85b50c07818
HEAD is now at 57cb487 hello Git
57cb48772f15d42d8aba170b21cfd85b50c07818是某個commit id,可以指定任意一個存在的commit id,回退或者前進道指定版本.
HEAD指向的版本就是當前版本
- 查看所有操作命令
$ git reflog
57cb487 HEAD@{0}: reset: moving to 57cb48772f15d42d8aba170b21cfd85b50c07818
f78caa3 HEAD@{1}: commit: s
57cb487 HEAD@{2}: commit (initial): hello Git
- 丟棄工作區(qū)的修改
$ git checkout -- read.txt
這里有兩種情況:
一種是readme.txt自修改后還沒有被放到暫存區(qū)赡若,現(xiàn)在霸琴,撤銷修改就回到和版本庫一模一樣的狀態(tài)甸箱;
一種是readme.txt已經(jīng)添加到暫存區(qū)后左胞,又作了修改攒驰,現(xiàn)在把沼,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)寥院。
總之,就是讓這個文件回到最近一次git commit或git add時的狀態(tài)摄悯。
- 丟棄暫存區(qū)的修改
如果我們已經(jīng)把修改add到緩存區(qū),我們需要先丟棄暫存區(qū)的修改.
$ git reset HEAD readme.txtUnstaged changes after reset:M readme.txt
然后在執(zhí)行 git checkout -- read.txt命令丟棄工作期的修改.
- 刪除文件
$ git rm read
- 創(chuàng)建分支
$ git branch dev
- 切換分支
$ git checkout dev
- 查看分支信息
$ git branch
*dev
master
*號后表示當前分支,master是默認分支
- 分支整合
$ git merge dev
Updating d17efd8..fec145a
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)
- 刪除分支
$ git branch -d dev
Deleted branch dev (was fec145a).
- 存儲工作現(xiàn)場
$ git stash
Saved working directory and index state WIP on dev: 6224937 add mergeHEAD is now at 6224937 add merge
- 列出工作現(xiàn)場
$ git stash list
stash@{0}: WIP on dev: 6224937 add merge
- 恢復指定工作現(xiàn)場
$ git stash apply stash@{0}
- 工作現(xiàn)場出棧
$ git stash pop
恢復的同時把stash內(nèi)容也刪了.
- 查看遠程庫信息
git remote -v
- 從本地推送分支
git push origin branch-name
- 在本地創(chuàng)建和遠程分支對應的分支
git checkout -b branch-name origin/branch-name
- 建立本地分支和遠程分支的關(guān)聯(lián)
git branch --set-upstream branch-name origin/branch-name
- 從遠程抓取分支
git pull
- 打標簽
$ git tag v1.0
- 顯示標簽信息
git show <tagname>
- 創(chuàng)建帶有說明的標簽
$ git tag -a v0.1 -m "version 0.1 released" 3628164
-a指定標簽名,-m指定說明文字,3628164是commit id.
忽略某些文件
使用.gitignore文件.配置別名
$ git config --global alias.st status
以后st就表示status.
也可以修改配置文件.git/config,或者.gitconfig.