1. 程式人生 > >從svn切換到git上的使用總結

從svn切換到git上的使用總結

當工作中第一次要從svn切換到git的時候其實內心還是蠻開心的,畢竟總算是跟上時代的步伐了,但是從svn切到git上是痛苦的,下面我將自己在工作中用到的svn與git做個對比,幫助大家也能順利地從svn上轉換到git上。從svn到git,最容易忘記的就是git的commit操作只是將暫存區的內容提交到本地倉庫,而不是遠端倉庫,commit的時候同時是看不到,個人感覺這一點是初次上手git最容易出錯的地方

下面的圖片很清晰的說明來一些命令和各個區域的關係
 命令影響的工作空間(以上圖片來自網路)
1.從遠端倉庫拉取程式碼到本地:git clone -b brance 遠端倉庫的地址
2.程式碼有了,那肯定要在工作區內大顯身手了,擼完程式碼也得和同事分享,那麼接下來要做的就是

  • git add . 將寫的檔案提交到暫存區
  • git commit -m “提交備註” 將暫存區的檔案提交到本地倉庫,
    切記這只是本地倉庫,還未分享出去*
  • git push 提交到遠端倉庫,這時你的同事就可以看見了

但是在多人協作的情況下事情沒有這麼簡單的,這幾個簡單的命令也是無法滿足需求的,需要在不同的分支上進行切換,那麼你就需要掌握一些關於分支的命令

  • git branch 檢視你當前所在的分支
  • git branch name 建立分支
  • git checkout -b branchName 當前所在分支建立新分支
  • git checkout branchName 切換分支
  • git merge branchName 合併branchName分支到當前分支
  • git git cherry-pick (-n) commitId(SHA) 挑揀(多個)一個提交到當前分支

比如你剛剛開發了一些需求,上司突然又給你安排了一件非常緊急的任務,要你馬上做,這時你工作目錄下的檔案又不想提交那麼這時就需要使用

  • git stash list 檢視儲存的工作進度
  • git stash 儲存工作進度
  • git stash pop 來恢復儲存的工作狀態

有時提交的時候需要比較本地和版本庫之間的差異這時就需要使用git diff 命令來了這裡寫圖片描述

此圖來源於蔣鑫的《git權威指南》一書

  • git diff 工作空間和暫存區的區別
  • git diff HEAD 工作空間和版本庫的區別
  • git diff –cached 暫存區和版本庫的區別

使用git提交程式碼的時候,我們難免不會犯錯,畢竟我們是普通的凡人,這時我們可以使用git reset來挽回我們的錯誤

  • git reset –soft 只更改版本庫的指標,不改變暫存區和工作區
  • git reset –mixed 只更改引用的指向和暫存區,不影響工作區(預設為mixed)
  • git reset –hard 影響引用的指標,暫存區,工作區

偶爾我們也需要刪除檔案這時我們可以使用

  • git rm fileName 從工作目錄和暫存區中刪除
  • git rm –cache fileName 從暫存區中刪除,工作目錄中保留