1. 程式人生 > >版本管理工具git的使用總結

版本管理工具git的使用總結

在git安裝好之後,還需要做註冊一個github賬號,作為遠端倉庫,之後需要做一些配置:

https://img1.mukewang.com/5baf4c430001f89003060137.jpg

這裡一跳而過,不多說,完成之後,我們就可以使用git了。

  1. git分割槽

    https://img2.mukewang.com/5baf4ce7000188ba04280191.jpg

工作區:就是我們開啟資料夾所能看到的內容,比如windows系統盤下面的某個資料夾,就可以看

做是一個工作區。

快取區:就是需要提交的那部分檔案

版本庫:就是已經提交,被納入版本控制之列的檔案

工作區有一個隱藏的目錄.git,這個不算工作區,而是Git的版本庫

git的版本庫裡存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有Git為我們自動建立的第一個分支 master,以及指向 master的一個指標叫 HEAD 。

2. git的使用——基本操作

在本地建立資料夾,切換進入資料夾,開啟git命令視窗,相關操作的命令如下:

(1)初始化git倉庫  git init 

https://img.mukewang.com/5baf51e8000116b305530243.jpg

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(別名)  也可以檢視遠端伺服器的相關資訊

https://img2.mukewang.com/5baf62bc00019e9b07450350.jpg

3.git的使用——快照

https://img2.mukewang.com/5baf52420001180705530296.jpg

(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的使用——版本差異

https://img2.mukewang.com/5baf564f0001445c05200293.jpg

(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的使用——歷史版本

https://img1.mukewang.com/5baf56990001ee6705150283.jpg

(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的使用——分支

https://img3.mukewang.com/5baf592100012aff05100290.jpg

(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 來源:慕課網 本文原創釋出於慕課網 ,轉載請註明出處,謝謝合作