About Git
阿新 • • 發佈:2018-12-22
概念
分散式版本控制系統。
集中式和分散式的區別:
集中式:版本庫放在在中央伺服器,如 SVN,CVS
分散式:每個人的電腦都是版本庫
安裝
檢視系統有沒有安裝 Git:
$ git
Linux 安裝命令:
$ sudo apt install git
配置:
$ git config --global user.name "你的名字"
$ git config --global user.email "你的郵箱"
使用
初始化 Git 倉庫:
$ git init
把修改提交到暫存區:
// 新增一個檔案 $ git add filename // 新增多個檔案 $ git add filename1 filename2 ...
把暫存區內容提交到當前分支:
$ git commit -m "修改總結"
檢視倉庫當前狀態:
$ git status
檢視所做修改:
$ git diff [filename] // 比較工作區與暫存區某檔案的區別
$ git diff HEAD -- [filename] // 比較工作區與版本庫最新版本某檔案的區別
檢視提交日誌:
$ git log
$ git log --pretty=oneline // 簡潔版
$ git log --graph // 有圖
ps:版本號不是遞增,而是SHA1生成,在分散式環境下防止版本號衝突。
版本回退:
$ git reset --hard HEAD^ // 回退到上一個版本 $ git reset --hard HEAD^^ // 回退到上上個版本 $ git reset --hard HEAD~100 // 回退到上100個版本 $ git reset --hard [版本號] // 回退到某個版本號
檢視 Git 命令日誌:
$ git reflog
放棄工作區的修改,回到暫存區或版本庫最新版本:
$ git checkout -- [filename]
將暫存區修改撤銷,放回工作區:
$ git reset HEAD [filename]
將本地倉庫推到 Github 倉庫:
$ git remote add origin [遠端倉庫連結]
將當前分支推送到遠端:
$ git push -u origin master // -u 引數將本地 master 和遠端 master 聯絡起來 $ git push origin master $ git push origin [分支名稱] // 推送其他分支
克隆遠端倉庫:
$ git clone [遠端倉庫連結]
分支:
$ git branch [分支名稱] // 建立分支
$ git branch -d [分支名稱] // 刪除分支
$ git branch -D [分支名稱] // 強行刪除分支
$ git checkout [分支名稱] // 切換分支
$ git checkout -b [分支名稱] // 建立並切換分支
$ git branch // 檢視當前分支
$ git merge [分支名稱] // 將某分支合併到當前分支上
$ git merge --no-ff -m "message" [分支名稱] // 不使用 Fast Forward 模式
快照:
$ git stash // 儲存快照
$ git stash list // 檢視快照列表
$ git stash apply // 恢復快照
$ git stash drop // 刪除快照
$ git stash pop // 恢復並刪除快照
檢視遠端庫的資訊:
$ git remote
$ git remote -v // 詳細資訊
從遠端倉庫獲取程式碼:
$ git pull
將遠端倉庫分支與本地倉庫分支建立連結:
$ git branch --set-upstream-to=[遠端倉庫分支] [本地倉庫分支]
推送原生代碼到遠端倉庫:
$ git push
將本地未 push 的分叉提交歷史整理成直線:
$ git rebase
標籤:
$ git tag [標籤號] // 打標籤
$ git tag // 顯示所有標籤
$ git tag [標籤號] [版本號] // 根據版本號打標籤
$ git show [標籤號] // 檢視標籤資訊
$ git tag -d [標籤號] // 刪除標籤
$ git push origin [標籤號] // 推送標籤號到遠端
$ git push origin --tags // 推送所有標籤到遠端
$ git push origin :refs/tags/[標籤號] // 刪除遠端倉庫標籤