Git基礎(chǔ)說明

Git和Gitee(碼云)基礎(chǔ)簡(jiǎn)單使用

一寝受、Git基本使用說明

Git也是一個(gè)版本控制系統(tǒng)荡灾,Git和傳統(tǒng)的svn最大的不同床估,在于版本控制的方式:svn必須從本地把文件提交到svn服務(wù)器遗契,如果沒有提交上去就沒有發(fā)生版本變化黍少,也就是說沒有網(wǎng)絡(luò)的話svn根本做不了版本控制管理蛋欣,而Git是本地進(jìn)行版本控制管理的航徙,所有的版本變化都在本地機(jī)器上進(jìn)行的,所以 Git單純做個(gè)人的版本控制的話是不需要依賴網(wǎng)絡(luò)以及類似svn服務(wù)器這樣的東西的陷虎。

這里你或許會(huì)有疑問到踏,要是多個(gè)人對(duì)同一個(gè)項(xiàng)目進(jìn)行操作,進(jìn)而在各自的電腦上產(chǎn)生了各自的一系列版本尚猿,那么在自己的電腦上如何才能看到其他人產(chǎn)生的版本內(nèi)容呢窝稿?——這里不用著急,因?yàn)檫@里涉及了 托管中心凿掂、團(tuán)隊(duì)成員間的協(xié)作 甚至是 跨團(tuán)隊(duì)之間的協(xié)作 問題伴榔。

1、安裝Git

Git的安裝比較簡(jiǎn)單和普通程序一樣庄萎,到官方網(wǎng)站找到自己的操作系統(tǒng)對(duì)應(yīng)的版本下載踪少,下載后雙擊安裝即可。

官方網(wǎng)站:https://git-scm.com/

2糠涛、Git的模型和基礎(chǔ)操作(本地操作)

Git的基本模型:整體分為三個(gè)部分:工作區(qū)援奢、暫存區(qū)和本地庫。

  • 工作區(qū):工作區(qū)就是我們使用的的文件夾目錄忍捡,我們工作的時(shí)候就在里面新增或編輯文件萝究。
  • 暫存區(qū):新增或編輯后的文件想要提交都要先放入到這個(gè)暫存區(qū)(設(shè)置暫存區(qū)的目的是什么呢,我也查了不少資料锉罐,主要是和git設(shè)計(jì)有關(guān)系帆竹,比如,我不想把修改的文件都提交脓规,就先把某幾個(gè)文件加入到暫存區(qū)栽连,然后提交上去。還有就是方便對(duì)比修改和還原侨舆,這個(gè)實(shí)現(xiàn)原理有兒復(fù)雜了秒紧。)
  • 本地庫:從暫存區(qū)提交后都會(huì)放到本地庫,本地庫存放的是我們的一次次提交挨下,也就是一次次的版本熔恢。
git本地結(jié)構(gòu).png

Svn的提交(版本)變化:

svn的版本.png

Git的提交(版本)變化:

Git的版本.png

從圖中可以看出svn和git提交有本質(zhì)的區(qū)別,svn的提交是一次次的變化差異臭笆,而git的提交是一個(gè)個(gè)完整的快照(就是全部文件叙淌,這里的commit內(nèi)容其實(shí)指向所用文件的索引秤掌,文件都在本地,沒必要那么傻的自我復(fù)制一份鹰霍,只要保證不同內(nèi)容的文件都有一份就行了)闻鉴,所以從版本還原的速度上來看,git肯定遠(yuǎn)超svn茂洒,因?yàn)閟vn只能逐個(gè)版本依次對(duì)比還原文件內(nèi)容孟岛,還原的版本越早花費(fèi)的時(shí)間越久,而git只要根據(jù)提交版本里面的文件索引找到文件就行了根本不需要對(duì)比還原文件內(nèi)容督勺。

windows下使用模式渠羞,在 需要被Git版本管理的文件夾上 右擊后選擇 “Git Bash Here” 出現(xiàn)可以輸入git命令的界面(windows系統(tǒng)不能靠自己的命令行終端執(zhí)行g(shù)it命令,所以才有這一步驟)智哀。

