git基本常用命令

1. 初始命令

init 初始化倉庫
$ git init

clone 檢出克隆倉庫
$ git clone 倉庫名[http://git.com]

config 配置
$ git config --list                #查看配置
$ git config --system user.name    #系統級配置
$ git config --global user.name    #全局配置,系統用戶級
$ git config user.name             #倉庫級配置

help 幫助
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
remot 遠程倉庫

$ git remote -v                   #查看遠程倉庫
$ git remote show origin            #查看遠程倉庫
$ git remote add pb https://github.com/pb #添加遠程倉庫
$ git remote rename pb paul           #重命名遠程倉庫
$ git remote rm paul              #移除遠程倉庫
 2.基礎命令
status 查看文件狀態

$ git status
$ git status -s     #狀態簡覽
add 暫存已修改文件

$ git add filename
$ git add -A        #暫存所有已修改文件
commit 提交更新

$ git commit -m "commit message"
$ git commit -a -m "commit message"    #跳過暫存區,直接提交
push 推送到遠程倉庫

$ git push
$ git push origin master
fetch 從遠程倉庫拉取數據

$ git fetch [remote-name]
merge 合併分支

$ git merge
pull ( fetch + merge )

#用 fetch 和 merge 好了
3.常用命令
diff 查看修改

$ git diff              #比較 暫存區-工作區
$ git diff --staged     #比較 倉庫-暫存區
log 查看提交歷史

$ git log                 #查看之前提交版本
$ git log --stat       #展示提交的簡略統計信息
$ git reset --hard 版本號   #回滾到上一個版本可
撤銷操作

$ git commit --amend         #重新提交
$ git reset HEAD filename    #取消暫存的文件
checkout 撤銷對文件的修改

$ git checkout filename
# 會覆蓋工作區文件
# 如果暫存區有改動的文件,則從暫存區到工作區
# 如果暫存區無改動的文件,則從倉庫到工作區
tag 打標籤

複製代碼
$ git tag     #查看標籤
$ git tag -a v1.4 -m "my version 1.4"   #創建附註標籤
$ git tag v1.4                  #創建輕量標籤
$ git tag -a v1.2 9fceb02           #對某次提交後期打標籤
$ git push origin v1.5             #上傳某個標籤,GIT 默認不會 push 標籤到遠程倉庫
$ git push origin --tags           #上傳所有不在遠程倉庫的標籤
$ git checkout -b version2 v2.0.0      #檢出標籤
複製代碼
rm 移除文件

$ git rm filename         #個人感覺效果同 rm
$ git rm --cached filename  #移除暫存區中的文件
mv 移動文件

$ git mv file_from file_to    #個人感覺效果同 mv
 3.分支命令
branch 創建分支

複製代碼
$ git branch          #查看分支,前面帶星號*的,是當前分支
$ git branch testing      #創建 testing 分支
$ git branch -d testing     #刪除 testing 分支
$ git branch -v             #查看每個分支最後一次提交
$ git branch --merged     #查看已合併到當前分支的分支
$ git branch --no-merged    #查看未合併到當前分支的分支
複製代碼
checkout 切換分支

$ git checkout testing
$ git checkout -b iss53    #創建分支,並切換到新創建的分支
merge 合併分支

$ git merge hotfix           #把 hotfix 分支,合併到當前分支
$ git mergetool            #圖形化解決衝突的工具
4.底層命令
cat-file 讀取 GIT 倉庫對象

$ git cat-file -p f8a67de1d4bf0d6dbaaaf8990ffe8394e5fa88ee    #查看對象內容
$ git cat-file -p master^{tree}     #master 分支上最新的提交所指向的 tree 對象
$ git cat-file -t f8a67de1d4bf0d6dbaaaf8990ffe8394e5fa88ee    #查看對象類型
$ git cat-file -s f8a67de1d4bf0d6dbaaaf8990ffe8394e5fa88ee    #查看對象大小
hash-object 操作 GIT 倉庫對象

$ git hash-object -w filename.txt   #把 filename.txt 文件內容寫入 GIT 倉庫
update-index 操作暫存區

$ git update-index --add --cacheinfo 100644 f8a67de1d4bf0d6dbaaaf8990ffe8394e5fa88ee #創建暫存區,並把 blob 對象添加到暫存區
$ git update-index test.txt         #更新暫存區
$ git update-index --add new.txt      #向暫存區添加文件
write-tree 創建樹對象

$ git write-tree         #根據當前暫存區內容,創建樹對象
read-tree 把樹對象讀入到暫存區

$ git read-tree 754a1e2d567bbbcee762a2d7768407f4d3290fc8
$ git read-tree --prefix=bak 754a1e2d567bbbcee762a2d7768407f4d3290fc8 #把樹對象當作子樹讀入暫存區
commit-tree 創建提交對象

$ echo 'first commit' | git commit-tree 754a1e             #根據樹對象,創建提交對象
$ echo 'second commit' | git commit-tree 754a1e -p 32b8d2  #創建提交對象時,指定父提交對象
update-ref 創建引用(分支、標籤)

$ git update-ref refs/heads/master 32b8d2
#或者如下直接編輯引用文件,不提倡這麼做
$ echo "32b8d2094acef696efa3ca1b0a29639d97be1684" > .git/refs/heads/master
sysmbolic-ref 符號引用(HEAD)

$ git symbolic-ref HEAD refs/heads/test
#或者如下直接編輯引用文件,不提倡這麼做
$ echo "refs/heads/test" .git/HEAD
遠程引用

#遠程引用是隻讀的,看看就好了
gc 生成包文件

$ git gc
#作用:完整保存最新版文件,歷史版本文件保存差異
#GIT 會根據情況自己執行,一般不需要手動之行

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章