摘要:關(guān)于版本控制,其實(shí)可以對(duì)任何類型的文件進(jìn)行版本控制。開(kāi)始使用首先右擊選擇利用創(chuàng)建一個(gè)文件夾,然后進(jìn)入當(dāng)前的文件夾,利用初始化項(xiàng)目倉(cāng)庫(kù),該命令將創(chuàng)建一個(gè)名為的子目錄,注意這是一個(gè)隱藏文件,你需要先顯示出電腦上的隱藏文件才能看見(jiàn)。
起步-關(guān)于版本控制
在介紹Git之前我們先了解一下什么是版本控制,在pro.Git這本書中說(shuō)道:版本控制是一種記錄一個(gè)或若干文件內(nèi)容變化,以便將來(lái)查閱特定版本修訂情況的系統(tǒng)。關(guān)于版本控制,其實(shí)可以對(duì)任何類型的文件進(jìn)行版本控制。接下來(lái)我將介紹一下三種版本控制系統(tǒng)。
本地版本控制系統(tǒng)在最早的時(shí)候,一個(gè)開(kāi)發(fā)者要開(kāi)發(fā)一個(gè)項(xiàng)目,那時(shí)人們習(xí)慣于復(fù)制整個(gè)項(xiàng)目目錄的方式來(lái)保存不同的版本,這樣的好處是簡(jiǎn)單,但是壞處也是很明顯的,當(dāng)復(fù)制黏貼多了以后,一個(gè)開(kāi)發(fā)者自己都會(huì)混淆,更不要說(shuō)讓別人去了解了。
集中化的版本控制系統(tǒng)這個(gè)控制系統(tǒng)的出現(xiàn)已經(jīng)可以解決上面所說(shuō)的那個(gè)問(wèn)題了,同時(shí)還讓不同系統(tǒng)上的開(kāi)發(fā)者可以協(xié)同工作。這種方式的原理是利用一個(gè)單一的集中管理的服務(wù)器,用于保存所有文件的修訂版,而協(xié)同工作的人們都通過(guò)客戶端連到這臺(tái)服務(wù)器,取出最新的文件或者提交更新。但是這樣同樣也會(huì)有一個(gè)問(wèn)題,假如一個(gè)開(kāi)發(fā)者他為公司開(kāi)發(fā)項(xiàng)目,這就意味著,他想要提交更新代碼只能在公司,如果他想在家提交代碼,這是不可以的,這樣的話就有極大的限制了,而且一旦服務(wù)器出現(xiàn)故障,那么所有的代碼,就有可能就沒(méi)有了,這對(duì)開(kāi)發(fā)者開(kāi)說(shuō)是一個(gè)巨大是災(zāi)難。
分布式的版本控制系統(tǒng)什么是分布式的版本控制系統(tǒng)呢?這里簡(jiǎn)單舉一個(gè)例子,當(dāng)一個(gè)項(xiàng)目有很多開(kāi)發(fā)者去完成時(shí),每一位開(kāi)大者并不只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整地鏡像下來(lái),這就意味著其實(shí)每一位開(kāi)發(fā)者的本地其實(shí)都是一個(gè)服務(wù)器,這樣的話即使我的代碼丟失了,那我同事或者遠(yuǎn)程倉(cāng)庫(kù)那應(yīng)該會(huì)有備份我可以去他那拷貝。接下來(lái)我們要說(shuō)的git就是一種分布式的版本控制系統(tǒng),至于為什么使用git而不使用其他的大家可以參考:。。。
Git簡(jiǎn)單使用 安裝git在Linux上安裝
sudo apt-get install git
git在windows上安裝
https://git-scm.com/downloads...,然后下一步,下一步安裝就可以了。安裝玩以后再自己的電腦上,
注:如果上述安裝方式并不能安裝,你可以去Git官網(wǎng)上去看看,或者百度一下,就會(huì)有很多的安裝教程。
設(shè)置配置信息一般第一次安裝以后就應(yīng)該去配置一下信息,安裝玩git以后,在電腦桌面上右擊可以看到多了一個(gè)git Bash Here和git GUI Here,一般我比較常用git Bash,類似于一個(gè)命令行。
用戶信息當(dāng)安裝完 Git 應(yīng)該做的第一件事就是設(shè)置你的用戶名稱與郵件地址。 這樣做很重要,因?yàn)槊恳粋€(gè) Git 的提交都會(huì)使用這些信息,并且它會(huì)寫入到你的每一次提交中,不可更改:
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
注意:上面兩個(gè)是例子,請(qǐng)不要填寫一樣的user.name和user.email,還有就是在打的時(shí)候注意空格。設(shè)置完信息以后可以利用git config --list查看用戶的配置信息。
首先右擊選擇git bash利用mkdir gitDemo創(chuàng)建一個(gè)文件夾,然后cd ./gitDemo進(jìn)入當(dāng)前的文件夾,利用git init初始化項(xiàng)目倉(cāng)庫(kù),該命令將創(chuàng)建一個(gè)名為 .git 的子目錄,注意這是一個(gè)隱藏文件,你需要先顯示出電腦上的隱藏文件才能看見(jiàn)。在具體上git命令之前我們先理解一下git中常見(jiàn)的集中狀態(tài)
圖片描述Working Directory:表示的是你電腦的上寫代碼的地方成為工作區(qū)
Staging Area:表示的是暫存區(qū)
.git(Repository):表示的是本地的倉(cāng)庫(kù),也叫歷史區(qū),
至于那幾個(gè)箭頭分別表示的是一些git中的操作等會(huì)我們會(huì)說(shuō)。
這個(gè)命令主要用于查看當(dāng)前的狀態(tài),另一個(gè)功能就是有時(shí)候可以提示你下一步的操作。等會(huì)我們會(huì)使用到git status
add命令首先我們先再我們創(chuàng)建的gitDemo文件夾中創(chuàng)建一個(gè)index.html,然后可以隨便使用什么編輯器打開(kāi)寫上111此時(shí)這個(gè)文件存放的位置就是在工作區(qū)中,現(xiàn)在我們可以使用git add index.html,讓git來(lái)跟蹤這些文件,也可以理解為將文件從工作區(qū)提交到暫存區(qū)。這里我們用status進(jìn)行查看一下
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached
new file: index.html
commit命令
在文件存放到暫存區(qū)以后我們就要將文件提交到歷史區(qū)了此時(shí)我們使用的命令是git commit -m "文件的描述","文件的描述"就是指你提交的代碼改了什么,或者加了什么功能等等。在使用git status進(jìn)行查看
On branch master
nothing to commit, working tree clean
提示沒(méi)有什么要提交的,工作區(qū)是干凈的.
注意:一個(gè)文件如果在暫存區(qū)并未提交,但是此時(shí)又修改了文件,這就意味著文件有兩種狀態(tài),一種在工作區(qū),一種在暫存區(qū)這樣的文件是提交不上去的需要再次使用git add <文件名>
當(dāng)文件提交到呢目的倉(cāng)庫(kù)以后我們可以使用git log來(lái)查看提交的日志文件,注意:日志文件里面有一個(gè)commit即提交的版本號(hào),這個(gè)以后可以用于版本回退。
例如:
commit a9ba8e706093c0ab2e5470c347e30a7a268edaf4 (HEAD -> master)
Author: YH
Date: Wed Nov 8 22:19:43 2017 +0800
提交index
注:git log --oneline可以在一行查看日志
git log --graph --oneline圖形化查看日志
rm 命令如果一個(gè)文件存在暫存區(qū)了現(xiàn)在我們又不想提交它了,那么可以使用git rm --cached <文件名>將文件從暫存區(qū)移除。
git diff
查看工作區(qū)和暫存區(qū)的區(qū)別,例如你可以在index.html里面在加一個(gè)222,然后使用git diff,那么你就可以看見(jiàn)
diff --git a/index.html b/index.html
index 58c9bdf..a30a52a 100644
--- a/index.html
+++ b/index.html
@@ -1 +1,2 @@
111
+222
+222表示添加上一個(gè)222
查看工作區(qū)和當(dāng)前分支倉(cāng)庫(kù)的區(qū)別git diff HEAD
查看暫存區(qū)和歷史區(qū)的區(qū)別git diff --cached
由于我們這里只有一個(gè)版本,所以我們將前面添加的222頁(yè)提交到本地倉(cāng)庫(kù)中然后使用git log查看
commit 5161c3991d3e21777dd3ab7f2c9b853cf5397541 (HEAD -> master)
Author: YH
Date: Wed Nov 8 22:38:32 2017 +0800
添加222
commit a9ba8e706093c0ab2e5470c347e30a7a268edaf4
Author: YH
Date: Wed Nov 8 22:19:43 2017 +0800
提交index
現(xiàn)在我們不想要222了,那該怎么辦呢?我們可以使用git reset --hard HEAD^表示回到上一個(gè)版本,git reset --hard <版本號(hào)>表示回到指定版本,版本號(hào)就是git log輸出的commit
chekout命令如果我們?cè)诒镜貙懥舜a又不想要了怎么辦呢?我們可以使用git checkout命令指從暫存區(qū)取到代碼放到工作區(qū)。到這里我們就應(yīng)該理解了其實(shí)無(wú)論的工作區(qū),暫存區(qū),本地倉(cāng)庫(kù)其實(shí)都是有一份代碼存放在那的,當(dāng)我們?cè)诠ぷ鲄^(qū)誤刪,誤改了什么代碼其實(shí)并不要緊。
關(guān)于git分支的操作其實(shí)在我們初始化項(xiàng)目的時(shí)候git就默認(rèn)為我們創(chuàng)建了一個(gè)master分支了,在git中默認(rèn)有一個(gè)頭指針指向這個(gè)master, 當(dāng)我們每次提交代碼的時(shí)候該指針就會(huì)向前進(jìn)行相應(yīng)的移動(dòng)。例如:我們前提交了兩次代碼我們使用git log --graph --oneline查看
5161c39 (HEAD -> master) 添加222
a9ba8e7 提交index
*表示當(dāng)前操作的分支,
51**表示原來(lái)commit的簡(jiǎn)化
HEAD:頭指針此時(shí)指向master
git barnch <分支名稱>例如我們這里再創(chuàng)建一個(gè)dev分支git branch dev,利用git branch可以查看當(dāng)前支
dev
master
切換分支
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/89628.html
摘要:提交一個(gè)簡(jiǎn)單文件首先,使用的客戶端將項(xiàng)目到本地假設(shè)將這個(gè)項(xiàng)目的目錄放在了中然后打開(kāi)進(jìn)入目錄然后在目錄里面新建一個(gè)寫上然后這樣,就將文件加到本地的項(xiàng)目中。命令只是提交到本地倉(cāng)庫(kù),并沒(méi)有提交到遠(yuǎn)端。合并分支將的分支合并到當(dāng)前分支。 提交一個(gè)簡(jiǎn)單文件 首先,使用GitHub的`windows客戶端將項(xiàng)目clone到本地假設(shè)將test這個(gè)項(xiàng)目的目錄放在了中C:xampphtdocsGithub...
摘要:現(xiàn)在讓我們進(jìn)入到剛剛創(chuàng)建的本地倉(cāng)庫(kù)也就是那個(gè)文件夾。要進(jìn)入自己的本地倉(cāng)庫(kù)的話,需要再次輸入這是我的一個(gè)本地倉(cāng)庫(kù)按回車。初始化完成之后在里面你的本地倉(cāng)庫(kù)名后面也會(huì)出現(xiàn)。 添加Git本地倉(cāng)庫(kù) 首先,我們要建立一個(gè)本地倉(cāng)庫(kù)(說(shuō)白了就是一個(gè)文件夾)然后,啟用咱們的Git Shell(在wndows開(kāi)始菜單->所有應(yīng)用->GitHub,Inc文件夾里面) 打開(kāi)是這樣子的:showImg(http...
閱讀 1902·2021-09-22 15:54
閱讀 3056·2021-09-01 10:42
閱讀 3552·2019-08-30 15:56
閱讀 1507·2019-08-29 18:46
閱讀 2543·2019-08-29 10:57
閱讀 2805·2019-08-28 17:57
閱讀 3732·2019-08-23 18:14
閱讀 904·2019-08-23 17:03