第一步:初始化自己的身份次询,Git需要知道提交者的身份是誰,這樣才能知道每次提交都是誰提交的盏触。(一般一臺(tái)電腦上設(shè)置一次就可以了,更改身份除外

git config --global user.name "名字"
git config --global user.email "郵箱"

第二步:將文件夾初始化块饺,生成暫存區(qū)和本地庫

git init

第三步:將文件夾中的內(nèi)容從工作區(qū)加入到暫存區(qū)

git add file1 file2 ... # 將文件添加到暫存區(qū)赞辩,多個(gè)文件空格隔開
git add dir # 將文件夾及其下面的內(nèi)容添加到暫存區(qū)
git add .  # 將工作區(qū)內(nèi)的所有內(nèi)容添加到暫存區(qū)(我經(jīng)常使用)

第四步:將暫存區(qū)的內(nèi)容提交到本地庫,生成一次提交授艰,也就是一次版本變化

git commit -m "提交描述"  # 將暫存區(qū)的內(nèi)容提交到本地庫(最常用)
git commit file1 file2 -m "提交描述"  #將暫存區(qū)的某幾個(gè)文件提交到本地庫(注意這里提交除了file1 file2本書的索引還有其它項(xiàng)目文件的索引)

第五步:查看工作區(qū)辨嗽、暫存區(qū)的狀態(tài),主要是來檢測(cè)哪些東西沒提交淮腾。

git status

上面是本地最常用的步驟糟需,尤其是第三步和第四步。

除了上面的步驟谷朝,我們還有其它需求洲押,比如,

  • 查看提交日志圆凰;
  • 查看工作區(qū)和暫存區(qū)的區(qū)別杈帐;
  • 查看暫存區(qū)和本地庫的區(qū)別;
  • 回滾到某個(gè)版本等等专钉,在這里我們只需要等有需求的時(shí)候再查閱和使用這些命令挑童。

注意! 到目前為止跃须,我們都是在個(gè)人電腦上進(jìn)行操作站叼,還不能與他人進(jìn)行協(xié)作,別人看不到我們做的事情菇民,我們也看不到別人做的事情尽楔,如果僅僅是為了個(gè)人本地版本控制投储,那么上面的操作已經(jīng)非常滿足需求了。

3翔试、分支

Git也有分支的概念轻要,為什么要有分支的概念,本質(zhì)還是因?yàn)椴煌瑫r(shí)間有不同的版本需求 或 本身就是有不同版本的需求垦缅。打個(gè)比方:我要在我現(xiàn)有的項(xiàng)目上做出兩個(gè)擴(kuò)展項(xiàng)目冲泥,這時(shí)候就需要分別拉出兩個(gè)分支來實(shí)現(xiàn)目標(biāo)。

我們上面的操作其實(shí)產(chǎn)生了一個(gè)默認(rèn)分支壁涎,也就是master主干分支(正常需求比較單一且一個(gè)人玩的時(shí)候一個(gè)主干分支也夠玩了)凡恍。

  • 查看分支,“*”星號(hào)代表目前所在的分支 git branch -v
  • 創(chuàng)建分支怔球,git branch 分支名
  • 切換分支嚼酝,git checkout 分支名
  • 合并分支,git merge 分支名 把分支合并到當(dāng)前所在的分支竟坛,注意闽巩,在不同分支上修改同一個(gè)文件的同一行,合并兩個(gè)分支的時(shí)候就會(huì)發(fā)生沖突担汤。例如涎跨,master分支和branch1分支兩個(gè)分支都修改來同一個(gè)文件的同一行,在master中合并branch1的時(shí)候發(fā)生沖突崭歧。
git checkout master  #切換到主分支
git merge branch1  #將branch1合并到主分支上
# 發(fā)生沖突后解決沖突隅很,這里需要熟悉vi編輯
git add xxx # 將沖突修改好的文件提交到暫存區(qū),這里需要注意率碾,沒有沖突的文件git是自動(dòng)合并的叔营,自動(dòng)合并的已經(jīng)在暫存區(qū)了不需要再次git add了
git commit -m "沖突解決備注"  # 將沖突修改提交到本地庫,沖突解決完后可以通過所宰,git status 查看工作區(qū)和暫存區(qū)到狀態(tài)

