推薦學習:《》
版本控制(Revision control)是一種在開發的過程中用於管理我們對檔案、目錄或工程等內容的修改歷史,方便檢視更改歷史記錄,備份以便恢復以前的版本的軟體工程技術。
簡單說就是用於管理多人協同開發專案的技術。
沒有進行版本控制或者版本控制本省缺乏正確的流程管理,在軟體開發過程中將會引入很多問題,如軟體程式碼的一直型,軟體內容的冗餘,軟體流程的事務性,軟體開發過程的並行性,軟體原始碼的安全性,以及軟體的整合等問題。
主流的版本控制器有如下這些:
版本控制產品(Perforce、Rational ClearCase、RCS(GNU Revision Control System)、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear Vault),現在影響力最大且使用最廣泛的是Git和SVN。
記錄檔案每次的更新,可以對每個版本做一個快照,或是記錄修補程式檔案,適合個人用,如RCS。
所有的版本資料都儲存在伺服器上,協同開發者從伺服器上同步更新或上傳自己的修改。
所有的版本資料都存在伺服器上,使用者的本地只有自己以前所同步的版本,如果不聯網的話,使用者就看不到歷史版本,也無法切換版本驗證問題或在不同分支工作。而且,所有資料都儲存在單一的伺服器上,有很大的風險這個伺服器會損壞,這樣就會丟失所有的資料,當然可以定期備份。代表產品:SVN、CVS、Vss。
每個分支都有全部程式碼。
所有版本資訊倉庫全部同步到原生的每個使用者這樣就可以在本地檢視所有版本歷史可以離線在本地提交,只需在聯網時push到相應的伺服器或其他使用者那裡。由於每個使用者哪裡儲存的都是所有的版本資料只要有一個使用者的裝置沒有問題就可以恢復所有的資料但這增加了本地儲存空間的佔用。
不會因為伺服器損壞或者網路問題,造成不能工作的情況。
SVN是集中式版本控制系統,版本庫是集中放在中央伺服器的,而工作的時候用的都是自己的電腦,所以首先要從中央伺服器得到最新的版本,然後工作,完成工作後需要把自己昨晚的活推播到中央伺服器。集中式版本控制系統是必須聯網才能工作的,對網路寬頻要求較高。
GIT是分散式版本控制系統沒有中央伺服器每個人電腦就是一個完整的版本庫,工作的時候不需要聯網了,因為版本都在機子電腦上。協同的方法是這樣的:比如自己在電腦上改了檔案A其他人也在電腦上改了檔案A,這時,你們兩之間只需要把各自的修改推播給對方,就可以互相看到對方的修改了。Git可以直接看到更新了哪些程式碼和檔案。
Git是目前世界上最先進的分散式版本控制系統。
開啟Git官網https://git-scm.com,下載git對應作業系統的版本。
所有東西下載慢的話就可以找映象!
官網下載太慢,可以使用淘寶映象下載:http://npm.taobao.org/mirrors/git-for-windows/
Git Bash:Unix與Linux風格的命令列,使用最多,推薦最多
Git CMD:Windows風格的命令列
Git GUI:圖形介面的Git,不建議初學者使用,儘量ixan熟悉常用命令
cd:改變目錄
cd..回退到上一個目錄,直接cd進入預設目錄
pwd:顯示當前所在目錄路徑
ls(ll):都是列出當前目錄中的所有檔案只不過ll列出的內容跟為詳細
touch:新建一個檔案 如 touch index.js就會在當前目錄下新建一個index.js檔案
rm:刪除一個檔案
mkdir:新建一個目錄,就是新建一個資料夾。
rm-r:刪除一個資料夾,rm-r src刪除src目錄
mv 移動檔案
reset 重新初始化終端、清屏
clear清屏
history檢視命令歷史
help幫助
exit退出
#表示註釋
所有的組態檔其實都儲存在本地
設定使用者名稱和郵箱:
git config --global user.name "名稱"
git config --global user.email [email protected]
git config --system --list查詢系統給設定的
git config --global --list查詢全域性設定
Git本地有三個工作區域:工作目錄(Working Directory)、暫存區(Stage、Index)、資源庫(Repository或Git Directory)。如果再加上遠端的git倉庫(Remote Directory)就可以分為四個工作區域。檔案在這四個區域之間的轉換關係如下:
原生的三個區域確切的說應該是git倉庫中HEAD指向的版本:
git的工作流程一般是這樣的:
1、在工作目錄中新增、修改檔案;
2,將需要進行版本管理的檔案放入暫存區域;
3,將暫存區域的檔案提交到Git倉庫。
因此,git管理的檔案有三種狀態:已修改(modified),已暫存(staged),已提交(committed)。
建立工作目錄與常用指令
工作目錄(WorkSpace)一般就是你希望Git幫助你管理的資料夾,可以是你專案的目錄,也可以是一個空目錄,建議不要有中文。
日常使用只要記住下圖6個命令:
建立本地倉庫的方法有兩種:一種是建立全新的倉庫,另一種是克隆遠端倉庫。
1.建立全新的倉庫,需要用GIT管理的專案的根目錄執行:
#在當前目錄新建一個Git程式碼庫 $ git init初始化
2.執行後可以看到,僅僅在專案目錄多出了一個.git目錄,關於版本等的所有資訊都在這個目錄裡面。
1、另一種方式是克隆遠端目錄,由於是將遠端伺服器上的長褲完全映象一份至本地!
#可鏤一個專案和它的整個程式碼歷史(版本資訊) $ git clone [url]
2、去gitee或者github上克隆一個測試
版本控制就是對檔案的版本控制,要對檔案進行修改、提交等操作,首先要知道檔案當前在什麼狀態,不然可能會提交了現在還不想提交的檔案,或者要提交的檔案沒提交上。
上面說檔案有四種狀態,通過如下命令可以檢視到檔案的狀態:
#檢視執行檔案狀態 git status [filename] #檢視所有檔案狀態 git status #新增所有檔案到暫存區 git add . #提交暫存區中的內容到本地倉庫 -m提交資訊 git commit -m "註釋內容"
有些時候我們不想吧某些檔案納入版本控制中,比如資料庫檔案,臨時檔案,設計檔案等
在主目錄下建立「.gitignore」檔案,此檔案有如下規則:
#為註釋 *.txt #忽略所有 .txt結尾的檔案,這樣的話上傳就不會被選中 !lib.txt #但lib.txt除外 /temp #進忽略專案根目錄下的TODO檔案,不包括其他目錄temp build/ #忽略build/目錄下的所有檔案 doc/*.txt #忽略doc/notes.txt 但不包括 doc/server/arch.txt
.gitignore檔案內容
#java *.class *.log *.lock #Package Files # *.jar *.war *.ear target/ # idea .idea/ *.iml *velocity.log* ### STS ### .apt_generated .factorypath .springBeans ### IntelliJ IDEA ### *.iml *.ipr *.iws .idea .classpath .project .settings/ bin/ *.log tmp/ #rebel *rebel.xml*
# 進入 C:\Userss\Administrator\.ssh 目錄 # 生成公鑰 ssh-keygen -t rsa
3.將公鑰資訊public key 新增到碼雲賬戶中即可!
4.使用碼雲建立一個自己的倉庫
1.新建專案,繫結git
將遠端的git檔案目錄拷貝到專案中即可或者在git同名目錄下建立(git檔案為遠端克隆的git檔案)
重新整理後idea會出現
2、修改檔案,使用IDEA操作git
3、提交測試
git分支中常用指令
#列出所有本地分支 git branch #列出所有遠端分支 git branch -r #新建一個分支,但仍然停留在當前分支 git branch [branch-name] #新建一個分支,並切換到該分支 git checkout -b [branch] #合併指定分支到當前分支 git merge [branch] #刪除分支 git branch -d [branch-name] #刪除遠端分支 git push origin --delete [branch-name] git branch -dr [remote/branch]
推薦學習:《》
以上就是三十分鐘帶你Git入門(整理總結)的詳細內容,更多請關注TW511.COM其它相關文章!