Git 常用命令大全


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

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

 

 

Git 命令 - 設置與配置

Git config命令

設置用戶名,郵箱

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

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

列出所有配置

$ git config --list

 

別名

$ 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 命令 - 底層命令

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM