Git 大全:經常使用 Git 命令清單

Git 大全

 

1、Git GUI 客戶端

 

Git 客戶端下載(Windows)css

TortoiseGit 客戶端下載(Windows)html

Sourcetree 客戶端下載(Windows、Mac)git

Git Extensions 客戶端下載(Windows、Mac、Linux)github

SmartGit 客戶端下載(Windows、Mac、Linux)瀏覽器

GitEye 客戶端下載 (Windows、Mac、Linux)app

gitg 客戶端下載(Windows、Linux)eclipse

ungit 客戶端下載(Windows、Mac、Linux)yii

git-cola 客戶端下載(Windows、Mac、Linux)ide

Tower 客戶端下載(Mac)gitlab

Gitbox 客戶端下載(Mac)

GitUp 客戶端下載(Mac)

giggle 客戶端下載(Linux)

Pocket Git 客戶端下載(Andorid)

Working Copy 客戶端下載(IOS)

Git2Go 客戶端下載(IOS))

GitDrive 客戶端下載(IOS)

 

2、Git IDE 插件

 

Eclipse、Myeclipse 插件下載

Netbeans 插件下載

IntelliJ IDEA 插件下載

Visual Studio 插件下載

Atom 插件下載

Sublime Text 插件下載

 

3、Git 瀏覽器插件

 

Git 瀏覽器插件下載(Chrome、Firefox、Safari、Opera,支持碼雲和Github)

Octotree 瀏覽器插件下載(Chrome,支持Github)

GitLab-TreeView 瀏覽器插件下載(Chrome,支持GitLab)

 

4、在線 Git 代碼託管平臺

 

碼雲 Gitee 官網

GitHub 官網

GitLab 官網

Bitbucket 官網

 

5、搭建 Git 服務

 

GitLab 開源版本下載

Gitblit 開源版本下載

Gogs 開源版本下載

Gitea 開源版本下載

Gitosis 開源版本下載

Gitolite 開源版本下載

GitStack 開源版本下載

Gidder開源版本下載

 

6、Git 教程

 

廖雪峯 | Git教程

Git - Book

Pro Git

Git 簡易指南

菜鳥教程 | Git教程

博客園 | 深刻淺出Git教程

W3Cschool | Git教程

易百教程 | Git教程

Backlog | Git入門

CSDN | Git 使用詳細教程

Lufficc | Git教程

 

7、Git 經常使用命令

 

倉庫

 

# 在當前目錄新建一個Git代碼庫
$ git init

# 新建一個目錄,將其初始化爲Git代碼庫
$ git init [project-name]

# 下載一個項目和它的整個代碼歷史
$ git clone [url]

 

配置

 

# 顯示當前的Git配置
$ git config --list

# 編輯Git配置文件
$ git config -e [--global]

# 設置提交代碼時的用戶信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"

 

增長/刪除文件

 

# 添加指定文件到暫存區
$ git add [file1] [file2] ...

# 添加指定目錄到暫存區,包括子目錄
$ git add [dir]

# 添加當前目錄的全部文件到暫存區
$ git add .

# 添加每一個變化前,都會要求確認
# 對於同一個文件的多處變化,能夠實現分次提交
$ git add -p

# 刪除工做區文件,而且將此次刪除放入暫存區
$ git rm [file1] [file2] ...

# 中止追蹤指定文件,但該文件會保留在工做區
$ git rm --cached [file]

# 更名文件,而且將這個更名放入暫存區
$ git mv [file-original] [file-renamed]

 

代碼提交

 

# 提交暫存區到倉庫區
$ git commit -m [message]

# 提交暫存區的指定文件到倉庫區
$ git commit [file1] [file2] ... -m [message]

# 提交工做區自上次commit以後的變化,直接到倉庫區
$ git commit -a

# 提交時顯示全部diff信息
$ git commit -v

# 使用一次新的commit,替代上一次提交
# 若是代碼沒有任何新變化,則用來改寫上一次commit的提交信息
$ git commit --amend -m [message]

# 重作上一次commit,幷包括指定文件的新變化
$ git commit --amend [file1] [file2] ...

 

分支

 

# 列出全部本地分支
$ git branch

# 列出全部遠程分支
$ git branch -r

# 列出全部本地分支和遠程分支
$ git branch -a

# 新建一個分支,但依然停留在當前分支
$ git branch [branch-name]

# 新建一個分支,並切換到該分支
$ git checkout -b [branch]

# 新建一個分支,指向指定commit
$ git branch [branch] [commit]

# 新建一個分支,與指定的遠程分支創建追蹤關係
$ git branch --track [branch] [remote-branch]

