Git基本操作

前端小兵發表於2019-03-13

1. git簡介

  • 工作區:本地電腦存放專案檔案的地方;
  • 暫存區:在使用git管理專案檔案的時候,其本地的專案檔案會多出一個.git的資料夾,將這個.git資料夾稱之為版本庫。其中.git資料夾中包含了兩個部分,一個是暫存區(Index或者Stage),顧名思義就是暫時存放檔案的地方,通常使用add命令將工作區的檔案新增到暫存區裡;
  • 本地倉庫:使用commit命令可以將暫存區中的檔案新增到本地倉庫中;
  • 遠端倉庫:專案程式碼在遠端git伺服器上,比如專案放在github上,就是一個遠端倉庫,通常使用clone命令將遠端倉庫拷貝到本地倉庫中,開發後推送到遠端倉庫中即可

2. git配置

  1. 配置使用者名稱:git config --global user.name "your name";
  2. 配置使用者郵箱:git config --global user.email "youremail@github.com";

3. 工作區操作

新建倉庫

  • 建立新的本地倉庫:git init
  • 從遠處倉庫複製專案:git clone

提交

  • 提交工作區所有檔案到暫存區: git add .
  • 提交工作區中指定檔案到暫存區: git add [檔名]

撤銷刪除

  • 刪除工作區檔案,並且也從暫存區刪除對應檔案的記錄:git rm -f [檔名]
  • 從暫存區中刪除檔案,但是工作區依然還有該檔案:git rm --cached [檔名]
  • 拉取暫存區的檔案,並將其替換成工作區檔案:git checkout -- [檔名],簡單的說 就是當我們把工作區弄亂了,可以幫我們 拉取暫存區 恢復工作區

查詢資訊

  • 查詢當前工作區所有檔案的狀態:git status
  • 對比工作區和暫存區之間的差異,即修改後還沒有暫存的內容:git diff

4. 暫存區操作

提交檔案到本地倉庫

  • 將暫存區中的檔案提交到本地倉庫:git commit -m "commit_info"
  • 將所有已經使用git管理過的檔案暫存後一併提交,跳過add到暫存區的過程:git commit -a -m "commit_info"
  • 提交檔案時,發現漏掉幾個檔案,或者註釋寫錯了,可以修改上一次提交:git commit --amend
    • 輸入指令後會進入git vim 編輯器
    • a,io進入編輯模式
    • ESC進入操作模式
    • 在操作模式下,:wq為寫入退出,:q!不儲存退出

檢視資訊

  • 比較暫存區和本地倉庫的差異:git diff --cached
  • 指定檔案在暫存區和本地倉庫的不同:git diff [檔名] --cached;
  • 檢視提交歷史:git log
    • 引數-p展開每次提交的內容差異git log -p
    • 用-2顯示最近的兩次更新git log -p -2

版本回退

  • 將程式碼回退到上一次提交時的狀態:git reset --hard Head
  • 將程式碼回退到上上一次提交時的狀態: git reset --hard Head~1
  • 將程式碼回退到上上上一次提交時的狀態: git reset --hard Head~2
  • 檢視之前所有版本切換的操作記錄,可以通過這個命令得到的版本號回退到指定的版本:git reflog
  • 將程式碼回退到指定版本:git reset --hard [版本號]

分支管理

  1. 顯示本地倉庫的所有分支:git branch;
  2. 建立分支:git branch [分支名]
  3. 從當前所處的分支切換到其他分支:git checkout [分支名]
  4. 新建並切換到新建分支上:git checkout -b [分支名]
  5. 刪除分支:git branch -d [分支名]
  6. 刪除遠端分支: git push origin :[分支名]
  7. 將當前分支與指定分支進行合併:git merge [分支名];
  8. 檢視各個分支最後一個提交物件的資訊:git branch -v;
  9. 在遠端分支的基礎上建立新的本地分支:git checkout -b <branch-name> <remote-name>/<branch-name>
    • 即:git checkout -b [本地分支名] origin/[遠端分支名]
    • 使用例子:git checkout -b branch-dev origin/branch-dev;

5. 本地倉庫操作

  • 新增遠端倉庫,取一個變數名代替地址:git remote add [變數名] [遠端伺服器地址]
    • 示例:git remote add origin https://github.com/Saber-tgb/test-git.git
  • 指定預設上傳伺服器地址並推送分支:git push -u origin master
    • 將本地的master分支推送到origin伺服器 同時指定origin為預設上傳伺服器地址,後面就可以不加任何引數使用git push了
  • 將本地倉庫某分支推送到遠端倉庫:git push origin [分支名]
    • dev分支推送到遠端倉庫git push origin dev
  • 拉取遠端倉庫:git pull

6. 忽略檔案.gitignore

  • 我們可以建立一個名為 .gitignore 的檔案,列出要忽略的檔案模式
# 此為註釋 – 將被 Git 忽略
# 忽略所有 .a 結尾的檔案
*.a
# 但 lib.a 除外
!lib.a
# 僅僅忽略專案根目錄下的 TODO 檔案,不包括 subdir/TODO
/TODO
# 忽略 build/ 目錄下的所有檔案
build/
# 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目錄下所有副檔名為 txt 的檔案
doc/**/*.txt
複製程式碼

相關文章