快速引導:在放置程式碼的目錄下,進行初始化,並設定使用者的資訊
# git init
# git config --global user.name "user"
# git config --global user.email "user@xxx.com”
# git config -–global core.editor vi
// 從 GitLab 下載儲存庫 (Remote Repository)
# git clone <repo URL>
// 在工作區 (Workspace) 內指定特定檔案建立索引
# git add readme.txt
// 工作目錄 (Working Directory) 內所有檔案建立索引
# git add .
// 將建立索引的檔案提交至本地資料庫 (Local Repository)
# git commit -m "todo ...."
// 如果 GitLab 目錄內沒有其他分支,可以直接用 git push
# git push
// 上傳所有分支至 GitLab 目錄
# git push --all origin
Git 指令操作說明
全局配置
命令 | 說明 |
---|---|
git config -l | 查看全局配置 |
git config --global user.name [name] | 設定用户名 |
git config --global user.email [email] | 設定E-Mail |
git config --global core.editor vi | 設定文字編輯器為 vi |
git config --global alias.st status | status 縮寫為 st |
git config --global alias.co checkout | checkout 縮寫為 co |
git config --global alias.br branch | branch 縮寫為 br |
git config --global alias.ci commit | commit 縮寫為 ci |
建立儲存庫
命令 | 說明 |
---|---|
git init | 初始化本地儲存庫 |
git clone <url> | 下載雲端儲存庫 |
修改和提交
命令 | 說明 |
---|---|
git status | 查看所有文件狀態 |
git status [FILE] | 查看指定文件狀態 |
git add . | 提交當前目錄所有文件到暫存區 |
git add [FILE] | 提交指定文件到暫存區 |
git commit -m [message] | 提交暫存區到本地儲存庫,message代表說明信息 |
git commit --amend | 提交暫存區到本地儲存庫,覆蓋上一次提交 |
git diff | 查看變更内容,對比工作目錄與暫存區 |
git diff --cached | 查看變内容,對比暫存區與本地儲存庫 |
git diff master origin/master | 查看變更内容,對比本地代码库與本地伺服器儲存庫,origin代表伺服 器的意思 |
git mv [old] [new] | 文件改名 |
git rm [FILE] | 刪除文件 |
git rm --cached [FILE] | 停止跟踪文件但不刪除 |
git diff HEAD^ HEAD // 比較最新版與最新版前一次版本的差異
git diff ---stat // 檢視更新的簡略統計資訊。
git diff --name-only // 在更新的訊息後方顯示更動的檔案列表。
git diff --name-status // 顯示新增、更動、刪除的檔案列表。
git diff --diff-filter= [(A|C|D|M|R|T)…[*]]] // 配合檔案狀態來篩選顯示檔案列表。
A = Added
C = Copied
M = Modified
R = Renamed
T = Changed
D =Delete
查看提交log
命令 | 說明 |
---|---|
git log | 查看儲存庫日志 |
git log -p | 查看儲存庫日志,同时顯示具体修改 |
git log -2 | 查看儲存庫最近两次提交的log |
git log [FILE] | 查看指定文件的儲存庫log |
git log --graph --pretty=oneline --abbrev-commit -20 | 查看儲存庫log,用圖形說明 |
git reflog | 查看操作記錄 |
版本回撤
命令 | 說明 |
---|---|
git reset HEAD | 将文件從暫存區中回退到工作區,git add的反操作 |
git reset 版本号(前七位) | 退回到指定版本 |
git reset --soft HEAD | 只改變提交點,工作目錄與暫存區中内容都不改變 |
git reset --hard HEAD | 退回到當前版本,撤銷工作目錄與暫存區中的所有内容 |
git reset --hard HEAD^ | 退回到上一个版本 |
git reset --hard HEAD^^ | 退回到上上一个版本 |
git reset --hard HEAD~2 | 退回到上上一个版本 |
git chechout [FILE] | 撤銷某一个文件當前的修改 |
git revert [CommitID] | 撤銷指定的commit,會新增一个commit,將版本改回修改前 |
git clean -xfd | 清除所有非GIT跟踪文件 |
分支branch操作
命令 | 說明 |
---|---|
git branch | 查看本地分支 |
git branch -r | 查看伺服器分支 |
git branch -a | 查看所有分支 |
git branch [branch-name] | 新建本地分支,注意不会自動切换,依然停留在當前分支 |
git branch -d [branch-name] | 刪除分支,注意只能刪除已经合併過的分支 |
git checkout [branch/tag] | 切换到指定分支,并更新工作區 |
git checkout -b [branch-name] | 新建本地分支,併切換到分支 |
git tag | 查看所有本地標簽 |
git tag [tagname] | 建立標簽,基于最新版本提交 |
git tag -a [tagname] -m [message] | 建立標簽,基于最新版本提交,附带信息 |
git tag -a [tagname] -m [message] [CommitID] | 建立標簽,基于指定的Commit,附带信息 |
git tag -d [tagname] | 刪除標簽 |
git show [tagname] | 查看指定標簽信息 |
git push origin [tagname]:refs/tags/[tagname] | 更新指定分支 |
合并与衍合
命令 | 說明 |
---|---|
git merge [branch] | 合併指定分支到當前分支 |
git rebase [branch] | 合併指定分支到當前分支,將當前分支的修改連接在指定分支之后 |
git fetch [branch] | 將伺服器儲存庫的代碼更新到本地的儲存庫 |
远程操作
命令 | 說明 |
---|---|
git remote -v | 查看伺服器版本庫信息 |
git remote show [remote] | 查看指定伺服器版本庫信息 |
git remote add [remote] [url] | 添加伺服器版本庫 |
git fetch [remote] | 從伺服器儲存庫 获取代码到本地儲存庫 |
git pull [remote] [branch] | 下載代碼及快速合併 |
git push [remote] [branch] | 上傳代碼及快速合併 |
git push [remote]:[branch/tag-name] | 刪除 伺服器分支或標簽 |
git push --tags | 上傳所有標簽 |
參考資料
https://b31jsc.github.io/2018/06/13/Git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/