Git&SourceTree學習

Lin201230發表於2020-12-30

一.Git是什麼?

  • Git是一種程式碼託管技術(版本控制軟體),是用於多人合作開發時候的一個管理,能程式碼還原。包含幾個概念:遠端倉庫,克隆,本地倉庫,分支,提交,拉取,合併,推送等。

二.Git的相關概念

  • 遠端倉庫: 是指我們程式碼儲存在伺服器的地方,這個倉庫是我們整個團隊中所有人都可以訪問的地方。
  • 克隆: 從遠端倉庫克隆到本地的過程
  • 本地倉庫: 指的是我們開發人員從遠端倉庫克隆一份程式碼之後,儲存在我們本地的程式碼,這份程式碼只有克隆的程式碼的開發人員可以看到。
  • 分支: 我們在開發中可能會遇到多個分支進行,比如主分支(master分支)
  • 開發分支:(develop分支),但我們開發的時候,一般不在master上面進行開發,而是我們自己單獨的從主分支或者開發分支中在分出來一條分支(比如test分支),然後我們就在test分支上 進行開發,每個分支都有自己的程式碼.然後我們就在test分支上進行開發,每個分支都有自己的程式碼。
  • 提交: 在我們的程式碼開發完成之後,需要將程式碼進行提交,提交的時候需要我們將修改的檔案進行提交,並說明修改的內容。注意,此時程式碼提交只會提交到我們本地的倉庫,遠端倉庫此時還不會修改。
  • 拉取: 開發中,同一個專案可能是多人協作開發,這個時候,我們就需要將別人修改的程式碼拉取下來合併到我們自己的程式碼中。但是如果不同的開發人員修改了同一部分程式碼,那麼就可能發衝突,這時候我們需要解決完衝突時候,才能繼續將程式碼進行提交。
  • 合併: 在上面我們自己的分支開發完成之後,沒有問題之後,需要將我們的分支合併到主分支上面
  • 推送: 之前的所有操作都是在我們本地進行的,遠端倉庫的程式碼並沒有任何的改變,這個時候就需要我們將本地的程式碼推送到遠端的倉庫中,更新遠端倉庫程式碼。在推送的過程中,如果我們本地的程式碼不是最新版本的,就需要我們先將遠端程式碼拉去下來(如果有衝突重新解決衝突,提交),然後在重新推送。

二.Git有什麼用?

  • 程式碼的版本控制,分支管理,多人合作完成專案等。

三.Git常用命令

   git init          把當前的目錄變成可以管理的git倉庫,生成隱藏.git檔案。  
   git add XX       把xx檔案新增到暫存區去。
   git commit –m “XX”  提交檔案 –m 後面的是註釋。
  git status        檢視倉庫狀態
   git diff  XX      檢視XX檔案修改了那些內容
   git log          檢視歷史記錄
   git reset  --hard HEAD^ 或者 git reset  --hard HEAD~ 回退到上一個版本
						(如果想回退到100個版本,使用git reset –hard HEAD~100 )
   cat XX         檢視XX檔案內容
   git reflog       檢視歷史記錄的版本號id
   git checkout -- XX  把XX檔案在工作區的修改全部撤銷。
   git rm XX          刪除XX檔案
   git remote add origin  關聯一個遠端庫
   git push –u(第一次要用-u 以後不需要) origin master 把當前master分支推送到遠端庫
   git clone  從遠端庫中克隆
   git checkout –b dev  建立dev分支 並切換到dev分支上
   git branch  檢視當前所有的分支
   git checkout master 切換回master分支
   git merge dev    在當前的分支上合併dev分支
   git branch –d dev 刪除dev分支
   git branch name  建立分支
   git stash 把當前的工作隱藏起來 等以後恢復現場後繼續工作
   git stash list 檢視所有被隱藏的檔案列表
   git stash apply 恢復被隱藏的檔案,但是內容不刪除
   git stash drop 刪除檔案
   git stash pop 恢復檔案的同時 也刪除檔案
   git remote 檢視遠端庫的資訊
   git remote –v 檢視遠端庫的詳細資訊
   git push origin master  Git會把master分支推送到遠端庫對應的遠端分支上  

四.SourceTree是什麼?

  • SourceTree 是一個Git程式碼管理的圖形化工具。因為Git 預設只能使用命令列模式進行一系列的操作,這個工具,整個使用了圖形化。

五.SourceTree的使用

1. 基本概念:

  • 克隆(clone): 從遠端倉庫URL載入建立一個與遠端倉庫一樣的本地倉庫
  • 提交(commit): 將暫存檔案上傳到本地倉庫(我們在Finder中對本地倉庫做修改後一般都得先提交一次,再推送)
  • 檢出(checkout): 切換不同分支
  • 新增(add): 新增檔案到快取區
  • 移除(remove): 移除檔案至快取區
  • 暫存(git stash): 儲存工作現場
  • 重置(reset): 回到最近新增(add)/提交(commit)狀態
  • 合併(merge): 將多個同名檔案合併為一個檔案,該檔案包含多個同名檔案的所有內容,相同內容抵消
  • 抓取(fetch): 從遠端倉庫獲取資訊並同步至本地倉庫
  • 拉取(pull): 從遠端倉庫獲取資訊並同步至本地倉庫,並且自動執行合併(merge)操作,即 pull=fetch+merge
  • 推送(push): 將本地倉庫同步至遠端倉庫,一般推送(push)前先拉取(pull)一次,確保一致
  • 分支(branch): 建立/修改/刪除分枝
  • 標籤(tag): 給專案增添標籤
  • 工作流(Git Flow): 團隊工作時,每個人建立屬於自己的分枝(branch),確定無誤後提交到master分枝
  • 終端(terminal): 可以輸入git命令列

2. 解決合併衝突

  • 方法一:在相關的版本處,選中”衝突行”,合併區預設處於合併位置,滑鼠右鍵,選擇最終衝突地方留下的內容。
  • 方法二:如果衝突非常少,可以直接在右側欄中解決衝突。

3. 刪除某一檔案(本地和遠端同時刪除):

 git rm XX 刪除XX檔案
 git commit –m “XX” 提交檔案 –m 後面的是註釋。

相關文章