有關(guān)git的一點(diǎn)理解

什么是git舟肉?

這里有個(gè)故事

從前有個(gè)人叫Linus Benedict Torvalds,在上大學(xué)為了方便和讀寫和下載某些東西查库,順手編寫了了磁盤驅(qū)動(dòng)程序和文件系統(tǒng)路媚,結(jié)果這后來便是linux內(nèi)核的雛形。隨著時(shí)間的推移樊销,linux系統(tǒng)的不斷壯大和完善整慎,Linus Benedict Torvalds發(fā)現(xiàn)代碼太多了,怎么越來越不好管理围苫,最后便創(chuàng)立了git.

所以git就是個(gè)軟件(一般來說是分布式版本控制系統(tǒng))

所以git實(shí)際上就是用來管理linux代碼的一個(gè)軟件(其實(shí)就是個(gè)軟件)裤园,后來人們發(fā)現(xiàn),這軟件非常好用剂府,不僅僅是用來管理linux代碼拧揽,管理其他項(xiàng)目也很好用.于是github就出現(xiàn)了

那什么是github呢?

這里有個(gè)介紹

github是一家公司,一家利用分布式版本控制系統(tǒng)(git)而建立的一個(gè)公司(平臺(tái)).不僅自身盈利巨大淤袜,吸引著名投資公司投資痒谴,也服務(wù)了世界,方便了無數(shù)開發(fā)人員等.

所以github就是個(gè)公司铡羡,其實(shí)也是一個(gè)巨大的git系統(tǒng)(對(duì)我們來說是個(gè)很好用的工具)

那具體對(duì)于我們有什么好用的呢积蔚?為何要使用git呢?

這里有個(gè)故事

雖然Linus Benedict Torvalds開放了系統(tǒng)的源代碼烦周,也有無數(shù)志愿愛好者的幫助尽爆,但linux的管理更新壯大過程卻十分繁瑣,因?yàn)槭鞘澜绺鞯氐膼酆谜邔⒋a發(fā)給linus读慎,linus最后進(jìn)行手工代碼合并漱贱。一開始還好,可以管理贪壳,隨著linux的不斷壯大饱亿,不僅linus忙不過來蚜退,世界各地的linux愛好者也不滿意了闰靴,“我去年就修改了代碼發(fā)給你了,怎么還沒修復(fù)钻注?”怎么系統(tǒng)還沒改蚂且?“這個(gè)時(shí)候就linus就很愁了。這個(gè)時(shí)候怎么辦呢幅恋?git系統(tǒng)也就應(yīng)運(yùn)而生了(Linus之前還選擇了一個(gè)商業(yè)的版本控制系統(tǒng)BitKeeper)為了方便管理杏死,linus創(chuàng)立的git是分布式版本控制系統(tǒng)

比起之前l(fā)inus的管理方式,來對(duì)比看看這種管理方式有什么優(yōu)點(diǎn)呢?

linus之前的管理方式:
linux的源代碼是集中存放在中央服務(wù)器的捆交,而干活的時(shí)候淑翼,用的都是自己的電腦,所以要先從中央服務(wù)器取得最新的版本品追,然后開始干活玄括,干完活了,再把自己的活推送給中央服務(wù)器肉瓦。中央服務(wù)器就好比是一個(gè)圖書館遭京,你要改一本書,必須先從圖書館借出來泞莉,然后回到家自己改哪雕,改完了,再放回圖書館鲫趁。
git的分布式版本控制系統(tǒng):
方便性:
分布式版本控制系統(tǒng)根本沒有“中央服務(wù)器”斯嚎,每個(gè)人的電腦上都是一個(gè)完整的版本庫,這樣,你工作的時(shí)候孝扛,就不需要聯(lián)網(wǎng)了列吼,因?yàn)榘姹編炀驮谀阕约旱碾娔X上。既然每個(gè)人電腦上都有一個(gè)完整的版本庫苦始,那多個(gè)人如何協(xié)作呢寞钥?比方說你在自己電腦上改了文件A,你的同事也在他的電腦上改了文件A陌选,這時(shí)理郑,你們倆之間只需把各自的修改推送給對(duì)方,就可以互相看到對(duì)方的修改了咨油。
安全性:
因?yàn)槊總€(gè)人電腦里都有完整的版本庫您炉,某一個(gè)人的電腦壞掉了不要緊,隨便從其他人那里復(fù)制一個(gè)就可以了役电。而集中式版本控制系統(tǒng)的中央服務(wù)器要是出了問題赚爵,所有人都沒法干活了。
一般實(shí)際使用情況:
其實(shí)很少在兩人之間的電腦上推送版本庫的修改法瑟,因?yàn)榭赡苣銈儌z不在一個(gè)局域網(wǎng)內(nèi)冀膝,兩臺(tái)電腦互相訪問不了,也可能今天你的同事病了霎挟,他的電腦壓根沒有開機(jī)窝剖。因此,分布式版本控制系統(tǒng)通常也有一臺(tái)充當(dāng)“中央服務(wù)器”的電腦酥夭,但這個(gè)服務(wù)器的作用僅僅是用來方便“交換”大家的修改赐纱,沒有它大家也一樣干活,只是交換修改不方便而已熬北。

