Git Github使用入門

(說明:本文以windows系統(tǒng)為例進(jìn)行說明且蓬,linux系統(tǒng)中使用類似荐吵;本文腳本都在本地Git Bash中執(zhí)行错洁;本文主要講Git菠秒、Github的入門級(jí)使用疙剑。)

Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)。

重要命令:
git init: 初始化本地倉(cāng)庫(kù)
git add: 將本地源文件加入暫存區(qū)
git commit: 將暫存區(qū)信息加入‘分支’
git push: 將本地倉(cāng)庫(kù)push到遠(yuǎn)程倉(cāng)庫(kù)

本文結(jié)構(gòu):
一稽煤、在github上注冊(cè)賬號(hào)
二核芽、windows下安裝Git
三、本地Git與Github賬號(hào)綁定
四酵熙、本地Git訪問遠(yuǎn)程Github
五轧简、創(chuàng)建本地倉(cāng)庫(kù)和使用
六、Github上建立遠(yuǎn)程倉(cāng)庫(kù)
七匾二、“本地倉(cāng)庫(kù)”與“遠(yuǎn)程倉(cāng)庫(kù)”聯(lián)動(dòng)
八哮独、克氯健(clone)一個(gè)遠(yuǎn)程倉(cāng)庫(kù)到本地
參考:

一、在github上注冊(cè)賬號(hào)

官網(wǎng):https://github.com/
登錄頁(官網(wǎng)上):https://github.com/login

我的用戶名:chengaoxiang1985
注冊(cè)郵箱:hncschengaoxiang@163.com

二皮璧、windows下安裝Git

https://www.jb51.net/article/274413.htm

三舟扎、本地Git與Github賬號(hào)綁定

執(zhí)行以下兩條命令,將在C:\Users\Chengaoxiang目錄(不同系統(tǒng)可能不同)下生成.gitconfig文件(切記不能刪)悴务;
其內(nèi)容(記事本打開)正是代碼中輸入的github用戶名和注冊(cè)郵箱睹限。

git config --global user.name "github用戶名"
git config --global user.email "github注冊(cè)郵箱"
1.png

2.png

四、本地Git訪問遠(yuǎn)程Github

有幾種方法讯檐,一般使用SSH方法羡疗。

step1:本地生成SSH秘鑰

(如果已經(jīng)有SSH則可跳過這一步)
執(zhí)行以下命令(需指定一個(gè)任意郵箱),結(jié)果在C:\Users\Chengaoxiang目錄下(用戶可在代碼執(zhí)行過程中指定該目錄别洪,見下圖)生成了.ssh文件夾(切記不能刪)叨恨,其內(nèi)部包含了一個(gè)公鑰id_rsa.pub和一個(gè)私鑰id_rsa,正是通過他們與遠(yuǎn)程Github進(jìn)行通信的挖垛。
這兩秘鑰都可以直接用記事本打開痒钝,或者直接在git bash中用cat命令打開。

ssh-keygen -t rsa -C "任意郵箱地址"
3.png

4.png

step2:遠(yuǎn)程Github配置SSH公鑰

登錄Github賬戶→
點(diǎn)擊個(gè)人頭像→
選擇“Settings”→
選擇“SSH and ”SSH and GPG keys→
點(diǎn)擊“New SSh key”→
打開前面生成的公鑰文件id_rsa.pub痢毒,全選(一定要全選)并復(fù)制公鑰送矩,黏貼在待新建的SSH key框中,點(diǎn)“Add SSH key”→
自動(dòng)跳轉(zhuǎn)重新輸入github密碼(因?yàn)樵黾覵SH key闸准,要求重新登錄確保安全)

5.png

6.png

7.png

step3:測(cè)試SSH是否能連上

git bash輸入以下代碼:

ssh -T git@github.com
8.png

至此益愈,本地git客戶端和遠(yuǎn)程github建立了聯(lián)系!

五夷家、創(chuàng)建本地倉(cāng)庫(kù)和使用

5.1 創(chuàng)建本地倉(cāng)庫(kù)

所謂倉(cāng)庫(kù)蒸其,本質(zhì)上就是個(gè)文件夾而已!
先新建一個(gè)文件夾(已有的也行)库快,我在D盤根目錄新建了一個(gè)名為Git_cgx的文件夾摸袁;

9.png

