Git和Github的使用

Git和GitHub的使用流程

安裝Git

計(jì)算機(jī)使用的是window系統(tǒng),在Git官網(wǎng)上下載對應(yīng)的程序。
安裝完成后瓤球,在文件夾中右鍵鼠標(biāo)出現(xiàn)的開始菜單中 出現(xiàn)“Git”->“Git Bash“冰垄,說明Git安裝完成权她。
在命令行中輸入以下,指令檢查下載版本

$ git version

可知當(dāng)前電腦安裝的git版本為2.24.0版本


創(chuàng)建版本庫

為了方便Git管理(修改蝴罪,刪除要门,跟蹤)文件欢搜,我們必須創(chuàng)建一個(gè)版本庫(repository)谴轮。
首先選擇我們要?jiǎng)?chuàng)建倉庫的文件夾位置第步,啟動(dòng)git bash。
在命令行中輸入以下指令

$ git init

此時(shí)可以發(fā)現(xiàn)在當(dāng)前目錄下會(huì)多一個(gè).git文件夾廓推,(如果沒有發(fā)現(xiàn)樊展,需要顯示所有隱藏文件夾)堆生。這個(gè)文件夾就是git用來跟蹤管理版本的,該文件夾不能手動(dòng)修改,否則會(huì)破壞版本庫糯景。

基本操作

將文件添加到本地倉

版本控制系統(tǒng)會(huì)跟蹤文本文件的改動(dòng),因此最住,當(dāng)我們修改文件完成后涨缚,需要將文件添加到本地倉進(jìn)行管理策治。
在命令行中輸入以下指令

$ git status

可以查看當(dāng)前狀態(tài),如圖所示茂翔,我們添加的txt發(fā)生了修改履腋,可以將其添加到本地倉中進(jìn)行更新遵湖。



在命令行中輸入以下指令

$ git add test.txt

執(zhí)行指令沒有任何顯示說明成功將test.txt添加到本地版本庫。然后需要進(jìn)行添加說明谋国,其指令為

$ git commit -m "修改test文件"

如果出現(xiàn)上圖所示烹卒,則說明添加說明成功弯洗,其中-m是message的縮寫,“ ”內(nèi)為本次修改的說明內(nèi)容藐吮。為了更好的管理和修改版本庫谣辞,該操作是非常有必要的沐扳,甚至為后期的回溯版本提供了足夠的便利。

管理本地倉

之前已經(jīng)使用了一種管理倉庫的指令$ git status躯嫉,能夠讓我們掌握倉庫當(dāng)前的狀態(tài),接下來將介紹一下其他指令祈餐;
雖然git status能夠告訴我們test.txt發(fā)生了修改帆阳,但是我們并不知道哪里發(fā)生了修改,此時(shí)在命令行中輸入

$ git diff test.txt

其效果為


白色字體是未修改部分山宾,紅色字體是刪除部分塌碌,綠色字體是新添加部分旬盯;
經(jīng)過多次添加文件胖翰,修改文件操作后,我們可以查看所有的修改歷史記錄萨咳,其指令為

$ git log

git log命令顯示最近提到最遠(yuǎn)提交的所有日志鹃两,最近的一次操作是修改test文件舀凛,在往前是修改test,fix confilt馋记,現(xiàn)在我們不想要這些修改信息懊烤,想進(jìn)行回溯之前的版本腌紧,執(zhí)行下面命令行

$ git reset 118ab82154f13bd38eabd8f0cd3531ea6a92ac37

執(zhí)行未出現(xiàn)問題的話,就回溯到了fix confilt版本号胚,在執(zhí)行g(shù)it log可以看到如下效果



此時(shí)使用指令$ git diff test.txt,發(fā)現(xiàn)當(dāng)前有很多不同,原因是乙帮,工作區(qū)的文件已經(jīng)進(jìn)行修改察净,而并沒有傳到版本庫中;為了讓工作區(qū)也恢復(fù)原狀氢卡,需要執(zhí)行執(zhí)行撤銷命令

$ git checkout test.txt

能夠獲得如圖效果



除了在相應(yīng)文件夾中刪除指定的文件夾這種刪除修改操作外峡捡,我們還可以用git中的rm指令用于刪除文件,如果這個(gè)文件已經(jīng)添加到版本庫中们拙,使用git rm指令將會(huì)永久刪除該文件阁吝。

GitHub遠(yuǎn)程倉庫

GitHub 是一個(gè)提供Git倉庫托管服務(wù)的遠(yuǎn)程倉庫突勇,本地Git倉庫和GitHub之間的傳輸是通過SSH加密的,所有首先需要?jiǎng)?chuàng)建一個(gè)SSH key埂奈。
第一步:創(chuàng)建SSH Key摔刁。在系統(tǒng)盤C盤中用戶文件夾中要是能找到.ssh文件夾中已經(jīng)有了SSH鑰匙共屈。否則在命令行中輸入以下指令

$ ssh-keygen -t rsa -C "youremil@163.com"

根據(jù)自己在GitHub上注冊使用的郵箱,生成本地SSH key借宵,一路按回車矾削,使用默認(rèn)值即可(不用于軍事,無需設(shè)置密碼)欲间。此時(shí)能夠找到.ssh文件中的兩個(gè)id_rsa和id_rsa.pub兩個(gè)文件,其中id_rsa是私鑰班缎,不能泄露出去达址,id_rsa是公鑰趁耗,可以告訴他人。
第二步:登入GitHub满葛,打開“Account settings”纱扭, “SSH keys”頁面:
然后點(diǎn)Add SSH key乳蛾,填上任意Title鄙币,在文本框中添加id_rsa.pub文件中的內(nèi)容。
完成上面兩步因惭,便可以開始將本地版本庫的內(nèi)容傳到GitHub遠(yuǎn)程倉庫中了绩衷。
在此之前咳燕,可以通過以下指令檢查當(dāng)前設(shè)置的郵箱和用戶名是否正確