分支.png
二绒尊、托管中心(Gitee碼云——國內(nèi)常用)

正如開頭遇到的問題,要是多個(gè)人對(duì)同一個(gè)項(xiàng)目進(jìn)行操作仔粥,進(jìn)而在各自的電腦上產(chǎn)生了各自的一系列版本垒酬,那么在自己的電腦上如何才能看到其他人產(chǎn)生的版本內(nèi)容呢?——答案是件炉,需要一個(gè)統(tǒng)一的遠(yuǎn)程庫供大家來提交自己的版本和拉取別人的版本勘究。

這個(gè)存放遠(yuǎn)程倉庫的地方就是托管中心,常見的托管中心有Github斟冕、國內(nèi)的Gitee碼云和GitLab口糕,下面我們以碼云為例簡(jiǎn)述下遠(yuǎn)程庫的使用。

碼云地址:https://gitee.com/ 注冊(cè)賬號(hào)就不需要多說了磕蛇。

第一步:在托管中心新建倉庫景描,注意這里建的庫就是遠(yuǎn)程庫(圖中十办,倉庫右邊的+號(hào))。

image.png

image.png

倉庫建完后可以點(diǎn)擊倉庫進(jìn)去看到這樣的地址超棺,這里的地址就是遠(yuǎn)程倉庫的地址向族,我們這里只講https的使用方法。

image.png

第二步:將遠(yuǎn)程庫和本地庫進(jìn)行關(guān)聯(lián)

git remote add origin https://gitee.com/eatsleepsauce/yttstudy.git #這個(gè)命令的意思在本地備注了一個(gè)遠(yuǎn)程庫的地址 origin是遠(yuǎn)程地址的別名
git push -u origin "master" #把本地庫主干分支的內(nèi)容推送到 origin這個(gè)遠(yuǎn)程倉庫中棠绘,也就是將本地庫和遠(yuǎn)程庫關(guān)聯(lián)

注意:如果本地庫還沒有件相,可以通過 git clone 遠(yuǎn)程庫地址,直接在本地生成一個(gè)和遠(yuǎn)程庫有關(guān)聯(lián)的本地庫氧苍,也就是不需要執(zhí)行 git init 和 上面的關(guān)聯(lián)命令夜矗。

git clone origin https://gitee.com/eatsleepsauce/yttstudy.git

使用命令:git remote -v 可以查看本地備注了哪些遠(yuǎn)程庫地址

第三步:將本地庫推送到遠(yuǎn)程庫 push操作

git push -u origin "master" # 這個(gè)命令執(zhí)行時(shí)會(huì)讓輸入托管中心的賬號(hào)密碼,一般輸入保存就好了
git push origin  #如果是主干分支推送可以直接簡(jiǎn)寫成這樣(我常用)

第四步:將遠(yuǎn)程庫的最新內(nèi)容拉到本地庫 pull操縱

#首先pull拉去到本地
git pull origin master # 遠(yuǎn)程庫別名 和 本地分支
git pull # 如果是主干分支pull可以直接簡(jiǎn)寫成這樣(我常用)
#如果有沖突让虐,解決沖突
三紊撕、托管中心Github(國際主流托管中心)

https://github.com/ 國內(nèi)訪問經(jīng)常不穩(wěn)定,最好有梯子赡突,我們常用的開源的項(xiàng)目都在這上面托管著对扶,比如大數(shù)據(jù)里面常用的那幾個(gè)。

四惭缰、團(tuán)隊(duì)成員間的協(xié)作

正常公司項(xiàng)目執(zhí)行時(shí)浪南,內(nèi)部團(tuán)隊(duì)一般會(huì)使用gitlab來搭建公司內(nèi)部的托管中心,而不是直接使用Gitee或Github从媚。不過在使用上不管是Gitee逞泄、Github還是Gitlab的區(qū)別并不算大患整。

