Git(二)使用git管理文件版本(TortoiseGit )

一.建立版本庫

   什麼是版本庫呢?版本庫又名倉庫,英文名repository,你能夠簡單理解成一個目錄,這個目錄裏面的全部文件均可以被Git管理起來,每一個文件的修改、刪除,Git都能跟蹤,以便任什麼時候刻均可以追蹤歷史,或者在未來某個時刻能夠「還原」。因爲git是分佈式版本管理工具,因此git在不須要聯網的狀況下也具備完整的版本管理能力。java

建立一個版本庫很是簡單,可使用git bash也可使用tortoiseGit。首先,選擇一個合適的地方,建立一個空目錄(D:\Develop\Git\git)。git

使用GitBash,在當前目錄中點擊右鍵中選擇Git Bash來啓動。

黑窗口建立倉庫執行命令: $ git initbash

使用tortoiseGit

使用TortoiseGit時只須要在目錄(D:\Develop\Git\git)中點擊右鍵菜單選擇「Git在這裏建立版本庫」編輯器

點擊肯定,建立成功 。分佈式

版本庫建立成功,會在此目錄下建立一個.git的隱藏目錄,如上所示。ide

  版本庫:「.git」目錄就是版本庫,未來文件都須要保存到版本庫中。工做目錄:包含「.git」目錄的目錄,也就是.git目錄的上一級目錄就是工做目錄。只有工做目錄中的文件才能保存到版本庫中。工具

二.添加文件

1.添加文件步驟

在D:\Develop\Git\git目錄下建立一個test.txt文件,刷新以下,標記藍色?ui

在git目錄內點擊test.txt文件右鍵客戶端工具點擊添加 idea

提示添加成功,點擊肯定,此時 標記藍色?變爲藍色 +spa

此時,git目錄裏隱藏文件 .git 會多差一個暫存區index文件。

提交文件

在test.txt上再次點擊右鍵選擇「提交」,此時將文件保存至版本庫中。

日誌信息輸入提交信息(必填項)

點擊提交

至此,添加文件並提交到本地倉庫完成,文本文件變爲帶「√」號的圖標:標記藍色 + 變爲綠色√

2.工做區和暫存區

Git和其餘版本控制系統如SVN的一個不一樣之處就是有暫存區的概念。

   什麼是工做區(Working Directory)?

工做區就是你在電腦裏能看到的目錄,好比個人git文件夾就是一個工做區。其實git目錄是工做區,在這個目錄中的「.git」隱藏文件夾纔是版本庫。

Git的版本庫裏存了不少東西,其中最重要的就是稱爲stage(或者叫index)的暫存區,還有Git爲咱們自動建立的第一個分支master,以及指向master的一個指針叫HEAD。

以下圖所示:

分支和HEAD的概念咱們稍後再講。前面講了咱們把文件往Git版本庫裏添加的時候,是分兩步執行的:

第一步是用git add把文件添加進去,實際上就是把文件修改添加到暫存區;

第二步是用git commit提交更改,實際上就是把暫存區的全部內容提交到當前分支。

由於咱們建立Git版本庫時,Git自動爲咱們建立了惟一一個master分支,因此,如今,git commit就是往master分支上提交更改。能夠簡單理解爲,須要提交的文件修改統統放到暫存區,而後,一次性提交暫存區的全部修改。

三.修改文件

1.提交修改

       被版本庫管理的文件不可避免的要發生修改,此時只須要直接對文件修改便可。修改完畢後須要將文件的修改提交到版本庫。在修改後的test.txt(修改後圖標變成紅色感嘆號)文件上點擊右鍵,而後選擇「提交」,和以前的提交方式同樣。

2.查看修改歷史

在開發過程當中可能會常常查看代碼的修改歷史,或者叫作查看代碼的修改日誌。用來查看某個版本是誰修改的,什麼時間修改的,修改了哪些內容。

能夠在文件上點擊右鍵選擇「顯示日誌」來查看文件的修改歷史。

3.差別比較

當文件內容修改後,須要和修改以前對比一下修改了哪些內容此時可使用「比較差別功能」

4.還原修改

當文件修改後不想把修改的內容提交,還想還原到未修改以前的狀態。此時可使用「還原」功能。

注意:此操做會撤銷全部未提交的修改,因此當作還原操做是須要慎重慎重!!!

四.刪除文件

須要刪除無用的文件時可使用git提供的刪除功能直接將文件從版本庫中刪除。

五.還原刪除文件

六.案例:將項目提交到版本庫

第一步:把已有java工程solr-demo複製到工做目錄中

第二步:將工程添加到暫存區。

點擊肯定完成暫存區添加。

3、忽略文件或文件夾

在此工程中,並非全部文件都須要保存到版本庫中的例如「.idea」目錄及目錄下的文件就能夠忽略。好在Git考慮到了你們的感覺,這個問題解決起來也很簡單,在Git工做區的根目錄下建立一個特殊的.gitignore文件,而後把要忽略的文件名填進去,Git就會自動忽略這些文件。

若是使用TortoiseGit的話可使用菜單項直接進行忽略。(這裏以IDEA項目演示)

選擇保留本地文件。完成後在此文件夾內會多出一個.gitignore文件,這個文件就是文件忽略文件,固然也能夠手工編輯。其中的內容就是把.idea目錄忽略掉。

一樣步驟再次把target目錄忽略

4、提交代碼

將代碼添加到master分支上,其中.gitignore文件也須要添加到暫存區,而後提交到版本庫。

提交

七.忽略文件語法規範

空行或是以 # 開頭的行即註釋行將被忽略。
能夠在前面添加正斜槓 / 忽略當前路徑文件,但不包括子目錄的同名文件。 能夠在後面添加正斜槓 / 來忽略文件夾。 可使用 ! 來否認忽略,即好比在前面用了 *.apk ,而後使用 !a.apk ,則這個a.apk不會被忽略。 * 用來匹配零個或多個字符,如 *.[oa] 忽略全部以".o"或".a"結尾, *~ 忽略全部以 ~ 結尾的文件(這種文件一般被許多編輯器標記爲臨時文件); [] 用來匹配括號內的任一字符,如 [abc] ,也能夠在括號內加鏈接符,如 [0-9] 匹配0至9的數; ? 用來匹配單個字符。 看了這麼多,仍是應該來個例子: # 忽略 .a 文件 *.a # 但否認忽略 lib.a, 儘管已經在前面忽略了 .a 文件 !lib.a # 僅在當前目錄下忽略 TODO 文件, 但不包括子目錄下的 subdir/TODO /TODO # 忽略 build/ 文件夾下的全部文件 build/ # 忽略 doc/notes.txt, 不包括 doc/server/arch.txt doc/*.txt # 忽略全部的 .pdf 文件 在 doc/ directory 下的 doc/**/*.pdf
相關文章
相關標籤/搜索