Git指令回顧
由於在Lab1到Lab3的操作中專案的版本結構都比較簡單且並不涉及多人協作,實驗者基本只使用比較常用的git指令(如:git專案庫初始化,繫結github線上庫,新增追蹤檔案,推送到github線上庫等),並未對版本結構複雜的專案進行管理。
這裡對git的基本指令及較複雜版本管理指令做出回顧整理,一方面用作考試複習參考,一方面方便之後專案過程中回顧參照。
時間原因 口才有限
部分參考與引用:
https://www.jianshu.com/p/cbd5cd504f14
https://zhuanlan.zhihu.com/p/389814854
https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
廖雪峰官方網站相關
基礎:初始化 commit push 配置等
初始化本地git庫
git init
先行進行git庫上傳的使用者資訊配置
git config user.name 'name'
git config user.email 'email'
可新增--global引數全域性生效
取消關聯/關聯本地倉庫到遠端倉庫
git remote add origin 'Repository URL'
git remote remove origin
將檔案新增到暫存區
git add 'File Path'
提交專案到本地倉庫
git commit (-m "Message")
將遠端主機更新取回本地
git fetch origin
拉取遠端分支專案檔案到本地
git pull origin master
(報錯時:git pull --rebase origin master)
提交本地分支程式碼到遠端分支
git push -u origin masetr:master
將本地master分支專案檔案提交到遠端庫的master分支
也可
git push -u origin master
克隆指定分支
克隆倉庫獲取所有分支再切換至指定分支
克隆倉庫而只獲取一個分支
git clone --branch <branchname> <remote-repo-url>
or
git clone -b <branchname> <remote-repo-url>
提交比較
顯示工作目錄和索引的不同
git diff
顯示索引和最近一次提交的不同
git diff --cached
顯示工作目錄和最近一次提交的不同
git diff HEAD
提交日誌
顯示所有提交
git log
顯示某幾條提交資訊
git log -n <某個數值>
僅顯示合併提交
git log --merges
檢視該檔案每次提交記錄
git log <file>
檢視每次詳細修改內容的diff
git log -p <file>
檢視最近兩次詳細修改內容的diff
git log -p -2
檢視提交統計資訊
git log --stat
檔案重新命名/移動
重新命名
git mv <fileName1> <fileName2>
移動
git mv <fileName> <Path>
改名檔案,並且將這個改名放入暫存區
git mv [file-original] [file-renamed]
強制重新命名或移動
這個檔案已經存在,將要覆蓋掉
git mv -f <myFile> <existingFile>
分支管理
檢視本地/遠端分支
git branch -a
在專案根目錄執行以檢視所在專案所有分支及遠端分支
刪去-a引數檢視所有本地分支
使用-r引數檢視所有遠端分支
建立分支
git branch <newBranch>
重新命名分支
git branch -m <oldBranchName> <newBranchName>
刪除分支
git branch -d <branchName>
刪除遠端分支
git push origin --delete <branch-name>
git branch -dr <remote/branch>
編輯分支介紹
git branch <branchName> --edit-description
建立分支追蹤關係
git branch --set-upstream <branch> <remote-branch>
切換分支
git checkout -b <newBranch> <origin/newBranch>
第一次建立並切換分支時可執行
newBranch為新建立的本地分支,origin/newBranch是遠端分支,在建立本地分支的同時與遠端分支建立追蹤關係
git checkout <newBranch>
本地已有分支時使用,切換到本地的分支newBranch
git checkout -
切換到上一個分支
前一條命令等效
git branch <newBranch>
和git checkout <newBranch>
兩條命令
分支合併
回滾與暫存區使用
重置暫存區的指定檔案,與上一次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 revert HEAD
暫時將未提交的變化移除,稍後再移入
git stash
git stash pop
列所有stash
git stash list
恢復暫存的內容
git stash apply
刪除暫存區
git stash drop
*commit標籤
列出所有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]