$ git config --global --list

如果需要修改招盲,使用如下指令

$ git config --global user.name "新的用戶名"
$ git config --global user.email "新的郵箱"

如果更換郵箱信息低缩,需要重新生成ssh-key咆繁,在執(zhí)行一次第一步和第二步。
將本地倉庫內(nèi)容push到GitHub上自己建立的repository上需要執(zhí)行以下指令

git remote add origin git@github.com:ExpressDark/test.git

這里的git@github.com:ExpressDark/test.git是SSH key银觅。這一步的過程是把本地倉和在github上創(chuàng)建的遠(yuǎn)程倉庫進(jìn)行連接坏为。
下一步就可以將本地倉庫的內(nèi)容推到遠(yuǎn)程倉庫久脯。如果是第一次

$ git push -u origin master

如果是第一次推送,因?yàn)檫h(yuǎn)程倉庫是空的镰吆,可以將本地倉內(nèi)容推送到master分支帘撰,需要加上-u參數(shù)。之后只需要執(zhí)行

$ git push origin master

除了上傳本地倉到遠(yuǎn)程倉庫操作外万皿,還可以從遠(yuǎn)程倉庫clone內(nèi)容到本地進(jìn)行操作摧找,一般可能的方式有ssh或者h(yuǎn)ttp±喂瑁克隆指令為git clone蹬耘。

分支管理

Git把每次提交的內(nèi)容串成一條時(shí)間線,這條時(shí)間線就是一條分支减余,這個(gè)分支在Git中成為master综苔。一般來說,master是用來進(jìn)行版本的更迭與發(fā)布位岔,不不能輕易修改的如筛。為此開發(fā)應(yīng)該在分支上進(jìn)行杨刨。
首先,我們要?jiǎng)?chuàng)建一個(gè)dev分支

$ git branch dev

然后用git branch命令查看當(dāng)前分支赚抡,可以看到當(dāng)前分支任然在master上,現(xiàn)在需要切換到dev分支上去肉康。
切換分支的方式有兩種

$ git switch dev
$ git checkout dev

當(dāng)在dev分支上完成一定操作后,確定沒有問題可以將dev分支上的內(nèi)容合并到master分支上刚夺,首先先切換到master分支,然后執(zhí)行以下指令

刪除分支的指令為

$ git branch -d <name>

軟件開發(fā)中莽红,會(huì)時(shí)常有修復(fù)bug操作,為此需要?jiǎng)?chuàng)建一個(gè)bug分支來臨時(shí)修復(fù)bug,修復(fù)bug完成后妇智,合并分支,并刪除臨時(shí)bug分支拉盾。
如果當(dāng)手頭工作沒有完成時(shí)泻红,先用git stash保存當(dāng)前未完成工作讹躯,然后去修復(fù)bug,待bug完成后耙旦,使用git stash pop,回到工作現(xiàn)場。

標(biāo)簽管理

回溯版本時(shí)险领,commit號是6a4552e…,一串亂七八糟的數(shù)字不好管理噩茄,最好的辦法就是是進(jìn)行標(biāo)簽標(biāo)記凿菩。
可以用git tag查看當(dāng)前所有指令。標(biāo)簽直接執(zhí)行以下命令

$ git tag v1.0

如果知道commit的id,可以對之前的commit進(jìn)行便簽處理

$ git tag v1.0 <id>

推送本地標(biāo)簽命令為

$ git push origin <tagname>

刪除本地標(biāo)簽命令為

$ git tag -d <tagname>

參考資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腋舌,一起剝皮案震驚了整個(gè)濱河市赞辩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌岛心,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娘荡,死亡現(xiàn)場離奇詭異争群,居然都是意外死亡翔试,警方通過查閱死者的電腦和手機(jī)冲泥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碑定,“玉大人碘赖,你說我怎么就攤上這事审编。” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵孤里,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任逞泄,我火速辦了婚禮拂檩,結(jié)果婚禮上望抽,老公的妹妹穿的比我還像新娘辑奈。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著督暂,像睡著了一般八回。 火紅的嫁衣襯著肌膚如雪管引。 梳的紋絲不亂的頭發(fā)上重慢,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天轧简,我揣著相機(jī)與錄音假勿,去河邊找鬼惨寿。 笑死蕉拢,一個(gè)胖子當(dāng)著我的面吹牛闸准,可吹牛的內(nèi)容都是我干的瘾英。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼泌枪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤缕题,失蹤者是張志新(化名)和其女友劉穎锨阿,沒想到半個(gè)月后墅诡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體然磷,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寡润,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年栗柒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了雇锡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曙痘。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡区拳,死狀恐怖本涕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情伙窃,我是刑警寧澤菩颖,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站为障,受9級特大地震影響晦闰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鳍怨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一呻右、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鞋喇,春花似錦声滥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纽疟。三九已至,卻和暖如春憾赁,著一層夾襖步出監(jiān)牢的瞬間污朽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工龙考, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蟆肆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓晦款,卻偏偏與公主長得像炎功,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子缓溅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348