Git 大全
一、Git GUI 用戶端
Git 用戶端下載下傳(Windows)
TortoiseGit 用戶端下載下傳(Windows)
Sourcetree 用戶端下載下傳(Windows、Mac)
Git Extensions 用戶端下載下傳(Windows、Mac、Linux)
SmartGit 用戶端下載下傳(Windows、Mac、Linux)
GitEye 用戶端下載下傳 (Windows、Mac、Linux)
gitg 用戶端下載下傳(Windows、Linux)
ungit 用戶端下載下傳(Windows、Mac、Linux)
git-cola 用戶端下載下傳(Windows、Mac、Linux)
Tower 用戶端下載下傳(Mac)
Gitbox 用戶端下載下傳(Mac)
GitUp 用戶端下載下傳(Mac)
giggle 用戶端下載下傳(Linux)
Pocket Git 用戶端下載下傳(Andorid)
Working Copy 用戶端下載下傳(IOS)
Git2Go 用戶端下載下傳(IOS))
GitDrive 用戶端下載下傳(IOS)
二、Git IDE 插件
Eclipse、Myeclipse 插件下載下傳
Netbeans 插件下載下傳
IntelliJ IDEA 插件下載下傳
Visual Studio 插件下載下傳
Atom 插件下載下傳
Sublime Text 插件下載下傳
三、Git 浏覽器插件
Git 浏覽器插件下載下傳(Chrome、Firefox、Safari、Opera,支援碼雲和Github)
Octotree 浏覽器插件下載下傳(Chrome,支援Github)
GitLab-TreeView 浏覽器插件下載下傳(Chrome,支援GitLab)
四、線上 Git 代碼托管平台
碼雲 Gitee 官網
GitHub 官網
GitLab 官網
Bitbucket 官網
五、搭建 Git 服務
GitLab 開源版本下載下傳
Gitblit 開源版本下載下傳
Gogs 開源版本下載下傳
Gitea 開源版本下載下傳
Gitosis 開源版本下載下傳
Gitolite 開源版本下載下傳
GitStack 開源版本下載下傳
Gidder開源版本下載下傳
六、Git 教程
廖雪峰 | Git教程
Git - Book
Pro Git
Git 簡易指南
菜鳥教程 | Git教程
部落格園 | 深入淺出Git教程
W3Cschool | Git教程
易百教程 | Git教程
Backlog | Git入門
CSDN | Git 使用詳細教程
Lufficc | Git教程
七、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 指令清單》,感謝阮老師!
版權聲明:本文為CSDN部落客「weixin_33752045」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/weixin_33752045/article/details/92389431