站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        三十分鐘帶你Git入門(整理總結(jié))

        本篇文章給大家?guī)?lái)了關(guān)于git入門的相關(guān)知識(shí),其中包括了環(huán)境配置、基本理論、項(xiàng)目搭建以及文件操作等相關(guān)問(wèn)題,希望對(duì)大家有幫助。

        三十分鐘帶你Git入門(整理總結(jié))

        推薦學(xué)習(xí):《Git入門教程》

        版本控制

        什么是版本控制(版本迭代,新的版本!版本管理器)

        版本控制(Revision control)是一種在開(kāi)發(fā)的過(guò)程中用于管理我們對(duì)文件、目錄或工程等內(nèi)容的修改歷史,方便查看更改歷史記錄,備份以便恢復(fù)以前的版本的軟件工程技術(shù)。

        • 實(shí)現(xiàn)跨區(qū)域多人協(xié)同開(kāi)發(fā)
        • 追蹤和記載一個(gè)或者多個(gè)文件的歷史記錄
        • 組織和保護(hù)你的源代碼和文檔
        • 統(tǒng)計(jì)工作量
        • 并行開(kāi)發(fā),提高開(kāi)發(fā)效率
        • 跟蹤記錄整個(gè)軟件的開(kāi)發(fā)過(guò)程
        • 減輕開(kāi)發(fā)人員的負(fù)擔(dān),節(jié)省時(shí)間,同時(shí)降低認(rèn)為錯(cuò)誤

        簡(jiǎn)單說(shuō)就是用于管理多人協(xié)同開(kāi)發(fā)項(xiàng)目的技術(shù)。

        沒(méi)有進(jìn)行版本控制或者版本控制本省缺乏正確的流程管理,在軟件開(kāi)發(fā)過(guò)程中將會(huì)引入很多問(wèn)題,如軟件代碼的一直型,軟件內(nèi)容的冗余,軟件過(guò)程的事務(wù)性,軟件開(kāi)發(fā)過(guò)程的并發(fā)性,軟件源代碼的安全性,以及軟件的整合等問(wèn)題。

        常見(jiàn)的版本控制工具

        主流的版本控制器有如下這些:

        • Git
        • SVN(Subversion)
        • CVS(Concurrent Visual System)
        • VSS(Micorosoft Visual SourceSafe)
        • TFS(Team Foundation Server)
        • Visual Studio Online

        版本控制產(chǎn)品(Perforce、Rational ClearCase、RCS(GNU Revision Control System)、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear Vault),現(xiàn)在影響力最大且使用最廣泛的是Git和SVN。

        1.本地版本控制

        記錄文件每次的更新,可以對(duì)每個(gè)版本做一個(gè)快照,或是記錄補(bǔ)丁文件,適合個(gè)人用,如RCS。

        2.集中版本控制 SVN

        所有的版本數(shù)據(jù)都保存在服務(wù)器上,協(xié)同開(kāi)發(fā)者從服務(wù)器上同步更新或上傳自己的修改。

        所有的版本數(shù)據(jù)都存在服務(wù)器上,用戶的本地只有自己以前所同步的版本,如果不聯(lián)網(wǎng)的話,用戶就看不到歷史版本,也無(wú)法切換版本驗(yàn)證問(wèn)題或在不同分支工作。而且,所有數(shù)據(jù)都保存在單一的服務(wù)器上,有很大的風(fēng)險(xiǎn)這個(gè)服務(wù)器會(huì)損壞,這樣就會(huì)丟失所有的數(shù)據(jù),當(dāng)然可以定期備份。代表產(chǎn)品:SVN、CVS、Vss。

        3.分布式版本控制 GIT

        每個(gè)分支都有全部代碼。

        所有版本信息倉(cāng)庫(kù)全部同步到本地的每個(gè)用戶這樣就可以在本地查看所有版本歷史可以離線在本地提交,只需在聯(lián)網(wǎng)時(shí)push到相應(yīng)的服務(wù)器或其他用戶那里。由于每個(gè)用戶哪里保存的都是所有的版本數(shù)據(jù)只要有一個(gè)用戶的設(shè)備沒(méi)有問(wèn)題就可以恢復(fù)所有的數(shù)據(jù)但這增加了本地存儲(chǔ)空間的占用。

        不會(huì)因?yàn)榉?wù)器損壞或者網(wǎng)絡(luò)問(wèn)題,造成不能工作的情況。

        4.Git和SVN最主要的區(qū)別

        SVN是集中式版本控制系統(tǒng),版本庫(kù)是集中放在中央服務(wù)器的,而工作的時(shí)候用的都是自己的電腦,所以首先要從中央服務(wù)器得到最新的版本,然后工作,完成工作后需要把自己昨晚的活推送到中央服務(wù)器。集中式版本控制系統(tǒng)是必須聯(lián)網(wǎng)才能工作的,對(duì)網(wǎng)絡(luò)寬帶要求較高。

        GIT是分布式版本控制系統(tǒng)沒(méi)有中央服務(wù)器每個(gè)人電腦就是一個(gè)完整的版本庫(kù),工作的時(shí)候不需要聯(lián)網(wǎng)了,因?yàn)榘姹径荚跈C(jī)子電腦上。協(xié)同的方法是這樣的:比如自己在電腦上改了文件A其他人也在電腦上改了文件A,這時(shí),你們兩之間只需要把各自的修改推送給對(duì)方,就可以互相看到對(duì)方的修改了。Git可以直接看到更新了哪些代碼和文件。

        Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)。

        Git環(huán)境配置

        打開(kāi)Git官網(wǎng)https://git-scm.com,下載git對(duì)應(yīng)操作系統(tǒng)的版本。

        所有東西下載慢的話就可以找鏡像!

        官網(wǎng)下載太慢,可以使用淘寶鏡像下載:http://npm.taobao.org/mirrors/git-for-windows/

        啟動(dòng)Git

        Git Bash:Unix與Linux風(fēng)格的命令行,使用最多,推薦最多

        Git CMD:Windows風(fēng)格的命令行

        Git GUI:圖形界面的Git,不建議初學(xué)者使用,盡量ixan熟悉常用命令

        基本的Linux命令學(xué)習(xí)

        cd:改變目錄

        cd..回退到上一個(gè)目錄,直接cd進(jìn)入默認(rèn)目錄

        pwd:顯示當(dāng)前所在目錄路徑

        ls(ll):都是列出當(dāng)前目錄中的所有文件只不過(guò)ll列出的內(nèi)容跟為詳細(xì)

        touch:新建一個(gè)文件 如 touch index.js就會(huì)在當(dāng)前目錄下新建一個(gè)index.js文件

        rm:刪除一個(gè)文件

        mkdir:新建一個(gè)目錄,就是新建一個(gè)文件夾。

        rm-r:刪除一個(gè)文件夾,rm-r src刪除src目錄

        mv 移動(dòng)文件

        reset 重新初始化終端、清屏

        clear清屏

        history查看命令歷史

        help幫助

        exit退出

        #表示注釋

        Git配置

        所有的配置文件其實(shí)都保存在本地

        設(shè)置用戶名和郵箱:

        git config –global user.name "名稱"

        git config –global user.email 22222@qq.com

        git config –system –list查詢系統(tǒng)給配置的

        git config –global –list查詢?nèi)峙渲?/p>

        Git基本理論

        Git本地有三個(gè)工作區(qū)域:工作目錄(Working Directory)、暫存區(qū)(Stage、Index)、資源庫(kù)(Repository或Git Directory)。如果再加上遠(yuǎn)程的git倉(cāng)庫(kù)(Remote Directory)就可以分為四個(gè)工作區(qū)域。文件在這四個(gè)區(qū)域之間的轉(zhuǎn)換關(guān)系如下:

        三十分鐘帶你Git入門(整理總結(jié))

        • Workspace:工作區(qū),就是你平時(shí)存放項(xiàng)目代碼的地方
        • Index/Stage:暫存區(qū):用于臨時(shí)存放你的改動(dòng),事實(shí)上它只是一個(gè)文件,保存即將提交到文件列表信息
        • Repository:倉(cāng)庫(kù)區(qū)(或本地倉(cāng)庫(kù)),就是安全存放數(shù)據(jù)的位置,這里面有你提交到所有版本的數(shù)據(jù)。其中HEAD指向最新放入倉(cāng)庫(kù)的版本。
        • Remote:遠(yuǎn)程倉(cāng)庫(kù),托管代碼的服務(wù)器,可以簡(jiǎn)單的認(rèn)為是你項(xiàng)目組中的一臺(tái)電腦用于遠(yuǎn)程數(shù)據(jù)交換。

        本地的三個(gè)區(qū)域確切的說(shuō)應(yīng)該是git倉(cāng)庫(kù)中HEAD指向的版本:

        三十分鐘帶你Git入門(整理總結(jié))

        • Directory:使用Git管理的一個(gè)目錄,也就是一個(gè)倉(cāng)庫(kù),包含我們的工作空間和Git的管理空間。
        • WorkSpace:需要通過(guò)Git進(jìn)行版本控制的目錄和文件,這些目錄和文件組成了工作空間
        • .git:存放Git管理信息的目錄,初始化倉(cāng)庫(kù)的時(shí)候自動(dòng)創(chuàng)建。
        • Index/Stage:暫存區(qū),或者叫待提交更新區(qū),在提交進(jìn)入repo之前,我們可以把所有的跟新放在暫存區(qū)。
        • Local Repo:本地倉(cāng)庫(kù),一個(gè)存放在本地的版本庫(kù);HEAD會(huì)只是當(dāng)前的開(kāi)發(fā)分支(branch)。
        • Stash:隱藏,是一個(gè)工作狀態(tài)保存棧,用于保存/恢復(fù)WorkSpace中的臨時(shí)狀態(tài)。

        工作流程

        git的工作流程一般是這樣的:

        1、在工作目錄中添加、修改文件;

        2,將需要進(jìn)行版本管理的文件放入暫存區(qū)域;

        3,將暫存區(qū)域的文件提交到Git倉(cāng)庫(kù)。

        因此,git管理的文件有三種狀態(tài):已修改(modified),已暫存(staged),已提交(committed)。

        三十分鐘帶你Git入門(整理總結(jié))

        Git項(xiàng)目搭建

        創(chuàng)建工作目錄與常用指令

        工作目錄(WorkSpace)一般就是你希望Git幫助你管理的文件夾,可以是你項(xiàng)目的目錄,也可以是一個(gè)空目錄,建議不要有中文。

        日常使用只要記住下圖6個(gè)命令:

        三十分鐘帶你Git入門(整理總結(jié))

        本地倉(cāng)庫(kù)搭建:

        創(chuàng)建本地倉(cāng)庫(kù)的方法有兩種:一種是創(chuàng)建全新的倉(cāng)庫(kù),另一種是克隆遠(yuǎn)程倉(cāng)庫(kù)。

        1.創(chuàng)建全新的倉(cāng)庫(kù),需要用GIT管理的項(xiàng)目的根目錄執(zhí)行:

        #在當(dāng)前目錄新建一個(gè)Git代碼庫(kù) $ git init初始化

        2.執(zhí)行后可以看到,僅僅在項(xiàng)目目錄多出了一個(gè).git目錄,關(guān)于版本等的所有信息都在這個(gè)目錄里面。

        克隆遠(yuǎn)程倉(cāng)庫(kù)

        1、另一種方式是克隆遠(yuǎn)程目錄,由于是將遠(yuǎn)程服務(wù)器上的長(zhǎng)褲完全鏡像一份至本地!

        #可鏤一個(gè)項(xiàng)目和它的整個(gè)代碼歷史(版本信息) $ git clone [url]

        2、去gitee或者github上克隆一個(gè)測(cè)試

        Git文件操作

        文件4種狀態(tài)

        版本控制就是對(duì)文件的版本控制,要對(duì)文件進(jìn)行修改、提交等操作,首先要知道文件當(dāng)前在什么狀態(tài),不然可能會(huì)提交了現(xiàn)在還不想提交的文件,或者要提交的文件沒(méi)提交上。

        • Untracked:未跟蹤,此文件在文件夾中,但并沒(méi)有加入到git庫(kù),不參與版本控制,通過(guò)git add狀態(tài)變?yōu)閟taged。
        • Unmodify:文件已經(jīng)入庫(kù),未修改,即版本庫(kù)中的文件快照內(nèi)容與文件夾中完全一致,這種類型的文件有兩種去處,如果他被修改,而變?yōu)镸odified。如果使用git rm移除版本庫(kù),則成為Untracked文件
        • Modified:文件已修改,僅僅是修改,并沒(méi)有進(jìn)行其他的操作,這個(gè)文件也有兩個(gè)去處,通過(guò)git add可進(jìn)入暫存staged狀態(tài),使用git checkout,則丟棄修改過(guò),返回到unmodify狀態(tài),這個(gè)git checkout即從庫(kù)中取出文件,覆蓋當(dāng)前修改!
        • Staged:暫存狀態(tài),執(zhí)行g(shù)it commit ,則將修改同步到庫(kù)中,這時(shí)庫(kù)中的文件和本地文件又變?yōu)橐恢拢募閁nmodify狀態(tài)。執(zhí)行g(shù)it reset HEAD filename取消暫存,文件狀態(tài)變?yōu)镸odified。

        查看文件狀態(tài)

        上面說(shuō)文件有四種狀態(tài),通過(guò)如下命令可以查看到文件的狀態(tài):

        #查看執(zhí)行文件狀態(tài) git status [filename] #查看所有文件狀態(tài) git status #添加所有文件到暫存區(qū) git add . #提交暫存區(qū)中的內(nèi)容到本地倉(cāng)庫(kù) -m提交信息 git commit -m "注釋內(nèi)容"

        忽略文件

        有些時(shí)候我們不想吧某些文件納入版本控制中,比如數(shù)據(jù)庫(kù)文件,臨時(shí)文件,設(shè)計(jì)文件等

        在主目錄下建立“.gitignore”文件,此文件有如下規(guī)則:

        1. 忽略文件中的空行或以井號(hào)(#)開(kāi)始的行將會(huì)被忽略。
        2. 可以使用Linux通配符。例如:星號(hào)(*)代表任意多個(gè)字符,問(wèn)好(?)代表一個(gè)字符,方括號(hào)([abc])代表可選字符范圍,大括號(hào)({string1,string2})代表可選的字符串等。
        3. 如果名稱的最前面有一個(gè)感嘆號(hào)(!),表示例外規(guī)則,將不被忽略。
        4. 如果名稱的最前面是一個(gè)路徑分隔符(/),表示要忽略的文件在此目錄下,而子目錄中的文件不忽略。
        5. 如果名稱的最后面是一個(gè)路徑分隔符(/),表示要忽略的是此目錄下該名稱的子目錄,而非文件(默認(rèn)文件后目錄都忽略)。
        #為注釋 *.txt        #忽略所有 .txt結(jié)尾的文件,這樣的話上傳就不會(huì)被選中 !lib.txt    #但lib.txt除外 /temp        #進(jìn)忽略項(xiàng)目根目錄下的TODO文件,不包括其他目錄temp build/       #忽略build/目錄下的所有文件 doc/*.txt    #忽略doc/notes.txt 但不包括 doc/server/arch.txt

        .gitignore文件內(nèi)容

        #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*

        使用碼云

        1. 注冊(cè)登錄碼云,完善個(gè)人信息
        2. 設(shè)置本機(jī)保定SSH公鑰,實(shí)現(xiàn)免密碼登錄!
        # 進(jìn)入 C:UserssAdministrator.ssh 目錄 # 生成公鑰 ssh-keygen -t rsa

        3.將公鑰信息public key 添加到碼云賬戶中即可!

        4.使用碼云創(chuàng)建一個(gè)自己的倉(cāng)庫(kù)

        IDEA中集成Git

        1.新建項(xiàng)目,綁定git

        將遠(yuǎn)程的git文件目錄拷貝到項(xiàng)目中即可或者在git同名目錄下創(chuàng)建(git文件為遠(yuǎn)程克隆的git文件)

        三十分鐘帶你Git入門(整理總結(jié))

        刷新后idea會(huì)出現(xiàn)

        三十分鐘帶你Git入門(整理總結(jié))

        2、修改文件,使用IDEA操作git

        • 添加到暫存區(qū) git add .
        • commit提交 git commit
        • push到遠(yuǎn)程倉(cāng)庫(kù) git push

        3、提交測(cè)試

        三十分鐘帶你Git入門(整理總結(jié))

        Git分支

        git分支中常用指令

        #列出所有本地分支 git branch #列出所有遠(yuǎn)程分支 git branch -r #新建一個(gè)分支,但仍然停留在當(dāng)前分支 git branch [branch-name] #新建一個(gè)分支,并切換到該分支 git checkout -b [branch] #合并指定分支到當(dāng)前分支 git merge [branch] #刪除分支 git branch -d [branch-name] #刪除遠(yuǎn)程分支 git push origin --delete [branch-name] git branch -dr [remote/branch]

        推薦學(xué)習(xí):《Git教程》

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 日韩精品无码AV成人观看| 国产成人精品无码片区在线观看| 亚洲国产精品无码中文字| 亚洲一区精品中文字幕| 最新欧美性爱精品一区二区三区| 四虎最新永久在线精品免费| 亚洲精品无码乱码成人| 国产亚洲精品不卡在线| 亚洲愉拍自拍欧美精品| 国产精品熟女高潮视频| 自拍偷自拍亚洲精品情侣| 精品国产人成亚洲区| 亚洲国产精品一区| 国产福利精品一区二区| 中日韩产精品1卡二卡三卡| 精品国内自产拍在线观看 | 无码精品前田一区二区| 国产欧美在线观看精品一区二区| 欧美精品国产日韩综合在线| 国产精品嫩草影院AV| 亚洲精品无码高潮喷水在线| 日韩人妻无码精品无码中文字幕 | 精品久久久久久久久久中文字幕 | 亚洲av无码成人精品区| 精品乱码久久久久久夜夜嗨| 91午夜精品亚洲一区二区三区| 97久久精品无码一区二区| 精品国产三级a∨在线| 久久精品九九亚洲精品| 老司机性色福利精品视频| 四虎国产精品永久在线观看| 亚洲精品美女久久久久99| 亚洲无线观看国产精品| 无码少妇精品一区二区免费动态| 中文字幕久久精品| 在线精品自拍无码| 亚洲国产一成久久精品国产成人综合 | 精品无码人妻一区二区三区不卡 | 青娱乐国产精品视频| 中文字幕日韩精品有码视频| 亚洲AV午夜福利精品一区二区|