部分內(nèi)容摘自:https://www.cnblogs.com/xiao-lei/p/6267123.html
準(zhǔn)備工作,首先你要有自己的github賬號(hào),然后就是要在電腦上安裝Git;
一、創(chuàng)建github?repository(倉(cāng)庫(kù))
二、安裝git客戶(hù)端
三、為Github賬戶(hù)設(shè)置SSH key
四、上傳本地項(xiàng)目到github
一.創(chuàng)建好屬于自己的庫(kù)

二.安裝git客戶(hù)端
Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng),git與svn的五個(gè)基本區(qū)別。它有以下特點(diǎn):
分布式 : Git版本控制系統(tǒng)是一個(gè)分布式的系統(tǒng), 是用來(lái)保存工程源代碼歷史狀態(tài)的命令行工具;
保存點(diǎn) : Git的保存點(diǎn)可以追蹤源碼中的文件, 并能得到某一個(gè)時(shí)間點(diǎn)上的整個(gè)工程項(xiàng)目額狀態(tài); 可以在該保存點(diǎn)將多人提交的源碼合并, 也可以會(huì)退到某一個(gè)保存點(diǎn)上;
Git離線(xiàn)操作性 :Git可以離線(xiàn)進(jìn)行代碼提交, 因此它稱(chēng)得上是完全的分布式處理, Git所有的操作不需要在線(xiàn)進(jìn)行; 這意味著Git的速度要比SVN等工具快得多, 因?yàn)镾VN等工具需要在線(xiàn)時(shí)才能操作, 如果網(wǎng)絡(luò)環(huán)境不好, 提交代碼會(huì)變得非常緩慢;
Git基于快照 : SVN等老式版本控制工具是將提交點(diǎn)保存成補(bǔ)丁文件, Git提交是將提交點(diǎn)指向提交時(shí)的項(xiàng)目快照, 提交的東西包含一些元數(shù)據(jù)(作者, 日期, GPG等);
Git的分支和合并 : 分支模型是Git最顯著的特點(diǎn), 因?yàn)檫@改變了開(kāi)發(fā)者的開(kāi)發(fā)模式, SVN等版本控制工具將每個(gè)分支都要放在不同的目錄中, Git可以在同一個(gè)目錄中切換不同的分支;
分支即時(shí)性 : 創(chuàng)建和切換分支幾乎是同時(shí)進(jìn)行的, 用戶(hù)可以上傳一部分分支, 另外一部分分支可以隱藏在本地, 不必將所有的分支都上傳到GitHub中去;
分支靈活性 : 用戶(hù)可以隨時(shí) 創(chuàng)建 合并 刪除分支, 多人實(shí)現(xiàn)不同的功能, 可以創(chuàng)建多個(gè)分支進(jìn)行開(kāi)發(fā), 之后進(jìn)行分支合并, 這種方式使開(kāi)發(fā)變得快速, 簡(jiǎn)單, 安全。
2-1 下載git客戶(hù)端
官方下載地址:http://git-scm.com/download/ ?根據(jù)你自己的系統(tǒng) 下載對(duì)應(yīng)版本,沒(méi)想到它知道我是Windows
2.2綁定用戶(hù)
打開(kāi)git-bash.exe,在桌面快捷方式/開(kāi)始菜單/安裝目錄中

因?yàn)镚it是分布式版本控制系統(tǒng),所以需要填寫(xiě)用戶(hù)名和郵箱作為一個(gè)標(biāo)識(shí),用戶(hù)和郵箱為你github注冊(cè)的賬號(hào)和郵箱
ps?:?git config? –global 參數(shù),有了這個(gè)參數(shù),表示你這臺(tái)機(jī)器上所有的Git倉(cāng)庫(kù)都會(huì)使用這個(gè)配置,當(dāng)然你也可以對(duì)某個(gè)倉(cāng)庫(kù)指定的不同的用戶(hù)名和郵箱。
三、為Github賬戶(hù)設(shè)置SSH key
眾所周知ssh key是加密傳輸。
加密傳輸?shù)乃惴ㄓ泻枚?,git使用rsa,rsa要解決的一個(gè)核心問(wèn)題是,如何使用一對(duì)特定的數(shù)字,使其中一個(gè)數(shù)字可以用來(lái)加密,而另外一個(gè)數(shù)字可以用來(lái)解密。這兩個(gè)數(shù)字就是你在使用git和github的時(shí)候所遇到的public key也就是公鑰以及private key私鑰。
其中,公鑰就是那個(gè)用來(lái)加密的數(shù)字,這也就是為什么你在本機(jī)生成了公鑰之后,要上傳到github的原因。從github發(fā)回來(lái)的,用那公鑰加密過(guò)的數(shù)據(jù),可以用你本地的私鑰來(lái)還原。
如果你的key丟失了,不管是公鑰還是私鑰,丟失一個(gè)都不能用了,解決方法也很簡(jiǎn)單,重新再生成一次,然后在github.com里再設(shè)置一次就行
3-1 生成ssh key
首先檢查是否已生成密鑰?cd ~/.ssh,ls如果有3個(gè)文件,則密鑰已經(jīng)生成,id_rsa.pub就是公鑰

