亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

GitHub 相關(guān)內(nèi)容

系統(tǒng) 1878 0

1.?Git是分布式版本控制系統(tǒng)

  • 集中式版本控制系統(tǒng):版本庫(kù)是 集中存放在中央服務(wù)器的 ,而干活的時(shí)候,用的都是自己的電腦,所以要先從中央服務(wù)器取得最新的版本,然后開(kāi)始干活,干完活了,再把自己的活推送給中央服務(wù)器。中央服務(wù)器就好比是一個(gè)圖書館,你要改一本書,必須先從圖書館借出來(lái),然后回到家自己改,改完了,再放回圖書館。(集中式版本控制系統(tǒng)最大的毛病就是必須聯(lián)網(wǎng)才能工作,如果在局域網(wǎng)內(nèi)還好,帶寬夠大,速度夠快,可如果在互聯(lián)網(wǎng)上,遇到網(wǎng)速慢的話,可能提交一個(gè)10M的文件就需要5分鐘,這還不得把人給憋死啊。)
  • 分布式版本控制系統(tǒng):根本沒(méi)有“中央服務(wù)器”, 每個(gè)人的電腦上都是一個(gè)完整的版本庫(kù) ,這樣,你工作的時(shí)候,就不需要聯(lián)網(wǎng)了,因?yàn)榘姹編?kù)就在你自己的電腦上。既然每個(gè)人電腦上都有一個(gè)完整的版本庫(kù),那多個(gè)人如何協(xié)作呢?比方說(shuō)你在自己電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時(shí),你們倆之間只需把各自的修改推送給對(duì)方,就可以互相看到對(duì)方的修改了。在實(shí)際使用分布式版本控制系統(tǒng)的時(shí)候,其實(shí)很少在兩人之間的電腦上推送版本庫(kù)的修改,因?yàn)榭赡苣銈儌z不在一個(gè)局域網(wǎng)內(nèi),兩臺(tái)電腦互相訪問(wèn)不了,也可能今天你的同事病了,他的電腦壓根沒(méi)有開(kāi)機(jī)。因此, 分布式版本控制系統(tǒng)通常也有一臺(tái)充當(dāng)“中央服務(wù)器”的電腦,但這個(gè)服務(wù)器的作用僅僅是用來(lái)方便“交換”大家的修改,沒(méi)有它大家也一樣干活,只是交換修改不方便而已。

2. 創(chuàng)建版本庫(kù) ( creating the repository)

  • 版本庫(kù)又名倉(cāng)庫(kù)( repository) ,你可以簡(jiǎn)單理解成一個(gè)目錄,這個(gè)目錄里面的所有文件都可以被Git管理起來(lái),每個(gè)文件的修改、刪除,Git都能跟蹤,以便任何時(shí)刻都可以追蹤歷史,或者在將來(lái)某個(gè)時(shí)刻可以“還原”。

  • 所以,創(chuàng)建一個(gè)版本庫(kù)非常簡(jiǎn)單,首先,選擇一個(gè)合適的地方,創(chuàng)建一個(gè)空目錄:
      $ mkdir learngit

$ cd learngit

$ pwd  
      
        注:
        
          pwd
        
        命令用于顯示當(dāng)前目錄。在我的Mac上,這個(gè)倉(cāng)庫(kù)位于
        
          /Users/michael/learngit
        
      
      

/Users/michael/learngit


    

  如果你使用Windows系統(tǒng),為了避免遇到各種莫名其妙的問(wèn)題,請(qǐng)確保目錄名(包括父目錄)不包含中文

      
        $ git init  
        
          注意:通過(guò)
          
            git init
          
          命令把這個(gè)目錄變成Git可以管理的倉(cāng)庫(kù)
        
        
          Initialized empty Git repository 
        
      
      
        in /Users/michael/learngit/.git/
      
    

? ? 注意:瞬間Git就把倉(cāng)庫(kù)建好了,而且告訴你是一個(gè)空的倉(cāng)庫(kù)(empty Git repository),細(xì)心的讀者可以發(fā)現(xiàn)當(dāng)前目錄下多了一個(gè) .git 的目錄,這個(gè)目錄是Git來(lái)跟蹤管理版本庫(kù)的,沒(méi)事千萬(wàn)不要手動(dòng)修改這個(gè)目錄里面的文件,不然改亂了,就把Git倉(cāng)庫(kù)給破壞了。

