Git使用教程

一凛虽、如何操作?

1.創(chuàng)建版本庫
什么是版本庫鞠眉?版本庫又名倉庫薯鼠,英文名repository,你可以簡單的理解一個目錄,這個目錄里面的所有文件都可以被Git管理起來械蹋,每個文件的修改出皇,刪除,Git都能跟蹤哗戈,以便任何時刻都可以追蹤歷史郊艘,或者在將來某個時刻還可以將文件”還原”。
所以創(chuàng)建一個版本庫也非常簡單唯咬,如下我是E盤 –> qdtest下 目錄下新建一個testgit版本庫纱注。


image.png

pwd 命令是用于顯示當前的目錄。
通過命令 git init 把這個目錄變成git可以管理的倉庫胆胰,如下:


image.png

這時候你當前testgit目錄下會多了一個.git的目錄狞贱,這個目錄是Git來跟蹤管理版本的,沒事千萬不要手動亂改這個目錄里面的文件煮剧,否則斥滤,會把git倉庫給破壞了。如下:
image.png

在版本庫testgit目錄下新建一個記事本文件 readme.txt 內(nèi)容如下:22222222
第一步:使用命令 git add readme.txt添加到暫存區(qū)里面去勉盅。


image.png

第二步:用命令 git commit告訴Git佑颇,把文件提交到倉庫。


image.png

在提交完readme.txt文件之后草娜,使用git status查看是否還有未提交的文件:
image.png

說明沒有要提交的文件挑胸,現(xiàn)在在readme.txt文件中增加一行“33333333”之后,再使用git status查看:
image.png

上面的命令告訴我們 readme.txt文件已被修改宰闰,但是未被提交的修改茬贵。
接下來想看看readme.txt中到底改動了什么內(nèi)容:


image.png

從圖中可以看出添加了一行33333333
提交修改和提交文件是一樣的2步(第一步是git add 第二步是:git commit)。
image.png

2.版本回退
目前我們隊readme.txt進行了兩次修改移袍,可以使用git log來查看歷史記錄:


image.png

git log命令顯示從最近到最遠的顯示日志解藻,如果嫌顯示的信息太多的話,我們可以使用git log -pretty=oneline:


image.png

現(xiàn)在我想使用版本回退操作葡盗,我想把當前的版本回退到上一個版本螟左,要使用什么命令呢?可以使用如下2種命令觅够,第一種是:git reset --hard HEAD^ 那么如果要回退到上上個版本只需把HEAD^ 改成 HEAD^^ 以此類推胶背。那如果要回退到前100個版本的話,使用上面的方法肯定不方便喘先,我們可以使用下面的簡便命令操作:git reset --hard HEAD~100 即可钳吟。
回退到上一個版本的操作:
image.png

查看一下readme.txt內(nèi)容:


image.png

可以看到,內(nèi)容已經(jīng)回退到上一個版本了窘拯。我們可以繼續(xù)使用git log 來查看下歷史記錄信息:
image.png

如果我們想回退到最新的版本红且,我們可以通過版本號回退坝茎,使用命令方法如下:
git reset --hard 版本號 ,但是現(xiàn)在的問題假如我已經(jīng)關(guān)掉過一次命令行或者33333333內(nèi)容的版本號我并不知道呢暇番?要如何知道增加33333333內(nèi)容的版本號呢景东?可以通過如下命令即可獲取到版本號:git reflog
image.png

通過上面的顯示我們可以知道,增加內(nèi)容33333333的版本號是d498580 .我們現(xiàn)在可以命令
git reset --hard d498580來恢復(fù)了:
image.png

現(xiàn)在又恢復(fù)到最新的版本了奔誓。

3.理解工作區(qū)與暫存區(qū)的區(qū)別斤吐?

工作區(qū):就是你在電腦上看到的目錄,比如目錄下testgit里的文件(.git隱藏目錄版本庫除外)厨喂『痛耄或者以后需要再新建的目錄文件等等都屬于工作區(qū)范疇。
版本庫(Repository):工作區(qū)有一個隱藏目錄.git,這個不屬于工作區(qū)蜕煌,這是版本庫派阱。其中版本庫里面存了很多東西,其中最重要的就是stage(暫存區(qū))斜纪,還有Git為我們自動創(chuàng)建了第一個分支master,以及指向master的一個指針HEAD贫母。
我們前面說過使用Git提交文件到版本庫有兩步:
第一步:是使用 git add 把文件添加進去,實際上就是把文件添加到暫存區(qū)盒刚。
第二步:使用git commit提交更改腺劣,實際上就是把暫存區(qū)的所有內(nèi)容提交到當前分支上。
我們繼續(xù)使用demo來演示下:
我們在readme.txt再添加一行內(nèi)容為4444444因块,接著在目錄下新建一個文件為test.txt 內(nèi)容為test橘原,
我們先用git status查看狀態(tài):


image.png

