你真的玩明白 git-->Github了嘛??

01
git-->Github
git、Github簡(jiǎn)介
git是一個(gè)免費(fèi)的、開(kāi)源的版本控制軟件。版本控制是一種記錄一個(gè)或者若干個(gè)文件內(nèi)容變化,以便將來(lái)查詢閱讀特定版本修訂情況的管理系統(tǒng)。
Github是全球最大的設(shè)計(jì)編程以及代碼托管網(wǎng)站Github官網(wǎng),Github可以托管各種git庫(kù),并提供一個(gè)web界面。
git是版本控制軟件,Github是項(xiàng)目代碼托管的平臺(tái),借助git來(lái)管理項(xiàng)目代碼。Github可以學(xué)習(xí)到優(yōu)秀的開(kāi)源項(xiàng)目,關(guān)注行業(yè)前輩了最新的行業(yè)動(dòng)態(tài)以及最前沿的技術(shù)。
git命令流程圖

存儲(chǔ)前的準(zhǔn)備工作
確定本機(jī)已經(jīng)安裝好git軟件。
確保已經(jīng)注冊(cè)好遠(yuǎn)程倉(cāng)庫(kù),即Github賬號(hào)。
實(shí)現(xiàn)步驟
1. 首先創(chuàng)建一個(gè)本地的版本庫(kù)(即創(chuàng)建一個(gè)文件夾)
你可以直接右鍵點(diǎn)擊新建文件夾,也可以打開(kāi)git-bash.exe命令窗口通過(guò)命令來(lái)創(chuàng)建。
現(xiàn)在我通過(guò)命令行新建一個(gè)test文件夾(你也可以在其他的任何地方創(chuàng)建這個(gè)文件夾 注意:在哪個(gè)文件夾中打開(kāi)git-bash.exe命令,就在該文件夾下創(chuàng)建一個(gè)新的版本庫(kù)),并且進(jìn)入該文件夾下。

2. 進(jìn)入剛才創(chuàng)建的版本庫(kù)test (使用 cd +文件夾名稱命令進(jìn)入指定的文件夾)

3. 查看當(dāng)前在哪個(gè)版本庫(kù)中,即查看當(dāng)前在哪個(gè)路徑之下(絕對(duì)路徑),確定是否在 test 版本庫(kù)中。(使用pwd命令進(jìn)行查看)

4. 通過(guò)命令 git init 把這個(gè)版本庫(kù)變成Git可管理的倉(cāng)庫(kù)。

這里需要注意一下 :
在路徑的最后邊出現(xiàn)了帶括號(hào)的master (master)說(shuō)明此時(shí)將test的這個(gè)版本庫(kù)提交到了git的主分支master上.
這時(shí)你會(huì)發(fā)現(xiàn)在test里面多了個(gè) .git文件夾,他是Git用來(lái)追蹤和管理版本庫(kù)的。
如果你看不到,是因為它默認(rèn)時(shí)隱藏文件,那你就需要設(shè)置一下讓隱藏文件可見(jiàn)。
這時(shí)候你就可以把你的項(xiàng)目粘貼到這個(gè)本地Git倉(cāng)庫(kù)里面(粘貼之后你可以通過(guò) git status . 來(lái)查看你當(dāng)前的狀態(tài))
此時(shí)還沒(méi)有將文件添加到暫存區(qū)中,所有會(huì)顯示 nothing to commit ,代表沒(méi)有任何的文件。

5. 使用命令 git add . 把項(xiàng)目添加暫存區(qū)里面去,不要忘記后面的小數(shù)點(diǎn)”.“,意為添加該文件夾下的所有文件。如果想添加某個(gè)文件可以使用命令 git add 某個(gè)具體文件。
第一種 :git add . : 代表將該文件夾下的所有文件都添加到暫存區(qū)里面。

第二種 :git add 文件名稱 : 代表將指定的文件添加到暫存區(qū)里面。

注意 :綠色的代表添加到該版本庫(kù)中成功 紅色的代表沒(méi)有添加到該版本庫(kù)中。
在這個(gè)過(guò)程中你可以一直使用status來(lái)查看當(dāng)前管理的狀態(tài)。
6. 用 git commit -m "第一次提交" 命令:上一步進(jìn)行管理的項(xiàng)目提交到倉(cāng)庫(kù)。
-m 后面的雙引號(hào)里面是本次提交的注釋內(nèi)容,這個(gè)可以不寫(xiě),但是最好寫(xiě)上,不然會(huì)報(bào)錯(cuò)。(寫(xiě)上的話便于我們后期在遠(yuǎn)程倉(cāng)庫(kù)中尋找到這個(gè)文件)至此,我們本地git倉(cāng)庫(kù)這邊的工作做完了,下面連接遠(yuǎn)程倉(cāng)庫(kù)(也就是連接Github)。

create mode 100644 :代表創(chuàng)建模式 100644。
100代表regular file(常規(guī)文件),644代表文件權(quán)限。
7. 遠(yuǎn)程倉(cāng)庫(kù)設(shè)置
由于本地Git倉(cāng)庫(kù)和Github倉(cāng)庫(kù)之間的傳輸是通過(guò)SSH加密的,所以連接時(shí)需要設(shè)置一下:
7.1 創(chuàng)建SSH
已有ssh密鑰:先看一下你的C盤(pán)用戶目錄下有沒(méi)有.ssh目錄,有的話看下里面有沒(méi)有 id_rsa 和 id_rsa.pub 這兩個(gè)文件,有的跳到下一步。

