日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GIT 源码管理-简介

發(fā)布時間:2025/4/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GIT 源码管理-简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)于GIT

GIT 是一個分布式版本控制軟件,最初由林納斯·托瓦茲(Linus Torvalds)創(chuàng)作,于2005年以GPL發(fā)布。最初目的是為更好地管理Linux內(nèi)核開發(fā)而設(shè)計。是目前世界上最先進(jìn)的分布式版本控制系統(tǒng).

GIT 誕生

很多人都知道,Linus在1991年創(chuàng)建了開源的Linux,從此,Linux系統(tǒng)不斷發(fā)展,已經(jīng)成為最大的服務(wù)器系統(tǒng)軟件了。

Linus雖然創(chuàng)建了Linux,但Linux的壯大是靠全世界熱心的志愿者參與的,這么多人在世界各地為Linux編寫代碼,那Linux的代碼是如何管理的呢?

事實(shí)是,在2002年以前,世界各地的志愿者把源代碼文件通過diff的方式發(fā)給Linus,然后由Linus本人通過手工方式合并代碼!

你也許會想,為什么Linus不把Linux代碼放到版本控制系統(tǒng)里呢?不是有CVS、SVN這些免費(fèi)的版本控制系統(tǒng)嗎?因?yàn)長inus堅定地反對CVS和SVN,這些集中式的版本控制系統(tǒng)不但速度慢,而且必須聯(lián)網(wǎng)才能使用。有一些商用的版本控制系統(tǒng),雖然比CVS、SVN好用,但那是付費(fèi)的,和Linux的開源精神不符。

不過,到了2002年,Linux系統(tǒng)已經(jīng)發(fā)展了十年了,代碼庫之大讓Linus很難繼續(xù)通過手工方式管理了,社區(qū)的弟兄們也對這種方式表達(dá)了強(qiáng)烈不滿,于是Linus選擇了一個商業(yè)的版本控制系統(tǒng)BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神,授權(quán)Linux社區(qū)免費(fèi)使用這個版本控制系統(tǒng)。

安定團(tuán)結(jié)的大好局面在2005年就被打破了,原因是Linux社區(qū)牛人聚集,不免沾染了一些梁山好漢的江湖習(xí)氣。開發(fā)Samba的Andrew試圖破解BitKeeper的協(xié)議(這么干的其實(shí)也不只他一個),被BitMover公司發(fā)現(xiàn)了(監(jiān)控工作做得不錯!),于是BitMover公司怒了,要收回Linux社區(qū)的免費(fèi)使用權(quán)。

Linus可以向BitMover公司道個歉,保證以后嚴(yán)格管教弟兄們,嗯,這是不可能的。實(shí)際情況是這樣的:

Linus花了兩周時間自己用C寫了一個分布式版本控制系統(tǒng),這就是Git!一個月之內(nèi),Linux系統(tǒng)的源碼已經(jīng)由Git管理了!牛是怎么定義的呢?大家可以體會一下。

Git迅速成為最流行的分布式版本控制系統(tǒng),尤其是2008年,GitHub網(wǎng)站上線了,它為開源項(xiàng)目免費(fèi)提供Git存儲,無數(shù)開源項(xiàng)目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。

歷史就是這么偶然,如果不是當(dāng)年BitMover公司威脅Linux社區(qū),可能現(xiàn)在我們就沒有免費(fèi)而超級好用的Git了。

什么是版本控制

版本控制(Revision control)是維護(hù)工程藍(lán)圖的標(biāo)準(zhǔn)作法,能追蹤工程藍(lán)圖從誕生一直到定案的過程。此外,版本控制也是一種軟件工程技巧,借此能在軟件開發(fā)的過程中,確保由不同人所編輯的同一代碼文件案都得到同步。

集中式和分布式

再說分布式是什么前, 我們前看一下什么是集中式.

集中式

集中式版本控制系統(tǒng),版本庫是集中存放在中央服務(wù)器的,而干活的時候,用的都是自己的電腦,所以要先從中央服務(wù)器取得最新的版本,然后開始干活,干完活了,再把自己的活推送給中央服務(wù)器。中央服務(wù)器就好比是一個圖書館,你要改一本書,必須先從圖書館借出來,然后回到家自己改,改完了,再放回圖書館。

集中式版本控制系統(tǒng)最大的毛病就是必須聯(lián)網(wǎng)才能工作,如果在局域網(wǎng)內(nèi)還好,帶寬夠大,速度夠快,可如果在互聯(lián)網(wǎng)上,遇到網(wǎng)速慢的話,可能提交一個10M的文件就需要5分鐘,這還不得把人給憋死啊。

分布式

