讓我們?cè)诒镜匦陆ㄒ粋€(gè)文件,最后上傳到剛剛創(chuàng)建的倉(cāng)庫(kù)中。
現(xiàn)在的你在 Linux 中創(chuàng)建文件,應(yīng)該很輕車熟路了吧:
mkdir Demo
cd Demo
gedit README.md
然后在打開的文件中輸入 #Demo,保存文件后關(guān)閉 gedit 。
用 cat 命令查看一下文件內(nèi)容:
創(chuàng)建文件 OK 了,但現(xiàn)在,Demo 目錄還只是一個(gè)普通的目錄,我們?nèi)绾斡?Git 來(lái)控制這個(gè)目錄?
你只需在 Demo 目錄中,輸入 git init 即可。
git init
這是 Git 的初始化操作,作用是將一個(gè)已存在文件夾,置于 Git 的控制管理之下。
再 ls -la 命令,會(huì)發(fā)現(xiàn)一個(gè)名叫 .git 的目錄被創(chuàng)建了,這意味著倉(cāng)庫(kù)初始化成功??梢赃M(jìn)入到 .git 目錄查看下有哪些內(nèi)容。
Git 提交代碼的基本流程是這樣的:
- 創(chuàng)建或修改 本地文件
- 使用 git add 命令,將創(chuàng)建或修改的文件添加到本地的 暫存區(qū),這里保存的是你的臨時(shí)更改
- 使用 git commit 命令,提交文件到 本地倉(cāng)庫(kù)
- 使用 git push 命令,將本地代碼庫(kù)同步到 遠(yuǎn)端倉(cāng)庫(kù)
目前為止,我們實(shí)現(xiàn)了第一步,創(chuàng)建了一個(gè)文件,我們的最終目標(biāo)是:將本地的 Demo 倉(cāng)庫(kù),同步到 GitHub 上的 Demo 倉(cāng)庫(kù)中。
?? git add
使用 git add + 文件名/目錄名 命令,可以將你需要同步的文件,添加到本地的暫存區(qū)。我們先進(jìn)入 DEMO 目錄,然后把 README.md 文件添加一下:
cd /home/shiyanlou/Demo
git add README.md
輸入 git status ,可以檢測(cè)當(dāng)前目錄和暫存區(qū)的狀態(tài),查看哪些修改被暫存了:
可以看到我們剛剛 add 的文件已經(jīng)被初始提交了。
?? git commit
git commit 提交是你工作的一個(gè)里程碑 —— 每當(dāng)你完成一些工作,都可以創(chuàng)建一次提交,保存當(dāng)前的版本。
這樣一來(lái),無(wú)論你何時(shí)修改了文件,都創(chuàng)建一個(gè)新版本的文件,你可以很方便地查看以往所有版本的文件和內(nèi)容。
在提交之前,你必須先設(shè)置你的名字和 email,這是你在提交 commit 時(shí)的簽名,每次提交記錄里都會(huì)包含這些信息。
使用 git config 命令進(jìn)行配置:
git config --global user.name "YourName"
git config --global user.email "YourEmail@xxx.com"
完成配置后,我們可以創(chuàng)建提交了,請(qǐng)輸入:
git commit -m "first commit"
commit 的語(yǔ)法結(jié)構(gòu)是 git commit -m "注釋",通過(guò)上個(gè)命令,你創(chuàng)建了一條注釋為 “first commit” 的 Git 提交。
?? 注意:
每次提交,你都必須用 -m + '注釋' 編輯注釋信息 。它不僅能協(xié)助我們辨別不同的版本,而且能讓你理解,自己當(dāng)時(shí)對(duì)文件做了什么修改。
比如當(dāng)你每次在文件中添加了新的代碼后,你可以寫一句提交信息:“添加了 XXX 代碼” —— 當(dāng)你一個(gè)月后回來(lái)看提交記錄或者 Git 日志 時(shí),你還能知道當(dāng)時(shí)做了什么。
終于到了激動(dòng)人心的時(shí)刻,我們要把本地倉(cāng)庫(kù)提交到遠(yuǎn)端倉(cāng)庫(kù)(即 Github 倉(cāng)庫(kù))中。
?? 連接 Github 倉(cāng)庫(kù)
使用如下命令,將本地倉(cāng)庫(kù)連接到 GitHub 倉(cāng)庫(kù)中:
git remote add origin 倉(cāng)庫(kù)鏈接
倉(cāng)庫(kù)鏈接請(qǐng)?jiān)谶@里復(fù)制,并用剪切板功能粘貼進(jìn)去:
我們分析一下這個(gè)命令,首先 remote 的意思是遠(yuǎn)程:
add 很容易明白 —— 添加。git remote add 表示通知 Git 去添加一個(gè)遠(yuǎn)程倉(cāng)庫(kù),后面接上的 origin 是這個(gè)倉(cāng)庫(kù)的小名,方便以后溝通,通常默認(rèn)用 origin 來(lái)表示;最后再接上遠(yuǎn)程倉(cāng)庫(kù)的地址,即你剛剛創(chuàng)建的 Github 倉(cāng)庫(kù)鏈接。
?? push 命令
push 顧名思義,就是推送, 使用 push 可以把本地倉(cāng)庫(kù)推送到遠(yuǎn)端倉(cāng)庫(kù)中。
具體命令如下:
git push origin master
執(zhí)行后,GitHub 服務(wù)器 需要驗(yàn)證你的身份,按提示輸入你的用戶名和密碼即可完成 push 同步。
?? 注意:在 Linux 中輸入密碼是不可見的,輸完后直接按回車鍵即可。
接下來(lái)就是見證奇跡的時(shí)刻 —— 再刷新你的 Github 倉(cāng)庫(kù),就會(huì)發(fā)現(xiàn)多了這些東西:
??分支的概念:分支在多人協(xié)作中經(jīng)常會(huì)被用到,但前期我們用不到這個(gè)功能,為了不給你增加認(rèn)知負(fù)擔(dān),這里就先不講了。你只需知道 Git 管理的項(xiàng)目進(jìn)程中,有一條默認(rèn)的主分支 - master 即可。(想象 Git 是一棵樹,master 就是樹干,樹干上還可以生出很多分支來(lái),如 master 2.0、master 3.0 等)
本節(jié)實(shí)驗(yàn)最后一個(gè)知識(shí)點(diǎn)是 git clone 命令,它可以幫你拷貝一個(gè) Git 倉(cāng)庫(kù)到本地,讓自己能夠查看該項(xiàng)目,或者進(jìn)行修改。
如果你想要復(fù)制一個(gè)項(xiàng)目,看看代碼,或者把自己的遠(yuǎn)程倉(cāng)庫(kù)復(fù)制到本地,可以執(zhí)行命令:
git clone [url]
[url] 指的就是你想復(fù)制的倉(cāng)庫(kù),我們?cè)?github.com 上提供了一個(gè)名字為 gitproject 的公開倉(cāng)庫(kù), 供大家測(cè)試,現(xiàn)在你要把這個(gè)倉(cāng)庫(kù)復(fù)制到實(shí)驗(yàn)環(huán)境中,只需輸入:
cd /home/shiyanlou/
git clone https://github.com/shiyanlou/gitproject
操作完成后,會(huì)發(fā)現(xiàn) /home/shiyanlou 目錄下多了一個(gè) gitproject 文件夾,這個(gè)文件夾里的內(nèi)容就是我們剛剛 clone 下來(lái)的代碼。
回顧一下本節(jié)實(shí)驗(yàn)學(xué)到的內(nèi)容:
- 版本控制
- Git 和 Github 的歷史
- 在 GitHub 創(chuàng)建倉(cāng)庫(kù)
- 添加修改到暫存區(qū)
- 提交代碼
- 同步遠(yuǎn)程倉(cāng)庫(kù)
之后,請(qǐng)你把這些操作整理在腦圖中,類似這樣:
?? 綜合練習(xí)
現(xiàn)在有 Github 賬戶,為何不把這幾天的學(xué)習(xí)記錄下來(lái)呢?
你可以在 Github 中新開一個(gè)倉(cāng)庫(kù),起名為「Louplus」,然后把這幾天的筆記或腦圖都放進(jìn)去,這樣做的好處是:
- 方便之后查閱
- 漂亮的學(xué)習(xí)記錄,可以激勵(lì)你以后的學(xué)習(xí)
- 這將是你未來(lái)求職最好的證明
我們?yōu)槟銣?zhǔn)備了四張從 Linux 到 Python 到 Git 的學(xué)習(xí)腦圖,請(qǐng)你試著用今天學(xué)到的內(nèi)容,上傳到 Louplus 的倉(cāng)庫(kù)中:
?? 步驟:
在
Github的個(gè)人主頁(yè)中新建一個(gè)倉(cāng)庫(kù),命名為Louplus-
復(fù)制倉(cāng)庫(kù)鏈接,在實(shí)驗(yàn)環(huán)境中,將該倉(cāng)庫(kù)克隆到本地 圖片描述
進(jìn)入本地的倉(cāng)庫(kù)目錄,輸入以下命令,下載我們之前的學(xué)習(xí)腦圖(可以用剪切板一口氣把四行命令粘貼進(jìn)去):
wget https://labfile.oss.aliyuncs.com/courses/1330/linux.png
wget https://labfile.oss.aliyuncs.com/courses/1330/python1.png
wget https://labfile.oss.aliyuncs.com/courses/1330/python2.png
wget https://labfile.oss.aliyuncs.com/courses/1330/git.png
使用
git add --all命令,添加倉(cāng)庫(kù)內(nèi)的所有文件使用
git commit、git remote、git push命令,將本地倉(cāng)庫(kù)同步到 Github 中
完成后,再次刷新你的 Github 倉(cāng)庫(kù),4 張圖片就這么被上傳了~
最后,不要忘了做我們的最終挑戰(zhàn)~
最終挑戰(zhàn)很簡(jiǎn)單:請(qǐng)你把上個(gè)挑戰(zhàn)完成的代碼文件,傳到自己的 Github 上。
最終挑戰(zhàn)也很重要:從現(xiàn)在開始,就請(qǐng)養(yǎng)成良好的代碼上傳習(xí)慣,不管是學(xué)習(xí)中的代碼、挑戰(zhàn)中的代碼,都可以上傳到 Github 上,你的代碼倉(cāng)庫(kù)將是你未來(lái)的財(cái)富。
勝利就在前方,加油 ~