建立版本庫nginx
版本庫,又稱倉庫,英文名爲repository,版本庫內的全部文件均可以被Git管理起來,即每一個文件的修改、刪除,Git都能跟蹤。git
1,在目錄中建立版本庫工具
在目錄中有兩種建立版本庫的方法,
一是使用Bash命令行工具,即打開Bash環境直接進入該目錄中,而後使用$ git init,
好比在目錄中建立版本庫,方法以下
在git命令行中輸入:編碼
$ cd learngit
$ git init
二是能夠在合適的目錄中使用鼠標右鍵的Git init here,採用鼠標右鍵這種方法的前提是安裝過程當中,勾選Simple contextmenu選項。以下圖
二是能夠在合適的目錄中使用鼠標右鍵的Git init here,採用鼠標右鍵這種方法的前提是安裝過程當中,勾選Simple contextmenu選項。以下圖
Git倉庫建好了,同時在當前目錄下多了一個.git目錄,這個用來跟蹤管理版本庫,千萬不要刪除
若是你沒有看到.git
目錄,那是由於這個目錄默認是隱藏的,用ls -ah
.gitls -ah命令就能夠看見。
注意:若是你使用Windows系統,爲了不遇到各類莫名其妙的問題,請確保目錄名(包括父目錄)不包含中文。
本文使用命令行模式,如圖
把文件添加到版本庫:
注意:全部的版本控制系統,都只能跟蹤文本文件的改動,好比txt,網頁,程序代碼等,而沒法跟蹤圖片,視頻,等這些二進制文件的變化。同時微軟的word格式是二進制文件,因此,最好使用純文本方式編寫文件,
強烈建議使用標準的UTF-8編碼,建議你下載Notepad++代替記事本!記得把Notepad++的默認編碼設置爲UTF-8 without BOM便可:
建立RinA01.R文件,並放到MyRScripts目錄下,
1,用命令git add把文件添加到倉庫,
$ git addRinA01.R
若是一次添加多個文件,可使用git add .或者gitadd -A(推薦)
它能stages全部文件,git add -A:
只能stages新文件和被修改文件,沒有被刪除文件git add .:
2,用命令git commit把文件提交到倉庫
解釋:-m參數表示後面輸入本次提交的說明,最好有意義$ git commit -m "the first chapter code of the book",如圖所示,
打開RinA01.R
文件,在第四行添加如下內容:spa
# time 2016/3/27
運行git status命令,獲得結果以下
git status能夠時刻掌握倉庫的當前狀態,代表,文件被修改過了,可是沒有提交的修改
使用git diff查看修改內容:命令行
git diff RinA01.R3d
結果如圖,版本控制
知道了修改內容後,就能夠提交到倉庫了,指針
git add RinA01.R日誌
git commit -m 'add distributed'
git status
如圖所示:
繼續對RinA01.R作修改,好比,在第五行添加以下內容:
# author:Nick
而後使用git add和git commit提交到倉庫。
文件通過不少次修改,git對每次commit進行記錄,當文件改亂或者文件誤刪,均可以從最近的一次commit恢復。
使用命令git log能夠查看文件歷史修改記錄。顯示從最近到最遠的提交日誌,
獲得的日誌信息中,commit後的數字是commit的版本號,如圖所示:
版本回退:
Git的每次commit都至關於保存一個快照,
一旦你把文件改亂了,或者誤刪了文件,還能夠從最近的一個恢復,而後繼續工做,而不是把幾個月的工做成果所有丟失。
Git中,用HEAD表示當前版本,其對應一個版本號,上一個版本就是HEAD^,上上個版本是HEAD^^,第20個版本是HEAD~20。
使用命令git reset回退到上一個版本:
git reset --hard HEAD^
此時用git log,已經看不到add author的版本了,commit
要想回到add author版本,
1,可使用
git reset --hard 版本號
版本號只須要完整版本號的前幾位便可,
此時打開RinA01.R文件,能夠看到文件恢復到最初的版本了。
若是徹底忘記了版本號怎麼辦?
2,可使用
git reflog
記錄每次命令的信息,有版本號。
工做區Working Directory,好比MyRScripts文件夾就是一個工做區
版本庫 Repository,工做區有一個隱藏目錄.git,是git的版本庫,其中存了不少文件,其中最重要的是稱爲暫存區的stage,還有git自動建立的第一個分支master,以及指向master的一個指針叫HEAD。
文件的添加和提交的執行過程是:
1,git add,實際是把文件修改添加到暫存區
2,git commit,實際是把暫存區的全部內容提交到當前分支
開始時,git自動建立了惟一一個分支master,因此git commit就是往master分支上提交修改。
每次已修改只有經過git add添加到暫存區,而後經git commit才能把暫存區的全部修改提交。
git checkout --filename
能夠丟棄工做區的修改
1,文件修改後尚未被放到暫存區,撤銷修改就回到了版本庫同樣的狀態
2,文件已經添加到暫存區,又作了修改,撤銷修改回到添加暫存區後的狀態
總之,就是讓文件回到最近一次的git add或git commit時的狀態。
若是文件修改已經添加到暫存區,能夠用
git reset HEAD filename
把暫存區的修改所有撤銷,從新回到工做區。
刪除文件:
在Git中,刪除文件也是一種修改操做,
要刪除一個文件能夠用
rm filename或者使用鼠標菜單刪除
而後提交 git commit,這樣文件就從版本庫中刪除了。
如果刪錯了,使用
git checkout-- filename
其實使用版本庫的版本替代工做區的版本,不管工做區是修改仍是刪除,均可以一鍵還原