在git bash中通過cd命令進(jìn)入到該文件夾內(nèi)
并執(zhí)行下述命令义屏,結(jié)果在該文件夾內(nèi)生成了一個(gè)隱藏文件夾.git(該文件夾是git本地倉(cāng)庫(kù)的核心靠汁,其內(nèi)部文件是git用來跟蹤管理版本的,不可隨意亂改闽铐,否則會(huì)破壞該倉(cāng)庫(kù))蝶怔;同時(shí)git bash的提示符最右側(cè)出現(xiàn)了一個(gè):(master)標(biāo)記,表示當(dāng)前處于該倉(cāng)庫(kù)的master分支(當(dāng)執(zhí)行 git init 時(shí)兄墅,默認(rèn)情況下Git就會(huì)為你創(chuàng)建一個(gè)名為master 的分支踢星,“分支”是Git的重要特色)。
此時(shí)隙咸,Git_cgx已經(jīng)變成了Git可以管理的倉(cāng)庫(kù)了沐悦。

# 將當(dāng)前目錄創(chuàng)建成倉(cāng)庫(kù):
git init

# 將指定目錄創(chuàng)建成倉(cāng)庫(kù):
git init (目錄路徑)
10.png

11.png

至此成洗,一個(gè)空的本地倉(cāng)庫(kù)已經(jīng)建好了!

5.2 重要概念

  • 本地倉(cāng)庫(kù)(Repository):也就是通過命令git init后的整個(gè)Git_cgx目錄藏否。
  • 工作區(qū)(Workspace): Git_cgx下瓶殃,除了版本庫(kù).git(一個(gè)隱藏目錄)以外的所有空間,用于存放代碼文件副签、說明文件等源文件遥椿。
    特別注意:在工作區(qū)中的源文件還不屬于真正加入“本地倉(cāng)庫(kù)”,需要經(jīng)過add继薛、commit修壕、push等命令處理(見后面)愈捅。)
  • 版本庫(kù):就是這個(gè)隱藏目錄.git(他雖也在Cit_cgx目錄下遏考,但不屬于工作區(qū)),版本庫(kù)里存了很多文件蓝谨,其中最重要的是暫存區(qū)灌具,還有Git為我們自動(dòng)創(chuàng)建的第一個(gè)分支master(沒見具體文件玫芦?碧囊??处渣?芦昔?)诱贿,以及指向master的一個(gè)指針文件HEAD。
  • 暫存區(qū)(Index / Stage): .git下名為Index或Stage的文件咕缎,他暫時(shí)存儲(chǔ)了待上傳至某個(gè)“分支”的源文件的信息(包括文件名珠十、大小、指向源文件的 id等凭豪,但不包括源文件本身)焙蹭,(注意:當(dāng)?shù)谝淮螆?zhí)行add命令后才會(huì)生成暫存區(qū)文件,建立倉(cāng)庫(kù)之初沒有)嫂伞。
  • 分支:Git的特色孔厉,用于管理不同代碼版本,在生成本地倉(cāng)庫(kù)時(shí)帖努,Git會(huì)自動(dòng)為用戶生成一個(gè)名為“master”的分支撰豺。
  • 遠(yuǎn)程倉(cāng)庫(kù)(Remote):在Github上的倉(cāng)庫(kù),位于遠(yuǎn)程服務(wù)器上拼余,通過push命令與本地倉(cāng)庫(kù)聯(lián)動(dòng)污桦,便于多人協(xié)作編寫代碼。
    流程圖.png

5.3 重要命令

  • git status:
    查看倉(cāng)庫(kù)當(dāng)前狀態(tài)姿搜,輸出信息包括:當(dāng)前分支的名稱寡润、當(dāng)前分支與遠(yuǎn)程分支的關(guān)系(例如捆憎,是否是最新的)、未暫存的修改(顯示已修改但尚未使用 git add 添加到暫存區(qū)的文件列表)梭纹、未跟蹤的文件(顯示尚未納入版本控制的新文件列表)躲惰。
    加上‘-s’參數(shù)則輸出剪短信息。
git  status
git status -s

在空工作空間中手動(dòng)新建一個(gè)readme.txt文件变抽,內(nèi)容為‘1111111111’础拨。


13.png
  • git add:
    將工作區(qū)源文件相關(guān)信息加入暫存區(qū);
git add 文件名1 文件名2 文件名3......(多個(gè)文件之間空格隔開)
git add 文件夾1 文件夾2 文件夾3......(多個(gè)文件夾之間空格隔開)
git add . (add當(dāng)前倉(cāng)庫(kù)下所有文件)

我用的:

git add readme.txt
14.png
  • git commit:
    將暫存區(qū)內(nèi)容(add進(jìn)來的源文件信息)添加到本地倉(cāng)庫(kù)中绍载,[message] 可以是一些備注信息诡宗;
git commit -m [message]  提交整個(gè)暫存區(qū)到本地倉(cāng)庫(kù)中,击儡;
git commit [file1] [file2] ... -m [message]  提交暫存區(qū)的指定文件到本地倉(cāng)庫(kù)塔沃;

我用的:

git commit readme.txt -m '第一次提交readme'
15.png

其他有用命令見:
http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

六矫夯、Github上建立遠(yuǎn)程倉(cāng)庫(kù)

前面我們已經(jīng)建立了一個(gè)本地倉(cāng)庫(kù)Git_cgx(里面包含了工程代碼文件)制肮,現(xiàn)在我們想將這些信息上傳到Github上递沪,一來相當(dāng)于備份代碼,二來可以跟其他人進(jìn)行協(xié)作拘领。
為此,首先需要在Github上也建立一個(gè)倉(cāng)庫(kù)(遠(yuǎn)程和本地倉(cāng)庫(kù)可以不同名稱,建議同名。)荚藻,操作很簡(jiǎn)單,先登錄自己賬號(hào):

16.png

七应狱、“本地倉(cāng)庫(kù)”與“遠(yuǎn)程倉(cāng)庫(kù)”聯(lián)動(dòng)

現(xiàn)我們已經(jīng)在本地創(chuàng)建了一個(gè)倉(cāng)庫(kù)Git_cgx,又在github創(chuàng)建一個(gè)遠(yuǎn)程倉(cāng)庫(kù)Git_cgx蟆肆,剩下就是讓兩者關(guān)聯(lián)上了炎功!主要使用git remote命令
一個(gè)本地倉(cāng)庫(kù)可以關(guān)聯(lián)多個(gè)遠(yuǎn)程倉(cāng)庫(kù)!

7.1 本地倉(cāng)庫(kù)鏈接遠(yuǎn)程倉(cāng)庫(kù)

  • git remote:
    用于管理 Git 本地倉(cāng)庫(kù)中鏈接的遠(yuǎn)程倉(cāng)庫(kù)袜匿,包括添加、查看岩灭、重命名和刪除遠(yuǎn)程倉(cāng)庫(kù)等功能妙真。
    https://www.runoob.com/git/git-remote.html
git remote:列出當(dāng)前倉(cāng)庫(kù)中已配置的遠(yuǎn)程倉(cāng)庫(kù)。
git remote -v:列出當(dāng)前倉(cāng)庫(kù)中已配置的遠(yuǎn)程倉(cāng)庫(kù)荚守,并顯示它們的 URL珍德。
git remote add <remote_name> <remote_url>:添加一個(gè)新的遠(yuǎn)程倉(cāng)庫(kù)。指定一個(gè)遠(yuǎn)程倉(cāng)庫(kù)的名稱和 URL矗漾,將其添加到當(dāng)前倉(cāng)庫(kù)中锈候。
git remote rename <old_name> <new_name>:將已配置的遠(yuǎn)程倉(cāng)庫(kù)重命名。
git remote remove <remote_name>:從當(dāng)前倉(cāng)庫(kù)中刪除指定的遠(yuǎn)程倉(cāng)庫(kù)敞贡。
git remote set-url <remote_name> <new_url>:修改指定遠(yuǎn)程倉(cāng)庫(kù)的 URL泵琳。
git remote show <remote_name>:顯示指定遠(yuǎn)程倉(cāng)庫(kù)的詳細(xì)信息,包括 URL 和跟蹤分支誊役。

我用的:

git remote add origin https://github.com/chengaoxiang1985/Git_cgx.git
17.png

7.2 將本地倉(cāng)庫(kù)文件push到遠(yuǎn)程倉(cāng)庫(kù)

git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
如果本地分支名與遠(yuǎn)程分支名相同,則可以省略冒號(hào)及后面部分
git push <遠(yuǎn)程主機(jī)名> <本地分支名>

我用的:

git push -u origin master 初次推送
git push  origin master 后續(xù)更新(省略-u參數(shù))
18.png

八蛔垢、克禄骱ⅰ(clone)一個(gè)遠(yuǎn)程倉(cāng)庫(kù)到本地

clone下來的倉(cāng)庫(kù)會(huì)自動(dòng)和遠(yuǎn)程倉(cāng)庫(kù)建立關(guān)聯(lián),無需再手動(dòng)關(guān)聯(lián)鹏漆。
遠(yuǎn)程倉(cāng)庫(kù)只有1個(gè)分支(branch)