那git和github怎么用呢疙描?

既然git是個(gè)軟件,那肯定要安裝吧.那怎么安裝呢讶隐?
(git最初是用于管理linux代碼起胰,所以和linux相性非常好,所以就先講講在linux系統(tǒng)上的使用.)

1.git的安裝

先打開終端整份,然后輸入git看系統(tǒng)是否安裝

$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

這就很明確的告訴你輸入sudo apt-get install git就可以安裝git了
安裝完git后才是第一步待错,既然知道了git的系統(tǒng)結(jié)構(gòu),那第二步肯定是在本地建個(gè)倉庫烈评,在鏈接到遠(yuǎn)程倉庫(或者先建立遠(yuǎn)程倉庫火俄,在克隆到本地)這兩種都行,下面都講讲冠,但我習(xí)慣先建立本地庫瓜客,有本地才有遠(yuǎn)端

2.創(chuàng)建個(gè)本地倉庫(版本庫,本地文件夾,)

打開終端谱仪,輸入代碼

mkdir 文件名(新建文件夾)
$ cd 文件名(打開文件夾)
git init

隨后出現(xiàn)結(jié)果

$ git init
Initialized empty Git repository in /Users/michael/文件名/.git/

這個(gè)時(shí)候版本庫就建立完畢了

3.把文件添加到版本庫

1.先把要提交的文件放到目錄下(子目錄也行)玻熙,因?yàn)檫@是一個(gè)Git倉庫,放到其他地方Git再厲害也找不到這個(gè)文件疯攒。git add 文件名(比如learn.txt)
沒有任何消息嗦随,說明執(zhí)行成功,沒有消息就是好消息
2.git commit -m“first commit”
簡單解釋一下git commit命令敬尺,-m后面輸入的是本次提交的說明枚尼,可以輸入任意內(nèi)容,當(dāng)然最好是有意義的砂吞,這樣你就能從歷史記錄里方便地找到改動(dòng)記錄署恍。

這個(gè)時(shí)候你就會(huì)發(fā)現(xiàn),提交一個(gè)文件版本庫需要兩步addcommit蜻直,哪為啥需要兩步呢盯质?難道不能一步就提交嗎?因?yàn)閏ommit可以一次提交很多文件概而,所以你可以多次add不同的文件呼巷,比如:

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

3.git remote add origin https://github.com/ranzhouhang/ranzhouhang-task62-homework1.git
這里的origin是倉庫的名字(默認(rèn)),后面網(wǎng)址的是遠(yuǎn)端倉庫的地址(這一步有點(diǎn)早了到腥,還需先建立遠(yuǎn)端倉庫)

4.建立遠(yuǎn)程倉庫

首先朵逝,登陸GitHub蔚袍,然后乡范,在右上角找到“Create a new repo”按鈕,創(chuàng)建一個(gè)新的倉庫:
(根據(jù)網(wǎng)站按鈕走過程吧啤咽,注冊(cè)登錄然后建倉庫)等圖床工具好了再弄點(diǎn)圖片吧

5.有關(guān)git的基礎(chǔ)操作

除了最基本的提交和和遠(yuǎn)程端同步晋辆,我們還會(huì)遇到:萬一忘記提交沒有提交了咋辦?git還是很周到的宇整,我們可以用git status查看倉庫當(dāng)前狀態(tài)瓶佳。比如:

$ git status
# On branch master
# Changes not staged for commit:
.........................
.........................
no changes added to commit (use "git add" and/or "git commit -a")

