git + composer拉取項目
1.先從遠(yuǎn)程倉庫克隆項目
git clone https://github.com/pengloo53/learngit.git
2.composer安裝json中的所需第三方
composer install
因為在lavarel根目錄中有一個 composer.json文件铜涉,里面有所需的第三方以及版本
解釋:
1.首先項目目錄是沒有.env文件的,因為大家公用一個數(shù)據(jù)庫智玻,這個文件一般在提交的時候都被忽略,所以只在git最高的版本管理者那里管理這個文件芙代,我們拉下來之后直接復(fù)制一個.env過來吊奢,配置好數(shù)據(jù)庫信息即可。
2.為什么第三方也要重新拉呢纹烹,因為一個項目有一半左右的體積都是第三方页滚,每個人直接從git克隆不如composer換源之后自己拉取。
3.composer拉取的時候铺呵,一定要注意當(dāng)前目錄位置是不是項目根目錄裹驰,因為composer不僅拉取了一些文件,還給當(dāng)前環(huán)境生成了很多環(huán)境文件片挂。
3.composer換源
composer config -g repo.packagist composer https://packagist.phpcomposer.com
修改composer的全局配置文件
關(guān)于git
對于版本管理的理解
以前只是覺得版本管理是對文件修改之后合并幻林,提交之類的操作,其實版本管理的意思是默認(rèn)當(dāng)前分支為運行分支音念,并且能夠與其他分支和遠(yuǎn)程倉庫進(jìn)行交互沪饺。比如當(dāng)我運行了我的laravel項目,在終端版本管理闷愤,切換到test分支整葡,在test分支上寫上路由a,當(dāng)我依然在分支test的時候讥脐,能訪問到路由a遭居,但是,當(dāng)我切換了分支攘烛,再次在瀏覽器輸入路由a的時候魏滚,頁面就會報錯。
總結(jié):版本管理就是給你當(dāng)前的文件多個版本坟漱,系統(tǒng)能找到的版本就是你目前所在的版本(分支)
其他git特性
1.多層 git
在剛才講的對于git理解的基礎(chǔ)上鼠次,再舉個例子:
首先建立空文件 test 并創(chuàng)建a文件
git init
git checkout -b dev //創(chuàng)建 dev分支
cd test
git init
git checkout -b dev2
這個時候,在test外層有兩個分支 master 和 dev
test里面也有兩個分支 master 和 dev2
現(xiàn)在就有兩層的git 這就相當(dāng)于二維數(shù)組一樣,你在每一層所在的分支就是系統(tǒng)按照路徑找過去的時候的版本腥寇。
2.刪除.git
首先 git 記錄的是改變成翩,并不記錄版本,當(dāng)你git init 的時候赦役,會生成一個.git的文件夾麻敌,這個文件夾里面記錄了所有改變,當(dāng)你刪除了這個文件夾掂摔,再git branch的時候术羔,會提示沒有創(chuàng)建過版本倉庫。也就是說乙漓,回到文件最初的狀態(tài)级历。
3.目前還迷惑的一個問題
vim test.php 寫入'1111'
git init
git add .
git commit -m '111'
git checkout -b dev
vim test2.php 寫入‘2222’
這個時候不做任何git add 和commit
再git checkout master
ls 發(fā)現(xiàn)里面同樣有 test2.php這個文件(這個文件是在dev分支上創(chuàng)建的)
git checkout dev
git add .
git commit -m '333'
這個時候再回到master 發(fā)現(xiàn)里面只有一個文件test.php,在dev分支創(chuàng)建的test2.php沒了。
一樣的道理叭披,假如我在某分支寫了一個路由寥殖,提交之后,在這個分支的時候涩蜘,瀏覽器訪問正常嚼贡,切另外分支,瀏覽器報錯同诫。
但是當(dāng)我在某分支寫了路由粤策,不做提交,那么瀏覽器訪問任何分支都不會報錯误窖。
假如按照之前的理解掐场,切換到哪個分支,訪問這個路徑就呈現(xiàn)分支的內(nèi)容贩猎,那現(xiàn)在這個現(xiàn)象就解釋不了了。
假如像以下這么理解萍膛,就是能符合這個現(xiàn)象的:
當(dāng)我們按照路徑訪問這個git所管理的文件時吭服,git呈現(xiàn)的是工作區(qū)和版本倉庫加和在一起的內(nèi)容,當(dāng)像第一個例子蝗罗,按照正常的流程艇棕,修改 add commit之后,工作區(qū)又是干凈的串塑,所以呈現(xiàn)的就是某個分支上的內(nèi)容沼琉;但是當(dāng)我們修改了文件,但沒有提交桩匪,工作區(qū)是有內(nèi)容的打瘪,那么無論我們處在哪個分支,git呈現(xiàn)的則是工作區(qū)和分支的加和。
但是闺骚,這個情況似乎沒什么用處彩扔,這樣理解也不一定對。希望有正解的你可以分享僻爽。