一蕾各、前言
有了本地倉庫后榛了,我們已經(jīng)很熟練地在自家倉庫里add
、commit
了,但是把東西放在本地敦腔,還是不安全呀,萬一哪天機(jī)器崩潰了呢鞋囊,所以甸陌,要將倉庫中的內(nèi)容上傳到 GitHub 再次備份一下。下面就介紹近哟,如何向 GitHub 提交代碼驮审。
二、向 GitHub 提交代碼
1. 獲得向 GitHub 提交代碼的權(quán)限(配置公鑰)
我們是不能向 GitHub 隨意提交代碼的椅挣,否則 GitHub 早就亂套了头岔。要想向 GitHub 提交代碼是需要某種授權(quán)的—— GitHub 是基于 SSH 授權(quán)的。
(1)安裝 SSH
Windows 系統(tǒng)安裝了 Git Bash 后是帶了 SSH 的鼠证,在 Git Bash 中輸入 ssh
峡竣,若出現(xiàn)如下提示,說明安裝成功量九。
Mac 系統(tǒng):
(2)生成密鑰
Windows:在 Git Bash 中輸入命令ssh-keygen -t rsa
适掰,使用 rsa 算法生成密鑰。id_rsa 是密鑰荠列,id_rsa.pub 是公鑰类浪,文件存儲在默認(rèn)目錄下,如下圖所示肌似。
Mac:首先使用以下命令在本地生成公鑰和私鑰
ssh--keygen -t rsa// 一種算法
然后將公鑰復(fù)制到剪貼板備用
cat ~/.ssh/id_rsa.pub | pbcopy
(3)在 GitHub 上添加 SSH Key
把 id_rsa.pub 中的內(nèi)容復(fù)制到 GitHub 上的 Add SSH Keys 文本框中费就。
2. 配置用戶名、用戶郵箱
git 會根據(jù)這個配置確定代碼提交人
git config --global user.name "baomeili"
git config --global user.email "XX@qq.com"
3. 將本地倉庫和遠(yuǎn)程倉庫關(guān)聯(lián)
(1)clone 的方式
若通過 clone 的方式生成本地倉庫川队,git clone git@github.com/SiXiWanZi/Test.git
力细,那么生成的本地倉庫已經(jīng)和遠(yuǎn)程倉庫關(guān)聯(lián)好了睬澡。
(2)init 本地文件夾的方式
- 添加遠(yuǎn)程倉庫
若通過 init 本地文件夾的方式生成本地倉庫,執(zhí)行過 commit 操作后眠蚂,本地倉庫默認(rèn)創(chuàng)建 master 分支煞聪,但尚未和遠(yuǎn)程倉庫關(guān)聯(lián)。通過以下指令為本地倉庫添加一個遠(yuǎn)程倉庫逝慧,至此實現(xiàn)本地倉庫與遠(yuǎn)程倉庫的關(guān)聯(lián)昔脯。
$ git remote add origin git@github.com:SiXiWanZi/Test.git
其中 origin 為給遠(yuǎn)程倉庫起的別名。
- 刪除遠(yuǎn)程倉庫
$ git remote rm <repName>
例如笛臣,git remote rm myRep
- 修改遠(yuǎn)程倉庫
$ git remote rename <oldName> <newName>
例如云稚,git remote rename oldRep newRep
- 查看遠(yuǎn)程倉庫列表
$ git remote -v
4. 將本地修改推送到 GitHub
git push 的一般形式是
$ git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
幾種常見的用法有:
git push origin master
該形式中遠(yuǎn)程分支名被省略,表示將本地分支推送到與之存在追蹤關(guān)系的遠(yuǎn)程分支(通常二者同名)捐祠,如果該遠(yuǎn)程分支不存在碱鳞,則會被創(chuàng)建。把本地的 master 分支內(nèi)容推送到遠(yuǎn)程的 master 分支踱蛀,還會把本地的 master 分支和遠(yuǎn)程的 master 關(guān)聯(lián)起來窿给。
git push origin :refs/for/master
該形式中本地分支名被省略,表示推送一個空的本地分支到遠(yuǎn)程分支率拒,刪除指定的遠(yuǎn)程分支
git push origin
如果當(dāng)前分支與遠(yuǎn)程分支存在追蹤關(guān)系崩泡,則本地分支和遠(yuǎn)程都可省略。
git push
如果當(dāng)前分支只有一個遠(yuǎn)程分支猬膨,那么主機(jī)名都可省略角撞。
git push -u origin master
第一次推送 master 分支時,加上 -u
參數(shù)勃痴,表示將本地的 master 分支推送到 origin 主機(jī)谒所,同時指定 origin 為默認(rèn)主機(jī),之后就可以不加任何參數(shù)使用git push
了沛申,表達(dá)的意思和git push origin master
相同劣领。把本地的 master 分支內(nèi)容推送到遠(yuǎn)程的 master 分支,還會把本地的 master 分支和遠(yuǎn)程的 master 關(guān)聯(lián)起來铁材。
三尖淘、總結(jié)
本文是對stromzhang從0開始學(xué)習(xí)GitHub系列電子書的學(xué)習(xí)筆記,感謝stormzhang著觉。經(jīng)過上述操作村生,起碼文件是丟不了了,下面繼續(xù)學(xué)習(xí) Git 的其他操作饼丘。