這個(gè)時(shí)候就說明某些文件被改了,但卻沒有上傳
那能不能看看具體修改了那些內(nèi)容呢鳞青?
git diff輸入git diff空格+文件名
知道做了修改內(nèi)容后就可以用git addgit commit -m進(jìn)行提交了.
好啦霸饲,萬一提交完之后,突然發(fā)現(xiàn)沒改之前的更好用臂拓,怎么辦厚脉?可以退回嗎?
git log可以查看提交的次數(shù)和版本號(hào)胶惰,知道版本號(hào)和次數(shù)后傻工,就可以版本回退啦。在Git中,用HEAD表示當(dāng)前版本中捆,上一個(gè)版本就是HEAD鸯匹,上上一個(gè)版本就是HEAD,當(dāng)然往上100個(gè)版本寫100個(gè)比較容易數(shù)不過來泄伪,所以寫成HEAD~100殴蓬,舉個(gè)栗子,像這個(gè)就是$ git reset --hard HEAD^回到上個(gè)版本蟋滴,等你回到上個(gè)版本后科雳,這個(gè)時(shí)候再用git log就會(huì)發(fā)現(xiàn),最新的版本不見啦脓杉,突然糟秘,這個(gè)時(shí)候想
其實(shí)新版本也不錯(cuò),突然想再退回去球散。如果終端沒關(guān)的話尿赚,可以往上翻版本號(hào),就是在commit后面特別長的一串?dāng)?shù)字蕉堰,比如:$ git reset --hard 3628164(后面的數(shù)字不必打太多凌净,系統(tǒng)會(huì)自動(dòng)搜索,但太短也不行屋讶,可能會(huì)出現(xiàn)重復(fù)的版本號(hào)冰寻,導(dǎo)致系統(tǒng)無法確定)但如果
終端關(guān)閉,版本號(hào)也不記得皿渗,咋辦斩芭?Git提供了一個(gè)命令git reflog用來記錄你的每一次命令,所以.....
一般常用的命令:
1. git add .
2. git commit -m "windows"
(3. git config --global user.email "你的郵箱"
4. git config --global user.name "用戶名")這兩條是在Windows系統(tǒng)下會(huì)用到的代碼乐疆,linux可忽略划乖,且第二條放在這兩條之后
5. git remote add origin https://github.com/ranzhouhang/ranzhouhang-task62-homework1.git
6.git push -u origin master
總結(jié):以上是git的最基本的操作,還有很多值得去學(xué)習(xí)的了解挤土,未完待續(xù)~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末琴庵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子仰美,更是在濱河造成了極大的恐慌迷殿,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咖杂,死亡現(xiàn)場離奇詭異庆寺,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)翰苫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門止邮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來这橙,“玉大人,你說我怎么就攤上這事导披∏” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵撩匕,是天一觀的道長鹰晨。 經(jīng)常有香客問我,道長止毕,這世上最難降的妖魔是什么模蜡? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮扁凛,結(jié)果婚禮上忍疾,老公的妹妹穿的比我還像新娘。我一直安慰自己谨朝,他們只是感情好卤妒,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著字币,像睡著了一般则披。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洗出,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天士复,我揣著相機(jī)與錄音,去河邊找鬼翩活。 笑死阱洪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的隅茎。 我是一名探鬼主播澄峰,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼嫉沽,長吁一口氣:“原來是場噩夢啊……” “哼辟犀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起绸硕,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤堂竟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后玻佩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體出嘹,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年咬崔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了税稼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烦秩。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖郎仆,靈堂內(nèi)的尸體忽然破棺而出只祠,到底是詐尸還是另有隱情,我是刑警寧澤扰肌,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布抛寝,位于F島的核電站,受9級(jí)特大地震影響曙旭,放射性物質(zhì)發(fā)生泄漏盗舰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一桂躏、第九天 我趴在偏房一處隱蔽的房頂上張望钻趋。 院中可真熱鬧,春花似錦剂习、人聲如沸爷绘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽土至。三九已至,卻和暖如春猾昆,著一層夾襖步出監(jiān)牢的瞬間陶因,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工垂蜗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留楷扬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓贴见,卻偏偏與公主長得像烘苹,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子片部,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 聲明:這篇文章來源于廖雪峰老師的官方網(wǎng)站镣衡,我僅僅是作為學(xué)習(xí)之用 Git簡介 Git是什么? Git是目前世界上最先...
    橫渡閱讀 3,943評(píng)論 3 27
  • 泡桐的一朵紫花落下 調(diào)皮的陽光也順著 葉子档悠、樹皮廊鸥、垣墻 悠悠下滑 石榴樹開了鮮艷的花 游蕩的秋千上開心的娃娃 褐黑...
    袁浩vincent閱讀 203評(píng)論 0 1
  • 今天閱讀《自控力》38-50頁。關(guān)注兩個(gè)問題:1.意志力的本能:三思而后行辖所;2.增強(qiáng)自控力生理基礎(chǔ)的兩種方法惰说。 1...
    sky10閱讀 246評(píng)論 0 0
  • 浩圻媽閱讀 309評(píng)論 1 5
  • 千年風(fēng)塵 歲月遷流 無常洗凈萬千 幾多輪回 再逢故里 不見法王和親眷 只留殘碎枯梁 悲從心生 愁情萬種 至今未見覺...
    烏金明珠林巴閱讀 1,619評(píng)論 8 13