Git&SourceTree學習
一.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 後面的是註釋。
相關文章
- 學習學習再學習
- 深度學習——學習目錄——學習中……深度學習
- 深度學習(一)深度學習學習資料深度學習
- 深度學習學習框架深度學習框架
- 強化學習-學習筆記3 | 策略學習強化學習筆記
- 學習產品快報09 | “CSDN學習”:增加學習提醒,提示學習不忘記
- 【強化學習】強化學習/增強學習/再勵學習介紹強化學習
- 學習ThinkPHP,學習OneThinkPHP
- 前端學習之Bootstrap學習前端boot
- 學而習之,成就學習
- 前端週刊第62期:學習學習再學習前端
- 深度學習+深度強化學習+遷移學習【研修】深度學習強化學習遷移學習
- 強化學習-學習筆記2 | 價值學習強化學習筆記
- Golang 學習——interface 介面學習(一)Golang
- Golang 學習——interface 介面學習(二)Golang
- 深度學習學習7步驟深度學習
- 《JAVA學習指南》學習筆記Java筆記
- Go學習【二】學習資料Go
- java學習之道 --- 如何學習java?Java
- 免殺學習-基礎學習
- 強化學習10——迭代學習強化學習
- 程式設計學習MarkDown學習程式設計
- this學習
- 學習
- 【區塊鏈學習】《區塊鏈學習指南》學習筆記區塊鏈筆記
- Flutter學習記錄(一)Dart學習FlutterDart
- 從學習語文聊聊如何學習
- kitten 學習教程(一) 學習筆記筆記
- 整合學習(一):簡述整合學習
- 學習態度和學習計劃
- 學習筆記----圖論學習中筆記圖論
- 酷學習:學習可以很酷很好玩
- 強化學習-學習筆記13 | 多智慧體強化學習強化學習筆記智慧體
- 學習程式設計 vs 學習電腦科學程式設計
- 駁 《駁 《駁 《駁 《停止學習框架》》》》、《駁 《駁 《停止學習框架》》》、《駁 《停止學習框架》》、《停止學習框架》框架
- 學習筆記【深度學習2】:AI、機器學習、表示學習、深度學習,第一次大衰退筆記深度學習AI機器學習
- 學習英語,首先還是要有學習的習慣
- spark RDD的學習,filter函式的學習,split函式的學習SparkFilter函式