那分布式版本控制系統(tǒng)與集中式版本控制系統(tǒng)有何不同呢?首先,分布式版本控制系統(tǒng)根本沒有“中央服務(wù)器”,每個人的電腦上都是一個完整的版本庫,這樣,你工作的時候,就不需要聯(lián)網(wǎng)了,因?yàn)榘姹編炀驮谀阕约旱碾娔X上。既然每個人電腦上都有一個完整的版本庫,那多個人如何協(xié)作呢?比方說你在自己電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

和集中式版本控制系統(tǒng)相比,分布式版本控制系統(tǒng)的安全性要高很多,因?yàn)槊總€人電腦里都有完整的版本庫,某一個人的電腦壞掉了不要緊,隨便從其他人那里復(fù)制一個就可以了。而集中式版本控制系統(tǒng)的中央服務(wù)器要是出了問題,所有人都沒法干活了。

在實(shí)際使用分布式版本控制系統(tǒng)的時候,其實(shí)很少在兩人之間的電腦上推送版本庫的修改,因?yàn)榭赡苣銈儌z不在一個局域網(wǎng)內(nèi),兩臺電腦互相訪問不了,也可能今天你的同事病了,他的電腦壓根沒有開機(jī)。因此,分布式版本控制系統(tǒng)通常也有一臺充當(dāng)“中央服務(wù)器”的電腦,但這個服務(wù)器的作用僅僅是用來方便“交換”大家的修改,沒有它大家也一樣干活,只是交換修改不方便而已。

安裝GIT

ubuntu Linux

1、$ git 2、The program 'git' is currently not installed. You can install it by typing:

使用下面的命令進(jìn)行安裝git工具.

$ sudo apt-get install git

mac ox

  • 下載安裝 xcode 開發(fā)工具里的 xcode-commnadline 本身帶git管理工具.
  • 使用brew安裝工具直接安裝
  • $ brew install git

    創(chuàng)建版本庫

    什么是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。

    第一步, 先要創(chuàng)建一個目錄, 這個目錄就是用來存放倉庫的.

    $ mkdir html $ cd html

    第二步, 使用git init命令, 將當(dāng)前目錄創(chuàng)建成git倉庫.

    $ git init Initialized empty Git repository in /home/user/html/.git/

    馬上就把倉庫創(chuàng)建成功了, 并提示這是一個空倉庫.

    $ ls -al .git

    我們看一下當(dāng)前目錄有什么東西? 會發(fā)現(xiàn)有一個隱藏的.git目錄. 這個目錄就是存放著git管理工具用到的所有信息和基本配置信息. 沒事千萬不要手動修改這個目錄, 不然改亂了, git倉庫就給破壞了.

    提交

    提交就是要把需要git管理的文件保存到倉庫里, 這種保存類似前面所講的一個版本的保存.
    只有把修改的的狀態(tài)提供到倉庫里, 才方便把倉庫中把它取出來.

    增加文件

    提交前需要先把需要關(guān)注它修改有文件或是需要提交到倉庫的文件加到管理列表里來.

    當(dāng)前目錄里沒有文件, 那么我們先創(chuàng)建一個文件README.

    $ touch README

    編輯這個文件, 寫一點(diǎn)東西在里面.

    $ vim README

    先用查看當(dāng)前狀態(tài)的命令, 查看一下現(xiàn)在目錄下文件的狀態(tài).

    $ git status

    把文件加到倉庫中去, 只有加到倉庫中了, 才可能看一下文件的變化.

    $ git add README

    現(xiàn)在使用查看狀態(tài)的命令, 看一下是目錄下文件的狀態(tài).

    $ git status

    提交

    $ git commit

    配置用戶信息

    配置用戶名, 這個用戶名是你的提交patch的名子, 最好寫真的名了, 不是網(wǎng)名, 如果有一天你成為名人了,那這個東西會一直印著你的足跡.

    $ git config --global user.name

    配置用戶郵箱, 這個郵箱最好寫你最常用的郵箱, 說不定會有人給你寫郵件的, 這個是可能來自世界的任何角落, 可能是任何膚色和眼睛.

    $ git config --global user.email

    配置編輯提交信息的編輯器, 我們熟悉的編輯器是vim. 使用這個去編輯提交信息, 最好把每一次提交信息填寫寫的全面, 不是為了給別人看, 萬一那天自己想回顧一下. 也需要詳細(xì)的信息.

    $ git config --global core.editor vim

    查看提交信息

    我們剛才學(xué)習(xí)了提交信息, 那現(xiàn)在查看一下我們提交的信息.

    $ git log

    轉(zhuǎn)載于:https://www.cnblogs.com/mophy/p/7015969.html

    總結(jié)

    以上是生活随笔為你收集整理的GIT 源码管理-简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。