cd ~/.ssh :此命令是查看是否配置過(guò)密鑰 (如果不報(bào)錯(cuò)說(shuō)明配置過(guò),如果報(bào)錯(cuò)說(shuō)明沒(méi)有配置過(guò))
ls : 此命令是查看配置過(guò)密鑰的列表
id_rsa.pub : 這個(gè)是公鑰文件
創(chuàng)建新的ssh密鑰
第一種方式:
1.輸入命令:cd ~
2.然后輸入:ssh-keygen.exe

第二種方式 :
首先輸入ssh-keygen -t rsa -C 郵箱名稱 這個(gè)命令,然后回車(chē)。這時(shí)你就會(huì)在用戶下的.ssh目錄里找到idrsa和idrsa.pub這兩個(gè)文件。
7.2 登錄Github —>點(diǎn)擊右上角的圖標(biāo) —>選擇Settings —>點(diǎn)擊左邊的SSH and GPG KEYS —>點(diǎn)擊右上角的New SSH key —>Title隨便填 —>把剛才id_rsa.pub里面的內(nèi)容復(fù)制到Title下面的Key內(nèi)容框里面 —>最后點(diǎn)擊Add SSH key —>完成SSH Key的加密。具體步驟如下:

7.2 在Github上創(chuàng)建一個(gè)Git倉(cāng)庫(kù)。

8. 在Github上創(chuàng)建好Git倉(cāng)庫(kù)后通過(guò)命令 git remote add origin 想要傳輸到的Github倉(cāng)庫(kù)的SSH 和本地倉(cāng)庫(kù)進(jìn)行關(guān)聯(lián)。(SSH連接在下邊的這個(gè)圖片已經(jīng)給出)

此時(shí)這里的輸入的命令是 :
git remote add origingit@github.com:YunboCheng4379/test.git

注意 :運(yùn)行之后不出現(xiàn)任何的錯(cuò)誤信息表示連接成功。
注意 : origin 后面加的是你Github上創(chuàng)建好的倉(cāng)庫(kù)的地址(SSH)。

9. 關(guān)聯(lián)好之后通過(guò)命令git push -u origin master將本地庫(kù)的所有內(nèi)容推送到遠(yuǎn)程倉(cāng)(Github)

由于新建的遠(yuǎn)程倉(cāng)庫(kù)是空的,所以要加上-u這個(gè)參數(shù),等遠(yuǎn)程倉(cāng)庫(kù)里面有了內(nèi)容之后,下次再?gòu)谋镜貛?kù)上傳內(nèi)容的時(shí)候只需 git push origin master 可以省略掉 -u 這個(gè)參數(shù)。
刷新Github頁(yè)面進(jìn)入剛才新建的倉(cāng)庫(kù)里面就會(huì)發(fā)現(xiàn)項(xiàng)目已經(jīng)上傳成功

至此完成將本地項(xiàng)目上傳到Github的整個(gè)過(guò)程。
注意有坑:在上面第5步新建遠(yuǎn)程倉(cāng)庫(kù)的時(shí)候如果你勾選了Initialize this repository with a README(就是創(chuàng)建倉(cāng)庫(kù)的時(shí)候自動(dòng)給你創(chuàng)建一個(gè)README文件),那么到了第7步你將本地倉(cāng)庫(kù)內(nèi)容推送到遠(yuǎn)程倉(cāng)庫(kù)的時(shí)候就會(huì)報(bào)一個(gè) failed to push some refs to https://github.com/guyibang/TEST2.git 的錯(cuò)。
原因:由于你新創(chuàng)建的那個(gè)倉(cāng)庫(kù)里面的README文件不在本地倉(cāng)庫(kù)目錄中,這時(shí)我們可以通過(guò) git pull --rebase origin master 命令先將內(nèi)容合并,此時(shí)再push就能成功了。
命令補(bǔ)充
生成公鑰和密鑰
ssh-keygen -t rsa
查看已有的配置信息
git config --list
Git 中從遠(yuǎn)程分支獲取最新的版本到本地有兩個(gè)命令。
git fetch : 相當(dāng)于是從遠(yuǎn)程分支獲取到最新版本到本地,不會(huì)自動(dòng)merge(合并代碼)。
git pull : 相當(dāng)于是從遠(yuǎn)程倉(cāng)庫(kù)獲取到最新版本并 merge到本地。
git pull = git fetch + git merge
總結(jié):本地項(xiàng)目通過(guò)git上傳到github
1)、在本地創(chuàng)建一個(gè)版本庫(kù)(即文件夾),通過(guò) git init 把它變成Git倉(cāng)庫(kù);
2)、把項(xiàng)目復(fù)制到這個(gè)文件夾里面,再通過(guò) git add . 把項(xiàng)目添加到倉(cāng)庫(kù);
3)、再通過(guò) git commit -m 注釋內(nèi)容 把項(xiàng)目提交到本地倉(cāng)庫(kù);
4)、在Github上設(shè)置好SSH密鑰后,新建一個(gè)遠(yuǎn)程倉(cāng)庫(kù),通過(guò) git remote add origin 想要傳輸到的Github倉(cāng)庫(kù)的SSH 將本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)進(jìn)行關(guān)聯(lián);
5)、最后通過(guò) git push -u origin master 把本地倉(cāng)庫(kù)的項(xiàng)目推送到遠(yuǎn)程倉(cāng)庫(kù)(也就是Github)上。
往期回顧