如果沒(méi)有生成,那么通過(guò)$ ssh-keygen -t rsa -C “6215048wjl@163.com”來(lái)生成。
1)是路徑確認(rèn),直接按回車(chē)存默認(rèn)路徑即可
2)直接回車(chē)鍵,這里我們不使用密碼進(jìn)行登錄, 用密碼太麻煩;
3)直接回車(chē)鍵

生成成功后,去對(duì)應(yīng)目錄用記事本打開(kāi)id_rsa.pub,得到ssh key公鑰

3-2 為github賬號(hào)配置ssh key
切換到github,展開(kāi)個(gè)人頭像的小三角,點(diǎn)擊settings

然后打開(kāi)SSH keys菜單, 點(diǎn)擊Add SSH key新增密鑰,填上標(biāo)題,跟倉(cāng)庫(kù)保持一致吧,好區(qū)分。

接著將id_rsa.pub文件中key粘貼到此,最后Add key生成密鑰吧。
如此,github賬號(hào)的SSH keys配置完成。

四.上傳本地項(xiàng)目到github
4-1 創(chuàng)建一個(gè)本地項(xiàng)目
我這創(chuàng)建了幾個(gè)空文件夾和一個(gè)文件及一個(gè)項(xiàng)目配置文件,好多前端項(xiàng)目都這樣搭架構(gòu),我也追隨潮流哈。

4-2 建立本地倉(cāng)庫(kù)
再來(lái)復(fù)習(xí)一下創(chuàng)建新倉(cāng)庫(kù)的指令:
git init?//把這個(gè)目錄變成Git可以管理的倉(cāng)庫(kù)
git add README.md?//文件添加到倉(cāng)庫(kù)
git add .?//不但可以跟單一文件,還可以跟通配符,更可以跟目錄。一個(gè)點(diǎn)就把當(dāng)前目錄下所有未追蹤的文件全部add了
git commit -m "first commit"?//把文件提交到倉(cāng)庫(kù)
git remote add origin?git@github.com:wangjiax9/practice.git?//關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)
git push -u origin master?//把本地庫(kù)的所有內(nèi)容推送到遠(yuǎn)程庫(kù)上
首先,進(jìn)入到beautifulDay項(xiàng)目目錄,還記得創(chuàng)建倉(cāng)庫(kù)成功后的那個(gè)頁(yè)面吧,指令都在呢。
然后執(zhí)行指令: git init

初始化成功后你會(huì)發(fā)現(xiàn)項(xiàng)目里多了一個(gè)隱藏文件夾.git
這個(gè)目錄是Git用來(lái)跟蹤管理版本庫(kù)的,沒(méi)事千萬(wàn)不要手動(dòng)修改這個(gè)目錄里面的文件,不然改亂了,就把Git倉(cāng)庫(kù)給破壞了。

接著,將所有文件添加到倉(cāng)庫(kù)
執(zhí)行指令: git add .

然后,把文件提交到倉(cāng)庫(kù),雙引號(hào)內(nèi)是提交注釋。
執(zhí)行指令: git commit -m "提交文件"

如此本地倉(cāng)庫(kù)建立好了。
4-3?關(guān)聯(lián)github倉(cāng)庫(kù)
到github beautifulDay倉(cāng)庫(kù)復(fù)制倉(cāng)庫(kù)地址

然后執(zhí)行指令: git remote add origin git@github.com:wangjiax9/beautifulDay.git

4-4 上傳本地代碼
執(zhí)行指令: git push -u origin master
1)敲一個(gè):yes, 然后回車(chē)

到此,本地代碼已經(jīng)推送到github倉(cāng)庫(kù)了,我們現(xiàn)在去githubt倉(cāng)庫(kù)看看。
咦!奇怪了,我的目錄呢?這個(gè)坑突然冒出來(lái)是不是印象很深刻呢~
注意咯: git是不能管理空的文件夾的,文件夾里必須有文件才能add

其中有一個(gè)問(wèn)題就是如果github上面有你本地沒(méi)有的文件,但是你卻要提交本地的上去就會(huì)報(bào)錯(cuò),所以在上傳之前一般來(lái)說(shuō)一搬都是先進(jìn)性代碼合并。
代碼:git pull --rebase origin master
git add .
git commit -m "提交test1.html"
git push -u origin master