git clone url

遠(yuǎn)程倉(cāng)庫(kù)有多個(gè)分支(branch)巩梢,需要指定分支名稱。

git clone -b 分支名 url

例艺玲,在D盤新建一個(gè)名為My_clone的空目錄括蝠;
git bash進(jìn)入該目錄,并執(zhí)行以下代碼饭聚,自動(dòng)將遠(yuǎn)程倉(cāng)庫(kù)Git_cgx克隆到了本地:

 git clone https://github.com/chengaoxiang1985/Git_cgx.git
19.png

我們?cè)衮?yàn)證下忌警,克隆下來的倉(cāng)庫(kù)是否已經(jīng)和遠(yuǎn)程被克隆倉(cāng)庫(kù)關(guān)聯(lián)了(注意此時(shí)的bash要在克隆下來的Git_cgx目錄中):


20.png

其他關(guān)于clone命令的使用,見秒梳;
https://blog.csdn.net/weixin_45743799/article/details/105900114
https://blog.csdn.net/wudinaniya/article/details/104125961

參考:
https://zhuanlan.zhihu.com/p/30044692
https://blog.csdn.net/qq_35206244/article/details/97698815
https://zhuanlan.zhihu.com/p/584609161
https://www.runoob.com/git/git-workspace-index-repo.html
https://zhuanlan.zhihu.com/p/140437826
https://docs.github.com/zh

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末法绵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子端幼,更是在濱河造成了極大的恐慌礼烈,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件婆跑,死亡現(xiàn)場(chǎng)離奇詭異此熬,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門犀忱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來募谎,“玉大人,你說我怎么就攤上這事阴汇∈” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵搀庶,是天一觀的道長(zhǎng)拐纱。 經(jīng)常有香客問我,道長(zhǎng)哥倔,這世上最難降的妖魔是什么秸架? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮咆蒿,結(jié)果婚禮上东抹,老公的妹妹穿的比我還像新娘。我一直安慰自己沃测,他們只是感情好缭黔,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蒂破,像睡著了一般馏谨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上寞蚌,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天田巴,我揣著相機(jī)與錄音,去河邊找鬼挟秤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛抄伍,可吹牛的內(nèi)容都是我干的艘刚。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼截珍,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼攀甚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起岗喉,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤秋度,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后钱床,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荚斯,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了事期。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滥壕。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖兽泣,靈堂內(nèi)的尸體忽然破棺而出绎橘,到底是詐尸還是另有隱情,我是刑警寧澤唠倦,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布称鳞,位于F島的核電站,受9級(jí)特大地震影響稠鼻,放射性物質(zhì)發(fā)生泄漏冈止。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一枷餐、第九天 我趴在偏房一處隱蔽的房頂上張望靶瘸。 院中可真熱鬧,春花似錦毛肋、人聲如沸怨咪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诗眨。三九已至,卻和暖如春孕讳,著一層夾襖步出監(jiān)牢的瞬間匠楚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工厂财, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芋簿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓璃饱,卻偏偏與公主長(zhǎng)得像与斤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子荚恶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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

  • 安裝 現(xiàn)在很多系統(tǒng)都已經(jīng)自帶git客戶端了撩穿,可以在你的終端輸入git試試 Debian/Ubuntu 安裝git ...
    jeay閱讀 199評(píng)論 0 0
  • 轉(zhuǎn)載至-----AS中Git與GitHub的使用入門 - Ralap Zhong的專欄 - 博客頻道...
    口袋易佰閱讀 1,609評(píng)論 0 5
  • 創(chuàng)建git倉(cāng)庫(kù) 1、本地新建 2谒撼、遠(yuǎn)程克隆 常用命令 自定義git git倉(cāng)庫(kù)中有某些文件不能提交時(shí)食寡,可以建 ....
    雷小廝閱讀 274評(píng)論 0 2
  • (注:更多內(nèi)容請(qǐng)查看我的目錄。) 1.背景 參加實(shí)習(xí)以后廓潜,開始接觸多人協(xié)作開發(fā)工具抵皱,前期主要是svn善榛,現(xiàn)在工作中已...
    love丁酥酥閱讀 507評(píng)論 0 1
  • 參考資料 官方指南 廖老師 git 基本指令 git init:在當(dāng)前目錄下,把這個(gè)目錄變成git可以管理的倉(cāng)庫(kù)叨叙。...
    wuyifan1995閱讀 264評(píng)論 0 0