• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            GIT學(xué)習(xí)筆記(一)

            版權(quán)聲明:轉(zhuǎn)載時(shí)請(qǐng)以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明
            http://jjuan-flake.blogbus.com/logs/106556090.html

            由于之前配過(guò)CSV使用過(guò)SVN,剛接觸GIT時(shí)不能區(qū)分GIT與前類(lèi)版本控制系統(tǒng)之間的區(qū)別,使用對(duì)SVN的了解來(lái)試圖直接使用GIT。但其實(shí)兩者之間后較大的區(qū)別,他們功能相同,實(shí)現(xiàn)方式卻差異很大。
            1.部署差異:
            1.1.集中式版本控制系統(tǒng)
             SVN與CSV同屬于集中式版本控制系統(tǒng),所謂集中式即進(jìn)行版本控制權(quán)限在服務(wù)器上,服務(wù)器保存所有文件的修訂版,各開(kāi)發(fā)終端只是將服務(wù)器上最新的修訂版取回,然后提交更改后的版本。終端并不保存文件的所有修訂版。
             示意圖:點(diǎn)擊查看原始尺寸
                
             這種方式對(duì)系統(tǒng)穩(wěn)定性要求較高,因?yàn)橹挥蟹?wù)器存儲(chǔ)了一個(gè)完整的版本。
            1.2 分布式版本控制系統(tǒng)
             GIT屬于分布式版本控制系統(tǒng),顧名思義,分布式即各終端都參與到整個(gè)版本控制系統(tǒng)中來(lái)。開(kāi)發(fā)終端保存的不是最新版本的鏡像,而是整個(gè)版本庫(kù),是整個(gè)版本控制系統(tǒng)的完整備份。因此每次加入一個(gè)已有的代碼庫(kù)時(shí)使用的是clone【克隆】操作。
             示意圖:
             
            2. 存儲(chǔ)差異
            2.1 差異存儲(chǔ)(CVS,SVN)
             CVS,SVN這類(lèi)版本控制系統(tǒng)中,各版本存儲(chǔ)的是修改后的文件與原之間的差異信息,每次記錄文件內(nèi)容的具體哪個(gè)部分發(fā)生了什么變化。

            2.2 快照存儲(chǔ)
             GIT則只關(guān)心文件的整體變化,在每次版本變化時(shí)將此時(shí)的文件狀態(tài)做一個(gè)快照,只保存指向這個(gè)快照的索引信息。

            3. 對(duì)網(wǎng)路的依賴(lài)
             使用CVS和SVN需時(shí)時(shí)連接到遠(yuǎn)程服務(wù)器,而git則是在本地維護(hù)一個(gè)版本庫(kù),所以提交等都在本地進(jìn)行,除非將更改一次性push到遠(yuǎn)程服務(wù)器,否則都不需要連接網(wǎng)絡(luò)。


            一、安裝配置(windows)
             git 擁有針對(duì)各個(gè)平臺(tái)的版本。windows下的有一個(gè)模擬shell的版本 msysgit 【http://code.google.com/p/msysgit/】在此下載最新版本。
             git的安裝過(guò)程就是經(jīng)典的windows的下一步點(diǎn)擊過(guò)程,如果沒(méi)有特殊選擇,使用默認(rèn)選項(xiàng)即可。
             git安裝之后需要做幾個(gè)配置。配置文件均在msysgit安裝目錄中etc下。

            1 shell終端的配置
             msysgit安裝之后會(huì)在開(kāi)始菜單里進(jìn)入shell終端的目錄。此shell terminal 使用ls命令時(shí)不能列出中文文件。
             為了讓ls能夠列出中文文件,需要加上 --show-control-char 選項(xiàng),--color=auto 選項(xiàng)時(shí)目錄和文件有顏色區(qū)分。為了可以直接使用ls達(dá)到我們所需效果,可在git-completion.bash文件中加入:
              alias ls='ls --show-control-char --color=auto'
              alias ll='ls -al --show-control-char --color=auto'
             給ls命令定義別名

            2 git的配置 gitconfig
             
            [gui]
             encoding=utf-8
            # 設(shè)置成代碼庫(kù)一樣的編碼,以便在git gui中正常顯示中文
            [i18n]
             commitencoding=GB2312
            #設(shè)置commit說(shuō)明的編碼,windows一般是gb2312
            [user]
             email = jjuan_flake@sina.com
             name = kunjuan
            #說(shuō)明提交用戶


            3 配置輸入終端 inputrc
              
              set output-meta on
              set convert-meta off 
            #使得git bash終端可輸入中文

             


            二、git的使用

            1. git init
             在本地建立版本庫(kù)時(shí)使用此命令處事化一個(gè)代碼版本控制庫(kù)
            2. git clone [url] [myname]
             在本地克隆一個(gè)已有的網(wǎng)絡(luò)上的版本庫(kù),url協(xié)議可以是git,https等。如果加了myname則重命名版本庫(kù)的名字為myname,否則使用原名。使用clone命令時(shí)無(wú)需在本地先為代碼庫(kù)建立一個(gè)目錄,執(zhí)行clone后當(dāng)前目錄自動(dòng)生成代碼庫(kù)的目錄。
             類(lèi)似于svn checkout,只是此命令克隆的是整個(gè)版本庫(kù)
            3.  git add 
             把新建的一個(gè)或多個(gè)文件設(shè)定成跟蹤狀態(tài),git開(kāi)始跟蹤這個(gè)文件的狀態(tài)信息。將以跟蹤的修改文件暫存。
            4. git commit [-m '注釋']
             提交暫存文件到本地代碼庫(kù)
            5. git status 
             查看本分之中文件跟蹤狀態(tài)
            6. git pull
             用遠(yuǎn)程庫(kù)更新本地庫(kù)
            7. git checkout 
             git checkout 分支名:切換到某分支下
             git checkout 文件名:更新本文件到上次提交的版本
             checkout切換分支后,此事文件狀態(tài)是此分支的,編輯某個(gè)文件,則編輯的只是這個(gè)分支的文件狀態(tài),不會(huì)碰觸其他分支的本文件。在此文件commit之前checkout到另外的分支后,還是可以看見(jiàn)此文件更改后的信息,在更改的分支commit之后,則切換回之前的分支后就看不見(jiàn)另一個(gè)分支更改的部分了。
            8. git branch 
             不加名字即查看所有分支,列表中有*的是當(dāng)前分支
             加名字則新建一個(gè)分支,
              -b 則 新建并切換至此分分支
            9.  git merge branchname
              將branchname合并到本分支
            git的工作流程
              檢出遠(yuǎn)程版本庫(kù)到本地=》[新增文件(設(shè)置跟蹤)]=》修改=》暫存【add】=》提交到本地代碼庫(kù)的本分支【commit】=》合并的master分支=》在master分支中推到服務(wù)器。

            分支
             一個(gè)指向快照的指針。


            posted on 2011-07-12 16:06 楊粼波 閱讀(898) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久99精品久久久久婷婷| 熟妇人妻久久中文字幕| 女同久久| 无码人妻少妇久久中文字幕| 亚洲精品无码久久不卡| 狠狠色婷婷久久综合频道日韩| 少妇人妻88久久中文字幕| 99久久这里只有精品| 中文精品久久久久国产网址| 免费一级欧美大片久久网| 精品国产乱码久久久久久呢| 久久免费线看线看| 久久久久人妻一区二区三区vr| 国产精品无码久久综合| 国产69精品久久久久99| 久久夜色精品国产亚洲| 久久精品国产精品青草app| 亚洲国产精品狼友中文久久久| 久久久久久久亚洲Av无码| 久久久久久噜噜精品免费直播| av色综合久久天堂av色综合在| 欧美久久综合性欧美| 18禁黄久久久AAA片| 久久久久久免费一区二区三区 | 国产精品99久久99久久久| 国产精品嫩草影院久久| 亚洲精品乱码久久久久久蜜桃不卡 | 久久亚洲高清综合| 久久人人爽爽爽人久久久| 精品久久久久久国产免费了| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 久久久久久久久久久免费精品| 综合久久国产九一剧情麻豆| 国内精品久久久久影院网站| 久久精品人人做人人妻人人玩| 久久国产香蕉一区精品| www.久久热.com| 亚洲色欲久久久综合网| 伊人久久大香线蕉无码麻豆| 久久久久久久尹人综合网亚洲| 日韩精品久久久久久免费|