git常用使用場景

Reiser實驗室發表於2019-01-18

使用 git 很長一段時間了,覺得乾巴巴的指令集合用處真心不大,結合場景使用才能理解的更深入(雖然也可能更片面)。下面是我整理的常見的場景:

撤銷

1. 沒有add,撤銷工作區的更改(從暫緩區恢復到工作區)

git checkout fileName
複製程式碼

2. 已經add,撤銷快取區的更改

git reset fileName
複製程式碼

3. 已經commit,覆蓋提交(修改檔案為正確的之後,add之後)

 git commit —amend
複製程式碼

4. 已經commit,撤銷提交(—hard 使得工作區也會被撤銷到以前版本)

git reset --hard fileName
複製程式碼

5. 已經push且在遠端分支上,本地撤銷提交後強制提交

git push origin branch1 -f
複製程式碼

線上提交程式碼

1. Clone自己的專案

git clone git@github.com:leonzone/test.git
git push origin master
複製程式碼

2. 關聯本地已有專案

git remote add origin 
git@github.com:leonzone/test.git
git push -u origin master(-u 以後預設push到origin)
複製程式碼

遠端分支

1. 新建遠端分支

git check -b develop
git push origin develop: develop
複製程式碼

2. 同步程式碼到遠端分支

git push origin develop
複製程式碼

3. 同步遠端分支到本地

git checkout -b develop origin/develop
複製程式碼

新增忽略

.gitignore只能忽略那些原來沒有被track的檔案,如果某些檔案已經被納入了版本管理中,則修改.gitignore是無效的。那麼解決方法就是先把本地快取刪除(改變成未track狀態),然後再提交:

git rm -r –-cached filePath 
//新增 filePath 到 .gitignore
git commit -m “remove xx” 
複製程式碼

檢視變動

  1. 檢視歷史中的多個 commit:log
    1. 檢視詳細改動: git log -p
    2. 檢視大致改動:git log --stat
  2. 檢視具體某個 commit:show
    1. 要看最新 commit ,直接輸入 git show ;要看指定 commit ,輸入 git show commit的引用或SHA-1
    2. 如果還要指定檔案,在 git show 的最後加上檔名
  3. 檢視未提交的內容:diff
    1. 檢視暫存區和上一條 commit 的區別:git diff --staged(或 --cached)
    2. 檢視工作目錄和暫存區的區別:git diff 不加選項引數
    3. 檢視工作目錄和上一條 commit 的區別:git diff HEAD

相關文章