現(xiàn)在我們先使用git add 命令把2個文件都添加到暫存區(qū)中,再使用git status來查看下狀態(tài)涡上,如下:


image.png

接著我們可以使用git commit一次性提交到分支上趾断,如下:
image.png

4.撤銷操作和刪除文件操作
(1)撤銷操作
比如我現(xiàn)在在readme.txt文件里面增加一行 內(nèi)容為55555555,我們先通過命令查看如下:


image.png

在我未提交之前吩愧,我發(fā)現(xiàn)添加55555555內(nèi)容有誤芋酌,所以我得馬上恢復(fù)以前的版本,現(xiàn)在我可以有如下幾種方法可以做修改:
第一:如果我知道要刪掉那些內(nèi)容的話雁佳,直接手動更改去掉那些需要的文件脐帝,然后add添加到暫存區(qū),最后commit掉甘穿。
第二:我可以按以前的方法直接恢復(fù)到上一個版本腮恩。使用 git reset --hard HEAD^
但是現(xiàn)在我不想使用上面的2種方法梢杭,我想直接想使用撤銷命令該如何操作呢温兼?首先在做撤銷之前,我們可以先用 git status 查看下當前的狀態(tài)武契。如下所示:


image.png

可以發(fā)現(xiàn)募判,Git會告訴你荡含,git checkout -- file 可以丟棄工作區(qū)的修改,如下命令:
git checkout -- readme.txt,如下所示:
image.png

命令 git checkout --readme.txt 意思就是届垫,把readme.txt文件在工作區(qū)做的修改全部撤銷释液,這里有2種情況,如下:

1.readme.txt自動修改后装处,還沒有放到暫存區(qū)误债,使用 撤銷修改就回到和版本庫一模一樣的狀態(tài)。
2.另外一種是readme.txt已經(jīng)放入暫存區(qū)了妄迁,接著又作了修改寝蹈,撤銷修改就回到添加暫存區(qū)后的狀態(tài)。
對于第二種情況登淘,我想我們繼續(xù)做demo來看下箫老,假如現(xiàn)在我對readme.txt添加一行 內(nèi)容為66666666,我git add 增加到暫存區(qū)后黔州,接著添加內(nèi)容7777777耍鬓,我想通過撤銷命令讓其回到暫存區(qū)后的狀態(tài)。如下所示:


image.png

(2)刪除文件
假如我現(xiàn)在版本庫testgit目錄添加一個文件b.txt,然后提交流妻。如下:

image

如上:一般情況下牲蜀,可以直接在文件目錄中把文件刪了,或者使用如上rm命令:rm b.txt 绅这,如果我想徹底從版本庫中刪掉了此文件的話各薇,可以再執(zhí)行commit命令 提交掉,現(xiàn)在目錄是這樣的君躺,

image

只要沒有commit之前峭判,如果我想在版本庫中恢復(fù)此文件如何操作呢?

可以使用如下命令 git checkout -- b.txt棕叫,如下所示:

image

再來看看我們testgit目錄林螃,添加了3個文件了。如下所示:

image

二俺泣、遠程倉庫
在了解之前疗认,先注冊github賬號,由于你的本地Git倉庫和github倉庫之間的傳輸是通過SSH加密的伏钠,所以需要一點設(shè)置:
第一步:創(chuàng)建SSH Key横漏。在用戶主目錄下,看看有沒有.ssh目錄熟掂,如果有缎浇,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,如果有的話赴肚,直接跳過此如下命令素跺,如果沒有的話二蓝,打開命令行,輸入如下命令:
ssh-keygen -t rsa –C “youremail@example.com”, 由于我本地此前運行過一次指厌,所以本地有刊愚,如下所示:

image.png

id_rsa是私鑰,不能泄露出去踩验,id_rsa.pub是公鑰鸥诽,可以放心地告訴任何人。
第二步:登錄github,打開” settings”中的SSH Keys頁面箕憾,然后點擊“Add SSH Key”,填上任意title衙传,在Key文本框里黏貼id_rsa.pub文件的內(nèi)容。
image.png

點擊 Add Key厕九,你就應(yīng)該可以看到已經(jīng)添加的key蓖捶。
image.png

(1)如何添加遠程庫
現(xiàn)在的情景是:我們已經(jīng)在本地創(chuàng)建了一個Git倉庫后,又想在github創(chuàng)建一個Git倉庫扁远,并且希望這兩個倉庫進行遠程同步俊鱼,這樣github的倉庫可以作為備份,又可以其他人通過該倉庫來協(xié)作畅买。
首先并闲,登錄github上,然后在右上角找到“create a new repo”創(chuàng)建一個新的倉庫谷羞。如下:
image.png

在Repository name填入testgit帝火,其他保持默認設(shè)置,點擊“Create repository”按鈕湃缎,就成功地創(chuàng)建了一個新的Git倉庫:
image.png

