最近在研究如何把代碼提交到github上的倉庫里尾抑,在網(wǎng)上查了不少文章侮邀,介紹的都不是清楚念链,現(xiàn)在把自己試驗成功的流程記錄下來 盼忌。
我們在github上新建一個倉庫后积糯,clone時有兩種方式:https 和 SSH ,所以也有兩個地址
那么我們在提交代碼時谦纱,是不是根據(jù)這兩個地址都可以提交啊 看成??
這是現(xiàn)在的疑惑跨嘉,目前只是用SSH方式提交成功了 川慌。
更新:
https 和 SSH 的區(qū)別:
1、前者可以隨意克隆github上的項目祠乃,而不管是誰的梦重;而后者則是你必須是你要克隆的項目的擁有者或管理員,且需要先添加 SSH key 亮瓷,否則無法克隆琴拧。
2、https url 在push的時候是需要驗證用戶名和密碼的嘱支;而 SSH 在push的時候蚓胸,是不需要輸入用戶名的,如果配置SSH key的時候設(shè)置了密碼斗塘,則需要輸入密碼的赢织,否則直接是不需要輸入密碼的。
補充 : 實際測試中馍盟, 我用SSH url 也可以clone 別人的項目 于置,這與第一點中的說法矛盾 ?贞岭?
待核實 ...
1. SSH
那么什么是 SSH 呢八毯? 簡單點說,SSH是一種網(wǎng)絡(luò)協(xié)議瞄桨,用于計算機之間的加密登錄话速。目前是每一臺 Linux 電腦的標準配置。而大多數(shù) Git 服務(wù)器都會選擇使用 SSH 公鑰來進行授權(quán)芯侥,所以想要在 GitHub 提交代碼的第一步就是要先添加 SSH key 配置泊交。
我們創(chuàng)建了github賬號以后,就可以自由的clone或者下載項目了柱查,但是要想向github上提交代碼必須要進行SSH授權(quán)廓俭。
1.1 生成SSH key
Windows 系統(tǒng)安裝了 Git Bash 應(yīng)該也是帶了 SSH 的。大家可以在終端(win下在 Git Bash 里)輸入 ssh 如果出現(xiàn)以下提示證明你本機已經(jīng)安裝 SSH唉工,
緊接著輸入 ssh-keygen -t rsa 研乒,什么意思呢?就是指定 rsa 算法生成密鑰淋硝,接著連續(xù)三個回車鍵(不需要輸入密碼)雹熬,然后就會生成兩個文件 id_rsa 和 id_rsa.pub 宽菜,而 id_rsa 是密鑰,id_rsa.pub 就是公鑰竿报。這兩文件默認分別在如下目錄里生成:
win系統(tǒng)在 /C/username/.ssh 下
接下來要做的是把 id_rsa.pub 的內(nèi)容添加到 GitHub 上铅乡,這樣你本地的 id_rsa 密鑰跟 GitHub 上的 id_rsa.pub 公鑰進行配對,授權(quán)成功才可以提交代碼仰楚。
1.1 github 添加SSH key
第一步先在 GitHub 上的設(shè)置頁面隆判,點擊最左側(cè) SSH and GPG keys :
然后點擊右上角的 New SSH key 按鈕:
需要做的只是在 Key 那欄把 id_rsa.pub 公鑰文件里的內(nèi)容復制粘貼進去就可以了(該文件使用editplus或者其他文本編輯器打開),Title 那欄不需要填寫僧界,點擊 Add SSH key 按鈕就ok了侨嘀。
SSH key 添加成功之后,輸入 ssh -T git@github.com 進行測試捂襟,如果出現(xiàn)以下提示證明添加成功了咬腕。
2. 使用git提交代碼
2.1 push pull 命令
Push :直譯過來就是「推」的意思,什么意思呢葬荷?如果你本地代碼有更新了涨共,那么就需要把本地代碼推到遠程倉庫,這樣本地倉庫跟遠程倉庫就可以保持同步了宠漩。
代碼示例: git push origin master
意思就是把本地代碼推到遠程 master 分支举反。
Pull:直譯過來就是「拉」的意思,如果別人提交代碼到遠程倉庫扒吁,這個時候你需要把遠程倉庫的最新代碼拉下來火鼻,然后保證兩端代碼的同步。
代碼示例: git pull origin master
意思就是把遠程最新的代碼更新到本地雕崩。一般我們在 push 之前都會先 pull 魁索,這樣不容易沖突。
2.2 提交代碼
添加 SSH key 成功之后盼铁,我們就有權(quán)限向 GitHub 上我們自己的項目提交代碼了
Clone自己的項目 我們以我在 GitHub 上創(chuàng)建的 test 項目為例粗蔚,執(zhí)行如下命令:
git clone git@github.com:yanxinmiao/XianDu.git
這樣就把 test 項目 clone 到了本地,你可以把 clone 命令理解為高級點的復制饶火,這個時候該項目本身就已經(jīng)是一個git 倉庫了鹏控,不需要執(zhí)行 git init 進行初始化,而且甚至都已經(jīng)關(guān)聯(lián)好了遠程倉庫肤寝,我們只需要在這個 test 目錄下任意修改或者添加文件牧挣,然后進行add 、 commit 醒陆,之后就可以執(zhí)行:
git push origin master
至此 , 一種簡單的提交方式就完成了裆针,當然還有很多復制的情況 刨摩,現(xiàn)在還沒有研究明白寺晌,待以后再續(xù) 。
2016/12/29 更新
2. HTTPS
今天使用https url 也提交成功了 澡刹。 簡單記錄一下流程 呻征。
同樣需要先在github上創(chuàng)建一個倉庫,這樣就有了 https url 罢浇。
然后在本地的一個文件夾執(zhí)行
git clone https://github.com/yanxinmiao/Demo.git
把需要提交的代碼復制到該文件夾中 陆赋,在該文件夾中執(zhí)行 git bash , 打開git 命令窗口
-
首先要配置一下用戶名和密碼,這樣才能知道是誰提交的代碼
-
接下來嚷闭,執(zhí)行 add 命令將文件添加進版本控制:
- 添加進來之后攒岛,執(zhí)行提交命令 ,這樣就將修改提交到了本地倉庫
- 將本地倉庫內(nèi)容上傳到GitHub上
這樣就把本地代碼提交到github上的倉庫中了 。