版本管理工具git的使用總結
在git安裝好之後,還需要做註冊一個github賬號,作為遠端倉庫,之後需要做一些配置:
這裡一跳而過,不多說,完成之後,我們就可以使用git了。
-
git分割槽
工作區:就是我們開啟資料夾所能看到的內容,比如windows系統盤下面的某個資料夾,就可以看
做是一個工作區。
快取區:就是需要提交的那部分檔案
版本庫:就是已經提交,被納入版本控制之列的檔案
工作區有一個隱藏的目錄.git,這個不算工作區,而是Git的版本庫
git的版本庫裡存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有Git為我們自動建立的第一個分支 master,以及指向 master的一個指標叫 HEAD 。
2. git的使用——基本操作
在本地建立資料夾,切換進入資料夾,開啟git命令視窗,相關操作的命令如下:
(1)初始化git倉庫 git init
git add 檔名 #將工作區的檔案新增到快取區中
git commit -m “註釋” #將快取區的檔案內容提交到版本庫中
(2)新增檔案到倉庫 git add 檔名
(3)提交程式碼到倉庫 git commit -m '註釋'
(4)push程式碼到伺服器 git push origin master
(5)檢視分支:git branch
(6)建立分支:git branch <分支名>
(7)切換分支:git checkout <分支名>
(8)建立+切換分支:git checkout -b <分支名>
(9)合併某分支到當前分支:git merge <分支名>
(10)刪除分支:git branch -d <分支名>
(11)git log --graph命令可以看到分支合併圖。
(12)檢視遠端庫資訊,使用git remote -v;
(13)本地新建的分支如果不推送到遠端,其他開發者是看不到的,從本地推送分支,使用git push origin 自己的分支名,如果推送失敗,先用git pull抓取遠端的新提交;
(14)在本地建立和遠端分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠端分支的名稱最好一致;(branch-name:本地分支名,也就是自己的分支)
(15)建立本地分支和遠端分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;
(16)從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突。
(17)git clone 遠端git地址 : 克隆一個遠端專案
(18)git status 檢視檔案的狀態,所謂檔案狀態的變化就是檔案在工作區,快取區,版本庫之間不斷的遷移
git status -u 檢視狀態
(19)git merge --no-ff -m '註釋說明' 自己的分支名 將自己的分支程式碼合併到開發分支上
(20)讓git顯示顏色:git config --global color.ui true
(21)要關聯一個遠端庫,使用命令
git remote add origin 遠端倉庫地址,比如:
git remote add origin https://github.com/JavaCodeMood/study_python_demo.git
關聯後,使用命令 git push -u origin master第一次推送master分支的所有內容;
此後,每次本地提交後,只要有必要,就可以使用命令 git push origin master推送最新修改;
(22)檢視遠端伺服器的相關資訊:git remote -v
(23)git remote show origin(別名) 也可以檢視遠端伺服器的相關資訊
3.git的使用——快照
(1)git log 檢視提交的日誌
(2)gitk 以圖形化的方式展現提交的日誌
(3)git log -1 檢視最近的一次提交
(4)git log -2 檢視最近的兩次提交
(5)git log --oneline 檢視提交的日誌,一行顯示
(6)git log --oneline --graph 檢視提交的日誌
(7)git log -1 -p 檢視最近的一次提交
(8)git reflog 顯示你所使用過的每一條命令
(9)git log --graph --pretty=oneline --abbrev-commit 檢視提交的日誌資訊
4.git的使用——版本回退
在 Git中,用HEAD
表示當前版本,也就是最新的提交commit id(提交碼)
,上一個版本就是HEAD^,上上一個版本就是HEAD^^
,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100
。
(1)從當前版本回退到上一個版本:git reset --hard HEAD^
(2)根據提交碼進行回退:git reset --hard d302ae7 提交碼取前面7位就夠了
(3)git reset命令既可以回退版本,也可以把暫存區的修改回退到工作區
5.git的使用——版本差異
(1)使用git diff 來比較工作區與快取區之間的差異
(2)使用git diff --cached 來比較快取區與版本庫之間的差異
(3)使用git diff HEAD 來比較工作區與版本庫之間的差異
(4)git diff 檔名 #檢視某個檔案在工作區與快取區之間的差異
(5)git diff HEAD -- filename命令可以檢視工作區和版本庫裡面最新版本的區別
(6)git diff 遠端開發分支名 自己的分支名:檢視自己的分支與遠端開發分支有什麼不同
(7)git diff origin/develop develop 檢視開發分支有什麼不同(develop:開發分支名)
6. git的使用——歷史版本
(1)使用git checkout 從快取區中取出檔案;也可以使用git checkout取出快取區的狀態
(2)使用git checkout HEAD 來取出版本庫中的狀態,它會做兩步操作:
第一步:使用版本庫中的檔案來覆蓋快取區
地二步:使用版本庫中的檔案來覆蓋工作區
(3)git checkout -- . 取出當前目錄下的所有歷史版本
(4)git checkout HEAD 檔名 從版本庫中取出某個檔案
(5)git checkout -- 檔名 丟棄工作區的修改,意思就是,把 該檔案在工作區的修改全部撤銷,即讓這個檔案回到最近一次 git commit或 git add時的狀態。
7.git的使用——分支
(1)master:主分支
dev:開發分支,建立開發分支是為了保證master分支的穩定性
bug:解決bug的分支
注意:dev,bug是我自己定義的分支名,你請隨意
(2)git branch dev #建立開發分支
(3)git branch #檢視分支
(4)git branch -a #檢視所有分支
(5)git branch -v #檢視分支,並帶有提交碼
(6)git branch -d 分支名 #刪除分支
(6)git checkout dev #切換到dev分支
(7)git checkout master #切換到master分支
(8)git checkout -b bug #建立bug分支,並切換到bug分支
將dug分支合併到master分支:
首先要切換到master分支:git checkout master
然後進行合併:git merge bug
然後檢視日誌:git log --oneline
合併完成之後,需要刪除bug分支:git branch -d bug #刪除bug分支
然後在檢視分支:git checkout -v
再切換到dev分支進行開發:git checkout dev
開發完成之後,提交程式碼:git add 檔名 #將工作區的程式碼新增到快取區
git commit -m “註釋” #將快取區的程式碼提交到版本庫
切換回master分支合併dev程式碼:git checkout master
合併dev程式碼:git merge dev
在檢視日誌:git log --oneline
命令 |
作用域 |
常用情景 |
git reset |
提交層面 |
在私有分支上舍棄一些沒有提交的更改 |
git reset |
檔案層面 |
將檔案從快取區中移除 |
git checkout |
提交層面 |
切換分支或檢視舊版本 |
git checkout |
檔案層面 |
捨棄工作目錄中的更改 |
git revert |
提交層面 |
在公共分支上回滾更改 |
git revert |
檔案層面 |
(然而並沒有) |
8.git的使用——tag標籤
(1)git tag v1.0 打標籤
(2)git tag 檢視所有標籤
(3)git show <tagname>可以檢視某個標籤的詳細資訊
(4)git tag <tagname> 用於新建一個標籤,預設為HEAD
,也可以指定一個commit id
(5)git tag -d <tagname>可以刪除一個本地標籤;
(6)注意:標籤總是和某個commit掛鉤。如果這個commit既出現在master分支,又出現在dev分支,那麼在這兩個分支上都可以看到這個標籤。
(7)如果要推送某個標籤到遠端,使用命令git push origin <tagname>:
(8)一次性推送全部尚未推送到遠端的本地標籤:git push origin --tags
(9)如果標籤已經推送到遠端,現在需要刪除遠端標籤,首先從本地刪除:
git tag -d <tagname>
然後,從遠端刪除。刪除命令也是push,但是格式如下:
git push origin :refs/tags/<tagname>
9.git的使用——刪除檔案
(1)使用git刪除某個某個檔案,之後還需要進行提交,否則刪除不會成功:
git rm 要刪除的檔名
git commit -m "del 刪除檔案"
(2)誤把檔案刪除,可以通過版本庫恢復回來:git checkout -- 誤刪除的檔案
10.git的使用——設定別名
(1)git config --global alias.st status 設定status的別名為st,git st 等價於 git status,下同
(2)git config --global alias.co checkout
(3)git config --global alias.ci commit
(4)git config --global alias.br branch
--global引數是全域性引數,也就是這些命令在這臺電腦的所有Git倉庫下都有用。
11.git的使用——將dev分支上的某個未完成的工作暫存起來
首先要切換到dev分支上:git checkout dev
修改某個檔案後,將它暫存起來:git stash / git stash save
檢視狀態:git status 可以看到這個工作會變得很乾淨
檢視儲存了哪些暫存工作:git stash list
恢復暫存起來的工作:git stash apply
再檢視狀態,你就會看到之前暫存起來的工作了。
清除暫存起來的工作:git stash clear
12.git的使用——設定忽略檔案
(1)配置全域性忽略的檔案,這樣就不用每個專案都加gitignore了:
git config --global core.excludesfile '~/.gitignore'
(2)建立.gitignore檔案,用來忽略某些檔案
(3)echo “檔名” >> .gitignore 將需要忽略的檔案新增到忽略檔案中
(4)cat .gitignore 檢視忽略檔案
(5)echo “目錄/” >> .gitignore 忽略一個檔案
(6)echo "*.txt" >> .gitignore 忽略以.txt結尾的所有檔案
好了,分享就到到這,如果有不對的地方,請諸神指出!感謝諸君的支援!
作者:霜花似雪 連結:http://www.imooc.com/article/251132 來源:慕課網 本文原創釋出於慕課網 ,轉載請註明出處,謝謝合作