Git 經常使用命令大全

根據官方文檔整理,以及相關示例,git

官方文檔: https://git-scm.com/book/en/v2github

 

 

Git 命令 - 設置與配置windows

Git config命令服務器

設置用戶名,郵箱app

$ git config --global user.name "John Doe"less

$ git config --global user.email johndoe@example.com編輯器

列出全部配置svn

$ git config --list工具

 

別名fetch

$ git config --global alias.co checkout

$ git config --global alias.br branch

$ git config --global alias.ci commit

$ git config --global alias.st status

$ git config --global alias.unstage 'reset HEAD --'

$ git config --global alias.last 'log -1 HEAD'

$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

pull默認使用選項 --rebase

$ git config --global pull.rebase true

 

憑證存儲

$ git config --global credential.helper cache

$ git config --global credential.helper store --file ~/.my-credentials

 

配置默認編輯器

$ git config --global core.editor emacs

配置commit默認信息

$ git config --global commit.template ~/.gitmessage.txt

默認分頁器(more,【less】)

$ git config --global core.pager ''

windows 轉換回車換行符CR,LF ---> LF

$ git config --global core.autocrlf true false(取消)

 

Git 命令 - 獲取與建立項目

git init 命令

建立一個初始化倉庫

$ git init  默認分支 master

建立裸倉庫(服務器沒有工做目錄)

$ git init --bare --shared #shared 自動修改倉庫目錄權限爲可寫

初始化倉庫目錄

description 文件僅供 GitWeb 程序使用

config 文件包含項目特有的配置選項

info 目錄包含一個全局性排除(global exclude)文件

.gitignore 文件中的忽略模式(ignored patterns)

hooks 目錄包含客戶端或服務端的鉤子腳本

HEAD 文件、(尚待建立的)index 文件,和 objects 目錄、refs 目錄。

objects 目錄存儲全部數據內容refs 目錄存儲指向數據(分支)的提交對象的指針;

HEAD 文件指示目前被檢出的分支;index 文件保存暫存區信息

 

git clone命令

克隆現有倉庫

$ git clone https://github.com/libgit2/libgit2 mylibgit

解包

$ git clone repo.bundle repo

克隆初始化更新含子模塊的倉庫

$ git clone --recursive https://github.com/chaconinc/MainProject

 

Git 命令 - 快照基礎

git add 命令

跟蹤新文件

$ git add README

交互式暫存

$ git add -i

$ git add --interactive

 

git status 命令

檢查當前文件狀態

$ git status

狀態簡覽

$ git status -s

 M README -->

MM Rakefile -->右M修改未暫存左M 修改並暫存

A  lib/git.rb -->新添加到暫存區中

M  lib/simplegit.rb  -->

?? LICENSE.txt  -->新添加未跟蹤

 

git diff 命令

查看修改(比較的是工做目錄中當前文件和暫存區域快照之間的差別,

也就是修改以後尚未暫存起來的變化內容。)

$ git diff

查看已暫存將要提交

$ git diff --cached

$ git diff --staged

提交準側(檢查空白錯誤)

$ git diff --check

三點語法比較分支

$ git diff master...contrib

顯示合併後狀態

$ git rerere diff

 

git reset 命令

取消暫存的文件

$ git reset HEAD CONTRIBUTING.md

更多....

 

撤銷合併

$ git reset --hard HEAD~

 

git rm 命令

移除文件

$ git rm PROJECTS.md

倉庫中刪除不繼續跟蹤,磁盤保留

$ git rm --cached README

 

git mv 命令

移動文件更名

$ git mv file_from file_to

 

git clean 命令

清除工做目錄演戲

默認狀況下,git clean 命令 只會移除沒有忽略的未跟蹤文件。

$ git clean -d -n

強制清除

$ git clean -f -d

 

 

Git 命令 - 分支與合併

git branch 命令

建立分支

$ git branch testing

查看分支

$ git branch

查看每一個分支的最後一次提交

$ git branch -v

查看已合併到當前分支

$ git branch --merged

查看未合併分支

$ git branch --no-merged

刪除分支(未合併分支刪除會失效)

$ git branch -d testing

強制刪除分支

$ git branch -D testing

修改跟蹤分支

$ git branch -u origin/serverfix

查看全部跟蹤分支