# 切換到指定分支,並更新工做區
$ git checkout [branch-name]

# 切換到上一個分支
$ git checkout -

# 創建追蹤關係,在現有分支與指定的遠程分支之間
$ git branch --set-upstream [branch] [remote-branch]

# 合併指定分支到當前分支
$ git merge [branch]

# 選擇一個commit,合併進當前分支
$ git cherry-pick [commit]

# 刪除分支
$ git branch -d [branch-name]

# 刪除遠程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

 

標籤

 

# 列出全部tag
$ git tag

# 新建一個tag在當前commit
$ git tag [tag]

# 新建一個tag在指定commit
$ git tag [tag] [commit]

# 刪除本地tag
$ git tag -d [tag]

# 刪除遠程tag
$ git push origin :refs/tags/[tagName]

# 查看tag信息
$ git show [tag]

# 提交指定tag
$ git push [remote] [tag]

# 提交全部tag
$ git push [remote] --tags

# 新建一個分支,指向某個tag
$ git checkout -b [branch] [tag]

 

查看信息

 

# 顯示有變動的文件
$ git status

# 顯示當前分支的版本歷史
$ git log

# 顯示commit歷史,以及每次commit發生變動的文件
$ git log --stat

# 搜索提交歷史,根據關鍵詞
$ git log -S [keyword]

# 顯示某個commit以後的全部變更,每一個commit佔據一行
$ git log [tag] HEAD --pretty=format:%s

# 顯示某個commit以後的全部變更,其"提交說明"必須符合搜索條件
$ git log [tag] HEAD --grep feature

# 顯示某個文件的版本歷史,包括文件更名
$ git log --follow [file]
$ git whatchanged [file]

# 顯示指定文件相關的每一次diff
$ git log -p [file]

# 顯示過去5次提交
$ git log -5 --pretty --oneline

# 顯示全部提交過的用戶,按提交次數排序
$ git shortlog -sn

# 顯示指定文件是什麼人在什麼時間修改過
$ git blame [file]

# 顯示暫存區和工做區的差別
$ git diff

# 顯示暫存區和上一個commit的差別
$ git diff --cached [file]

# 顯示工做區與當前分支最新commit之間的差別
$ git diff HEAD

# 顯示兩次提交之間的差別
$ git diff [first-branch]...[second-branch]

# 顯示今天你寫了多少行代碼
$ git diff --shortstat "@{0 day ago}"

# 顯示某次提交的元數據和內容變化
$ git show [commit]

# 顯示某次提交發生變化的文件
$ git show --name-only [commit]

# 顯示某次提交時,某個文件的內容
$ git show [commit]:[filename]

# 顯示當前分支的最近幾回提交
$ git reflog

 

遠程同步

 

# 下載遠程倉庫的全部變更
$ git fetch [remote]

# 顯示全部遠程倉庫
$ git remote -v

# 顯示某個遠程倉庫的信息
$ git remote show [remote]

# 增長一個新的遠程倉庫,並命名
$ git remote add [shortname] [url]

# 取回遠程倉庫的變化,並與本地分支合併
$ git pull [remote] [branch]

# 上傳本地指定分支到遠程倉庫
$ git push [remote] [branch]

# 強行推送當前分支到遠程倉庫,即便有衝突
$ git push [remote] --force

# 推送全部分支到遠程倉庫
$ git push [remote] --all

 

撤銷

 

# 恢復暫存區的指定文件到工做區
$ git checkout [file]

# 恢復某個commit的指定文件到暫存區和工做區
$ git checkout [commit] [file]

# 恢復暫存區的全部文件到工做區
$ git checkout .

# 重置暫存區的指定文件,與上一次commit保持一致,但工做區不變
$ git reset [file]

# 重置暫存區與工做區,與上一次commit保持一致
$ git reset --hard

# 重置當前分支的指針爲指定commit,同時重置暫存區,但工做區不變
$ git reset [commit]

# 重置當前分支的HEAD爲指定commit,同時重置暫存區和工做區,與指定commit一致
$ git reset --hard [commit]

# 重置當前HEAD爲指定commit,但保持暫存區和工做區不變
$ git reset --keep [commit]

# 新建一個commit,用來撤銷指定commit
# 後者的全部變化都將被前者抵消,而且應用到當前分支
$ git revert [commit]

暫時將未提交的變化移除,稍後再移入
$ git stash
$ git stash pop

 

其餘

 

# 生成一個可供發佈的壓縮包
$ git archive

以上經常使用命令來自阮一峯老師的博客文章《經常使用 Git 命令清單》,感謝阮老師!

相關文章
相關標籤/搜索