團(tuán)隊(duì)內(nèi)部協(xié)作.png
五拜效、跨團(tuán)隊(duì)之間的協(xié)作

跨團(tuán)隊(duì)合作(跨公司),遠(yuǎn)程庫的托管中心可以使用github或者gitee(碼云)各谚。

跨團(tuán)隊(duì)協(xié)作.png

第3步是團(tuán)隊(duì)B將團(tuán)隊(duì)A的在托管中心的項(xiàng)目單獨(dú)在托管中心復(fù)制一份紧憾,以后團(tuán)隊(duì)B都是基于自己復(fù)制的那份進(jìn)行版本控制。

第6步是團(tuán)隊(duì)B在托管中心發(fā)起的合并請(qǐng)求昌渤,請(qǐng)求團(tuán)隊(duì)A來把自己的那份拉過去合并赴穗,團(tuán)隊(duì)A發(fā)現(xiàn)請(qǐng)后就會(huì)審核并合并。當(dāng)然團(tuán)隊(duì)B也可以反向發(fā)起合并求膀息,然后自己把團(tuán)隊(duì)A的項(xiàng)目合并到自己的那份中(也就是更新)般眉。

第3步和第6步的操作都是在Github或Gitee上直接通過頁面功能操作的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末潜支,一起剝皮案震驚了整個(gè)濱河市甸赃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌冗酿,老刑警劉巖埠对,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件络断,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡项玛,警方通過查閱死者的電腦和手機(jī)貌笨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來襟沮,“玉大人锥惋,你說我怎么就攤上這事〕枷” “怎么了净刮?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長硅则。 經(jīng)常有香客問我淹父,道長,這世上最難降的妖魔是什么怎虫? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任暑认,我火速辦了婚禮,結(jié)果婚禮上大审,老公的妹妹穿的比我還像新娘蘸际。我一直安慰自己,他們只是感情好徒扶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布粮彤。 她就那樣靜靜地躺著,像睡著了一般姜骡。 火紅的嫁衣襯著肌膚如雪导坟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天圈澈,我揣著相機(jī)與錄音惫周,去河邊找鬼。 笑死康栈,一個(gè)胖子當(dāng)著我的面吹牛递递,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播啥么,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼登舞,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了悬荣?” 一聲冷哼從身側(cè)響起菠秒,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隅熙,沒想到半個(gè)月后稽煤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體核芽,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年酵熙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了轧简。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匾二,死狀恐怖哮独,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情察藐,我是刑警寧澤皮璧,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站分飞,受9級(jí)特大地震影響悴务,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜譬猫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一讯檐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧染服,春花似錦别洪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至秉颗,卻和暖如春痢毒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背站宗。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國打工闸准, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留益愈,地道東北人梢灭。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像蒸其,于是被迫代替她去往敵國和親敏释。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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

  • 版本控制工具應(yīng)該具備的功能 協(xié)同修改 多人協(xié)同合作修改同一個(gè)文件摸袁。 數(shù)據(jù)備份 保存目錄和文件的當(dāng)前狀態(tài)钥顽,而且保...
    janeeyer111閱讀 299評(píng)論 0 0
  • git官方英文操作文檔參考[https://git-scm.com/book/zh/v2/Git-%E5%9F%B...
    dmengmeng閱讀 482評(píng)論 0 0
  • 版本控制工具應(yīng)該具備的功能 -- 第一 協(xié)同修改多人協(xié)同合作修改同一個(gè)文件。數(shù)據(jù)備份保存目錄和文件的當(dāng)前狀態(tài)靠汁,而且...
    邪人君子閱讀 1,760評(píng)論 1 2
  • 了解Git是什么以及Git的安裝 01蜂大、Git是什么 目標(biāo) 掌握和了解Git是什么闽铐,在實(shí)際應(yīng)用中處于什么角色。 目...
    Java全棧路線閱讀 449評(píng)論 0 1
  • B站視頻——尚硅谷Git入門到精通全套教程(涵蓋GitHub\Gitee碼云\GitLab)學(xué)習(xí)筆記奶浦,鏈接http...
    簡(jiǎn)書鯨魚閱讀 407評(píng)論 0 0