3. ?把文件添加到版本庫(kù)

  • 注意: 所有的版本控制系統(tǒng),其實(shí)只能跟蹤文本文件的改動(dòng) ,比如 TXT文件,網(wǎng)頁(yè),所有的程序代碼等等, Git也不例外。 版本控制系統(tǒng)可以告訴你每次的改動(dòng),比如在第5行加了一個(gè)單詞“Linux”,在第8行刪了一個(gè)單詞“Windows”。 圖片、視頻這些二進(jìn)制文件, 雖然也能由版本控制系統(tǒng)管理,但 沒(méi)法跟蹤文件的變化 ,只能把二進(jìn)制文件每次改動(dòng)串起來(lái),也就是只知道圖片從100KB改成了120KB,但到底改了啥,版本控制系統(tǒng)不知道,也沒(méi)法知道。
  • 不幸的是,Microsoft的Word格式是二進(jìn)制格式,因此,版本控制系統(tǒng)是沒(méi)法跟蹤Word文件的改動(dòng)的,前面我們舉的例子只是為了演示,如果要真正使用版本控制系統(tǒng),就要以純文本方式編寫文件。

    因?yàn)槲谋臼怯芯幋a的,比如中文有常用的GBK編碼,日文有Shift_JIS編碼,如果沒(méi)有歷史遺留問(wèn)題,強(qiáng)烈 建議使用標(biāo)準(zhǔn)的UTF-8編碼 ,所有語(yǔ)言使用同一種編碼, 既沒(méi)有沖突,又被所有平臺(tái)所支持

  • 使用Windows的童鞋要特別注意

    千萬(wàn)不要使用Windows自帶的 記事本 編輯任何文本文件 。原因是Microsoft開(kāi)發(fā)記事本的團(tuán)隊(duì)使用了一個(gè)非常弱智的行為來(lái)保存UTF-8編碼的文件,他們自作聰明地在每個(gè)文件開(kāi)頭添加了0xefbbbf(十六進(jìn)制)的字符,你會(huì)遇到很多不可思議的問(wèn)題,比如,網(wǎng)頁(yè)第一行可能會(huì)顯示一個(gè)“?”,明明正確的程序一編譯就報(bào)語(yǔ)法錯(cuò)誤,等等,都是由記事本的弱智行為帶來(lái)的。建議你下載 Notepad++ 代替記事本,不但功能強(qiáng)大,而且免費(fèi)!記得把Notepad++的默認(rèn)編碼設(shè)置為 UTF-8 without BOM 即可(個(gè)人更喜歡utraedit)

  • 言歸正傳,現(xiàn)在我們編寫一個(gè) readme.txt 文件,內(nèi)容如下:

            
                Git 
                
                  is
                
                
                   a version control system.
    
    Git 
                
                
                  is
                
                 free software.
              

    ?

    ? 一定要放到 learngit 目錄下(子目錄也行), 因?yàn)檫@是一個(gè)Git倉(cāng)庫(kù),放到其他地方Git再厲害也找不到這個(gè)文件。

    第一步,用命令 git add 告訴Git,把文件添加到倉(cāng)庫(kù)

                $ git add readme.txt
              

    第二步,用命令 git commit 告訴Git,把文件提交到倉(cāng)庫(kù):

    ?

                $ git commit -m 
                
                  "
                
                
                  wrote a readme file
                
                
                  "
                
              

? ? ? ? 簡(jiǎn)單解釋一下 git commit 命令, -m? 后面輸入的是 本次提交的說(shuō)明 ,可以輸入任意內(nèi)容,當(dāng)然最好是有意義的, 這樣你就能從歷史記錄里方 ? ? ? ? ? 便地找到改動(dòng)記錄

  • 為什么Git添加文件需要 add commit 一共兩步呢?因?yàn)? commit 可以一次提交很多文件,所以你可以多次 add 不同的文件,比如:

              
                $ git add file1.txt
    
    $ git add file2.txt
    
    $ git add file3.txt
    
    $ git commit 
              
              -m 
              
                "
              
              
                add 3 files.
              
              
                "
              
            

    ?