目前犀填,在GitHub上的這個testgit倉庫還是空的,GitHub告訴我們嗓违,可以從這個倉庫克隆出新的倉庫九巡,也可以把一個已有的本地倉庫與之關(guān)聯(lián),然后蹂季,把本地倉庫的內(nèi)容推送到GitHub倉庫冕广。
現(xiàn)在,我們根據(jù)GitHub的提示偿洁,在本地的testgit倉庫下運行命令:

 $ git remote add origin https://github.com/Qd527213991/testgit.git
image.png

把本地庫的內(nèi)容推送到遠程撒汉,使用 git push命令,實際上是把當前分支master推送到遠程涕滋。
由于遠程庫是空的睬辐,我們第一次推送master分支時,加上了 –u參數(shù),Git不但會把本地的master分支內(nèi)容推送的遠程新的master分支溉委,還會把本地的master分支和遠程的master分支關(guān)聯(lián)起來,在以后的推送或者拉取時就可以簡化命令爱榕。推送成功后瓣喊,可以立刻在github頁面中看到遠程庫的內(nèi)容已經(jīng)和本地一模一樣了,上面的要輸入github的用戶名和密碼如下所示:


image.png

從現(xiàn)在起黔酥,只要本地作了提交藻三,就可以通過如下命令:
git push origin master
把本地master分支的最新修改推送到github上了,現(xiàn)在你就擁有了真正的分布式版本庫了跪者。

(2)如何從遠程克隆分支棵帽?
上面我們了解了先有本地庫,后有遠程庫時候渣玲,如何關(guān)聯(lián)遠程庫逗概。
現(xiàn)在我們想,假如遠程庫有新的內(nèi)容了逾苫,我想克隆到本地來 如何克隆呢?
首先枚钓,登錄github铅搓,創(chuàng)建一個新的倉庫,名字叫testgit2.如下:


image

如下搀捷,我們看到:


image

現(xiàn)在星掰,遠程庫已經(jīng)準備好了,下一步是使用命令git clone克隆一個本地庫了嫩舟。如下所示:
image

接著在我本地目錄下 生成testgit2目錄了氢烘,如下所示:
image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市家厌,隨后出現(xiàn)的幾起案子威始,更是在濱河造成了極大的恐慌,老刑警劉巖像街,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件黎棠,死亡現(xiàn)場離奇詭異,居然都是意外死亡镰绎,警方通過查閱死者的電腦和手機脓斩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來畴栖,“玉大人随静,你說我怎么就攤上這事。” “怎么了燎猛?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵恋捆,是天一觀的道長。 經(jīng)常有香客問我重绷,道長沸停,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任昭卓,我火速辦了婚禮愤钾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘候醒。我一直安慰自己能颁,他們只是感情好,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布倒淫。 她就那樣靜靜地躺著伙菊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪敌土。 梳的紋絲不亂的頭發(fā)上占业,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機與錄音纯赎,去河邊找鬼谦疾。 笑死,一個胖子當著我的面吹牛犬金,可吹牛的內(nèi)容都是我干的念恍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼晚顷,長吁一口氣:“原來是場噩夢啊……” “哼峰伙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起该默,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤瞳氓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后栓袖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匣摘,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年裹刮,在試婚紗的時候發(fā)現(xiàn)自己被綠了音榜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡捧弃,死狀恐怖赠叼,靈堂內(nèi)的尸體忽然破棺而出擦囊,到底是詐尸還是另有隱情,我是刑警寧澤嘴办,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布瞬场,位于F島的核電站,受9級特大地震影響涧郊,放射性物質(zhì)發(fā)生泄漏贯被。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一底燎、第九天 我趴在偏房一處隱蔽的房頂上張望刃榨。 院中可真熱鬧弹砚,春花似錦双仍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至茅诱,卻和暖如春逗物,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瑟俭。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工翎卓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人摆寄。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓失暴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親微饥。 傳聞我的和親對象是個殘疾皇子逗扒,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

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

  • 傍晚時分,習習的涼風會從遠處的山巒悄悄的來欠橘,不經(jīng)意地撫摸著大地的每一寸肌膚矩肩,感受到這般溫柔的愜意。夕陽無限好肃续,...
    加百列的羅蘭閱讀 194評論 0 0
  • 哈哈 哈哈 你正躲在云里暗自竊喜吧 看地面上的傻瓜 丟掉鞋子的孩子臟兮兮腳丫 鼻涕在呼呼北風中流下 吸走 流下 流...
    二給閱讀 203評論 0 1
  • /*后端返回的數(shù)據(jù)基本是 JSON 數(shù)據(jù) 以前是字符串 數(shù)據(jù)XML <name>s <name/> 12 ...
    賣參閱讀 178評論 0 0
  • 最年輕的模樣 留在照片里黍檩。 人們總是用照片來懷念自己的過去, 就好像是對過去的一種回望始锚。 照片建炫,一張一張的翻看 回...
    陰霾天閱讀 350評論 0 0