$ git branch -vv

 

git checkout 命令

分支切換

$ git checkout testing

跟蹤遠程分支

$ git checkout --track origin/serverfix

跟蹤遠程分支並設置本地名稱

$ git checkout -b sf origin/serverfix

 

git merge  命令

合併分支

$ git merge <branch>

退出合併

$ git merge --abort

合併忽略空白

$ git merge -Xignore-space-change whitespace

 

git mergetool 命令外部的合併幫助工具。

 

git log 命令只會移除沒有忽略的未跟蹤文件。

經常使用

$ git log --pretty=oneline --graph

$ git log --graph --oneline --decorate --all

更多...

 

分支所在對象

$ git log --oneline --decorate

在 experiment 分支中而不在 master 分支中的提交」

$ git log master..experiment

$ git log refA..refB

$ git log ^refA refB

$ git log refB --not refA

 

 

git stash 命令

儲藏

$ git stash

查看

$ git stash list

恢復

$ git stash apply

 更多....

 

git tag 命令

打標籤

$ git tag -a v1.4 -m 'my version 1.4'

查看

$ git show v1.4

後期根據提交打標籤

$ git tag -a v1.2 9fceb02

推送標籤

$ git push origin v1.5

所有推送

$ git push origin --tags

刪除標籤

$ git tag -d v1.4

 

 

Git 命令 - 項目分享與更新

git fetch 命令

從遠程倉庫拉取

$ git fetch [remote-name]

 

git pull 命令

git pull 命令基本上就是 git fetch 和 git merge 命令的組合體

$ git pull --rebase  變基合併

 

git push 命令

推送到遠程倉庫

$ git push [remote-name] [branch-name]

刪除遠程分支

$ git push origin --delete serverfix

 

git remote 命令

查看遠程倉庫

$ git remote -v

$ git remote show origin

添加遠程倉庫

$ git remote add pb https://github.com/paulboone/ticgit

遠程倉庫重命名

$ git remote rename pb paul

移除遠程倉庫

$ git remote rm paul

 

git archive 命令

建立快照歸檔文件

$ git archive master --prefix='project/' | gzip > `git describe master`.tar.gz

 

git submodule 命令

添加子模塊

$ git submodule add https://github.com/chaconinc/DbConnector

 

 

Git 命令 - 檢查與比較

git show 命令

查看標籤信息

$ git show v1.4

查看一次提交

$ git show 1c002d

$ git show test

 

git shortlog 命令

製做提交簡報

$ git shortlog --no-merges master --not v1.0.1

 

git describe 命令

生成一個構建號

$ git describe master

 

Git 命令 - 調試

git bisect 命令

https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E4%BD%BF%E7%94%A8-Git-%E8%B0%83%E8%AF%95#r_binary_search

git blame 命令 (文件標註)

-L 選項來限制輸出範圍在第12至22行:

$ git blame -L 12,22 simplegit.rb

 

git grep 命令

https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E6%90%9C%E7%B4%A2#r_git_grep

 

 

Git 命令 - 補丁

git cherry-pick 命令

變基與揀選工做流

$ git cherry-pick e43a6fd3

 

git rebase 命令

變基

$ git rebase master

截取特性分支上的另外一個特性分支,而後變基到其餘分支

$ git rebase --onto master server client

以上命令的意思是:「取出 client 分支,找出處於 client 分支和 server 分支的共同祖先以後的修改,

而後把它們在 master 分支上重放一遍」

變基

$ git rebase --onto 622e88 9c68fdc

 

git revert 命令

還原提交

$ git revert -m 1 HEAD

 

Git 命令 - 郵件

$ git apply  應用補丁

$ git am  應用補丁

$ git format-patch  生成補丁

$ git imap-send 上傳發送補丁

$ git send-email  郵件發送補丁

$ git request-pull  生成推送消息

 

 

 

Git 命令 - 外部系統

git svn 命令

克隆subvers 倉庫

$ git svn clone file:///tmp/test-svn -T trunk -b branches -t tags

$ git svn clone file:///tmp/test-svn -s

提交到subversion 服務器

$ git svn dcommit

 

 

git fast-import  命令

從其餘版本控制系統導入

 

Git 命令 - 管理

 

Git 命令 - 底層命令

相關文章
相關標籤/搜索