4.?時(shí)光機(jī)穿梭

  • 我們已經(jīng)成功地添加并提交了一個(gè)readme.txt文件,現(xiàn)在,是時(shí)候繼續(xù)工作了,于是,我們繼續(xù)修改readme.txt文件,改成如下內(nèi)容:
              Git 
              
                is
              
              
                 a distributed version control system.
    
    Git 
              
              
                is
              
               free software.
            

    現(xiàn)在,運(yùn)行 git status 命令看看結(jié)果:

  •           
                $ git status
    
    # On branch master
    
    # Changes not staged 
              
              
                for
              
              
                 commit:
    
    #   (use 
              
              
                "
              
              
                git add <file>...
              
              
                "
              
              
                 to update what will be committed)
    
    #   (use 
              
              
                "
              
              
                git checkout -- <file>...
              
              
                "
              
               to discard changes 
              
                in
              
              
                 working directory)
    
    #
    
    #    modified:   readme.txt
    
    #
    
    no changes added to commit (use 
              
              
                "
              
              
                git add
              
              
                "
              
               and/or 
              
                "
              
              
                git commit -a
              
              
                "
              
              )
            

    ?

    git status 命令可以讓我們時(shí)刻掌握倉(cāng)庫(kù)當(dāng)前的狀態(tài),上面的命令告訴我們 ,readme.txt被修改過(guò)了,但還沒(méi)有準(zhǔn)備提交的修改

    雖然Git告訴我們r(jià)eadme.txt被修改了,但如果 能看看具體修改了什么內(nèi)容 ,自然是很好的。比如你休假兩周從國(guó)外回來(lái),第一天上班時(shí),已經(jīng)記不清上次怎么修改的readme.txt,所以,需要用 git diff 這個(gè)命令看看

              
                $ git diff readme.txt 
    
    diff 
              
              --git a/readme.txt b/
              
                readme.txt
    
    index 46d49bf..9247db6 
              
              
                100644
              
              
    
    --- a/
              
                readme.txt
    
    
              
              +++ b/
              
                readme.txt
    
    @@ 
              
              -
              
                1
              
              ,
              
                2
              
               +
              
                1
              
              ,
              
                2
              
              
                 @@
    
    
              
              -Git 
              
                is
              
              
                 a version control system.
    
    
              
              +Git 
              
                is
              
              
                 a distributed version control system.
    
     Git 
              
              
                is
              
               free software.
            

    git diff 顧名思義就是 查看difference ,顯示的格式正是Unix通用的diff格式,可以從上面的命令輸出看到,我們?cè)诘谝恍刑砑恿艘粋€(gè)“distributed”單詞。

    知道了對(duì)readme.txt作了什么修改后,再把它提交到倉(cāng)庫(kù)就放心多了, 提交修改和提交新文件是一樣的兩步 ,第一步是 git add

              $ git add readme.txt
            

    同樣沒(méi)有任何輸出。在執(zhí)行第二步 git commit 之前,我們?cè)龠\(yùn)行 git status 看看當(dāng)前倉(cāng)庫(kù)的狀態(tài):

              
                $ git status
    
    # On branch master
    
    # Changes to be committed:
    
    #   (use 
              
              
                "
              
              
                git reset HEAD <file>...
              
              
                "
              
              
                 to unstage)
    
    #
    
    #       modified:   readme.txt
    
    #
              
            

    git status 告訴我們, 將要被提交的修改包括readme.txt, 下一步,就可以放心地提交了:

              $ git commit -m 
              
                "
              
              
                add distributed
              
              
                "
              
            

    輸出

              
                [master ea34578] add distributed
    
     
              
              
                1
              
               file changed, 
              
                1
              
               insertion(+), 
              
                1
              
               deletion(-)
            

    提交后,我們?cè)儆? git status 命令看看倉(cāng)庫(kù)的當(dāng)前狀態(tài):

              $ git status
            

    輸出?

  •           
                # On branch master
    
    nothing to commit (working directory clean)
                
    注:Git告訴我們當(dāng)前沒(méi)有需要提交的修改,而且,工作目錄是干凈(working directory clean)的。

GitHub 相關(guān)內(nèi)容


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 狠狠色伊人亚洲综合成人 | 5060网永久免费一级毛片 | 国产精品一国产精品 | 老司机免费精品视频 | 嫩小xxxxx性bbbbb孕妇 | 日韩视频免费在线播放 | 亚洲国产第一区 | 久久免费网 | 亚洲综合第一欧美日韩中文 | 中文字幕 日韩有码 | 精品一区二区三区在线观看视频 | 4虎最新网址 | 中文字幕不卡免费高清视频 | 久久综合久久伊人 | 福利在线看片 | 精品久久久久久久中文字幕 | 伊人久久亚洲综合天堂 | 久热这里只有精品99国产6 | 久草在线中文最新视频 | 一机毛片| 国产一国产一级毛片视频在线 | 欧美精品xxx | 久久久精品成人免费看 | 99热精品久久只有精品30 | 日韩视频一区二区三区 | 国产永久一区二区三区 | 西西亚洲 | 成人精品视频 成人影院 | 亚洲精品乱码久久久久久 | 久久香蕉国产精品一区二区三 | 国产精品久久久久国产精品三级 | 奇米色888| 一级片免| 国内精品久久久久不卡 | 欧美日产 | 日日干天天操 | 欧美成人毛片免费视频 | 777奇米影视久久激情日韩欧美 | 久久亚洲这里只有精品18 | 九色最新网址 | 手机看片福利盒子久久青 |