• <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>

            牽著老婆滿街逛

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

            GIT學習筆記(一)

            版權聲明:轉載時請以超鏈接形式標明文章原始出處和作者信息及本聲明
            http://jjuan-flake.blogbus.com/logs/106556090.html

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

            2.2 快照存儲
             GIT則只關心文件的整體變化,在每次版本變化時將此時的文件狀態做一個快照,只保存指向這個快照的索引信息。

            3. 對網路的依賴
             使用CVS和SVN需時時連接到遠程服務器,而git則是在本地維護一個版本庫,所以提交等都在本地進行,除非將更改一次性push到遠程服務器,否則都不需要連接網絡。


            一、安裝配置(windows)
             git 擁有針對各個平臺的版本。windows下的有一個模擬shell的版本 msysgit 【http://code.google.com/p/msysgit/】在此下載最新版本。
             git的安裝過程就是經典的windows的下一步點擊過程,如果沒有特殊選擇,使用默認選項即可。
             git安裝之后需要做幾個配置。配置文件均在msysgit安裝目錄中etc下。

            1 shell終端的配置
             msysgit安裝之后會在開始菜單里進入shell終端的目錄。此shell terminal 使用ls命令時不能列出中文文件。
             為了讓ls能夠列出中文文件,需要加上 --show-control-char 選項,--color=auto 選項時目錄和文件有顏色區分。為了可以直接使用ls達到我們所需效果,可在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
            # 設置成代碼庫一樣的編碼,以便在git gui中正常顯示中文
            [i18n]
             commitencoding=GB2312
            #設置commit說明的編碼,windows一般是gb2312
            [user]
             email = jjuan_flake@sina.com
             name = kunjuan
            #說明提交用戶


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

             


            二、git的使用

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

            分支
             一個指向快照的指針。


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

            久久夜色精品国产亚洲av| 91精品国产综合久久精品| 久久美女人爽女人爽| 少妇人妻88久久中文字幕| 久久综合九色综合网站| 精品人妻伦九区久久AAA片69| 噜噜噜色噜噜噜久久| 亚洲精品无码久久久久AV麻豆| 一本久久综合亚洲鲁鲁五月天| 亚洲AⅤ优女AV综合久久久| 中文字幕无码久久精品青草| 模特私拍国产精品久久| 色婷婷久久综合中文久久蜜桃av| 久久久久久毛片免费播放| 久久久91精品国产一区二区三区 | 久久99热这里只频精品6| 亚洲国产精品无码久久久久久曰| 一极黄色视频久久网站| 亚洲精品乱码久久久久66| 久久久久久毛片免费播放| www亚洲欲色成人久久精品| 久久伊人中文无码| 久久国产欧美日韩精品| 99久久国产主播综合精品| 婷婷久久精品国产| 久久精品国产亚洲av麻豆色欲| 国产高清美女一级a毛片久久w| 亚洲性久久久影院| 久久精品无码专区免费青青| 久久精品夜色噜噜亚洲A∨| 精品久久久无码21p发布 | 伊人久久综在合线亚洲2019| 久久久精品人妻无码专区不卡| 亚洲中文精品久久久久久不卡| 91精品婷婷国产综合久久| 伊人久久精品无码av一区| 国产高清美女一级a毛片久久w| 亚洲伊人久久精品影院| 久久免费视频一区| 国产亚洲欧美成人久久片| 久久强奷乱码老熟女网站|