<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 從0開(kāi)始學(xué)習 GitHub 系列之「04.向GitHub 提交代碼」

從0開(kāi)始學(xué)習 GitHub 系列之「04.向GitHub 提交代碼」

作者: 時(shí)間:2017-04-28 來(lái)源:網(wǎng)絡(luò ) 收藏

  之前的這篇文章「從0開(kāi)始學(xué)習  系列之「Git速成」」相信大家都已經(jīng)對 Git 的基本操作熟悉了,但是這篇文章只介紹了對本地 Git 倉庫的基本操作,今天我就來(lái)介紹下如何跟遠程倉庫一起協(xié)作,教你們向  上提交你們的第一行代碼!

本文引用地址:http://dyxdggzs.com/article/201704/358581.htm

  1. SSH

  你擁有了一個(gè)  賬號之后,就可以自由的 clone 或者下載其他項目,也可以創(chuàng )建自己的項目,但是你沒(méi)法提交代碼。仔細想想也知道,肯定不可能隨意就能提交代碼的,如果隨意可以提交代碼,那么 GitHub 上的項目豈不亂了套了,所以提交代碼之前一定是需要某種授權的,而 GitHub 上一般都是基于 SSH 授權的。

  那么什么是 SSH 呢?

  簡(jiǎn)單點(diǎn)說(shuō),SSH是一種網(wǎng)絡(luò )協(xié)議,用于計算機之間的加密登錄。目前是每一臺 Linux 電腦的標準配置。而大多數 Git 服務(wù)器都會(huì )選擇使用 SSH 公鑰來(lái)進(jìn)行授權,所以想要在 GitHub 提交代碼的第一步就是要先添加 SSH key 配置。

  2. 生成SSH key

  Linux 與 Mac 都是默認安裝了 SSH ,而 Windows 系統安裝了 Git Bash 應該也是帶了 SSH 的。大家可以在終端(win下在 Git Bash 里)輸入 ssh 如果出現以下提示證明你本機已經(jīng)安裝 SSH, 否則請搜索自行安裝下。

    

 

  緊接著(zhù)輸入 ssh-keygen -t rsa ,什么意思呢?就是指定 rsa 算法生成密鑰,接著(zhù)連續三個(gè)回車(chē)鍵(不需要輸入密碼),然后就會(huì )生成兩個(gè)文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密鑰,id_rsa.pub 就是公鑰。這兩文件默認分別在如下目錄里生成:

  Linux/Mac 系統 在 ~/.ssh 下,win系統在 /c/Documents and Settings/username/.ssh 下,都是隱藏文件,相信你們有辦法查看的。

  接下來(lái)要做的是把 id_rsa.pub 的內容添加到 GitHub 上,這樣你本地的 id_rsa 密鑰跟 GitHub 上的 id_rsa.pub 公鑰進(jìn)行配對,授權成功才可以提交代碼。

  3. GitHub 上添加 SSH key

  第一步先在 GitHub 上的設置頁(yè)面,點(diǎn)擊最左側 SSH and GPG keys :

    

 

  然后點(diǎn)擊右上角的 New SSH key 按鈕:

    

 

  需要做的只是在 Key 那欄把 id_rsa.pub 公鑰文件里的內容復制粘貼進(jìn)去就可以了(上述示例為了安全粘貼的公鑰是無(wú)效的),Title 那欄不需要填寫(xiě),點(diǎn)擊 Add SSH key 按鈕就ok了。

  這里提醒下,怎么查看 id_rsa.pub 文件的內容?

  Linux/Mac 用戶(hù)執行以下命令:

  cd ~/.ssh

  cat id_rsa.pub

  Windows用戶(hù),設置顯示隱藏文件,可以使用 EditPlus 或者 Sublime 打開(kāi)復制就行了。

  SSH key 添加成功之后,輸入 ssh -T git@github.com 進(jìn)行測試,如果出現以下提示證明添加成功了。

    

 

  4. Push & Pull

  在提交代碼之前我們先要了解兩個(gè)命令,也是上次的文章沒(méi)有介紹的,因為這兩個(gè)命令需要跟遠程倉庫配合。

  Push :直譯過(guò)來(lái)就是「推」的意思,什么意思呢?如果你本地代碼有更新了,那么就需要把本地代碼推到遠程倉庫,這樣本地倉庫跟遠程倉庫就可以保持同步了。

  代碼示例: git push origin master

  意思就是把本地代碼推到遠程 master 分支。

  Pull:直譯過(guò)來(lái)就是「拉」的意思,如果別人提交代碼到遠程倉庫,這個(gè)時(shí)候你需要把遠程倉庫的最新代碼拉下來(lái),然后保證兩端代碼的同步。

  代碼示例: git pull origin master

  意思就是把遠程最新的代碼更新到本地。一般我們在 push 之前都會(huì )先 pull ,這樣不容易沖突。

  5. 提交代碼

  添加 SSH key 成功之后,我們就有權限向 GitHub 上我們自己的項目提交代碼了,而提交代碼有兩種方法:

  Clone自己的項目

  我們以我在 GitHub 上創(chuàng )建的 test 項目為例,執行如下命令:

  git clone git@github.com:stormzhang/test.git

  這樣就把 test 項目 clone 到了本地,你可以把 clone 命令理解為高級點(diǎn)的復制,這個(gè)時(shí)候該項目本身就已經(jīng)是一個(gè)git 倉庫了,不需要執行 git init 進(jìn)行初始化,而且甚至都已經(jīng)關(guān)聯(lián)好了遠程倉庫,我們只需要在這個(gè) test 目錄下任意修改或者添加文件,然后進(jìn)行 commit ,之后就可以執行:

  git push origin master

  進(jìn)行代碼提交,這種是最簡(jiǎn)單方便的一種方式。

  至于怎么獲取項目的倉庫地址呢?如下圖:

    

 

  關(guān)聯(lián)本地已有項目

  如果我們本地已經(jīng)有一個(gè)完整的 git 倉庫,并且已經(jīng)進(jìn)行了很多次 commit ,這個(gè)時(shí)候第一種方法就不適合了。

  假設我們本地有個(gè) test2 的項目,我們需要的是在 GitHub 上建一個(gè) test 的項目,然后把本地 test2 上的所有代碼 commit 記錄提交到 GitHub 上的 test 項目。

  第一步就是在 GitHub 上建一個(gè) test 項目,這個(gè)想必大家都會(huì )了,就不用多講了。

  第二步把本地 test2 項目與 GitHub 上的 test 項目進(jìn)行關(guān)聯(lián),切換到 test2 目錄,執行如下命令:

  git remote add origin git@github.com:stormzhang/test.git

  什么意思呢?就是添加一個(gè)遠程倉庫,他的地址是 git@github.com:stormzhang/test.git ,而 origin 是給這個(gè)項目的遠程倉庫起的名字,是的,名字你可以隨便取,只不過(guò)大家公認的只有一個(gè)遠程倉庫時(shí)名字就是 origin ,為什么要給遠程倉庫取名字?因為我們可能一個(gè)項目有多個(gè)遠程倉庫?比如 GitHub 一個(gè),比如公司一個(gè),這樣的話(huà)提交到不同的遠程倉庫就需要指定不同的倉庫名字了。

  查看我們當前項目有哪些遠程倉庫可以執行如下命令:

  git remote -v

  接下來(lái),我們本地的倉庫就可以向遠程倉庫進(jìn)行代碼提交了:

  git push origin master

  就是默認向 GitHub 上的 test 目錄提交了代碼,而這個(gè)代碼是在 master 分支。當然你可以提交到指定的分支,這個(gè)之后的文章再詳細講解。

  對了,友情提醒,在提交代碼之前先要設置下自己的用戶(hù)名與郵箱,這些信息會(huì )出現在所有的 commit 記錄里,執行以下代碼就可以設置:

  git config —global user.name "stormzhang"

  git config —global user.email "stormzhang.dev@gmail.com"

  6. 總結

  通過(guò)本文的介紹,終于大家可以成功的向 GitHub 提交代碼了,但是相信大家還有很多疑問(wèn),比如關(guān)于分支的理解與使用,比如 git 的其他一些有用的配置,比如怎么向一些開(kāi)源項目貢獻代碼,發(fā)起 Pull Request 等,之后的系列文章會(huì )逐一進(jìn)行介紹,敬請期待。



關(guān)鍵詞: GitHub

評論


相關(guān)推薦

首先雖然不一定能一眼看出這圖是偽造的,但是這個(gè)消息必然屬于那種一眼就能看出的Fake News。偷服務(wù)器數據這個(gè)很常見(jiàn),同樣是Github,在今年五月份就曾被黑客入侵導致超500G數據被竊取。畢竟想要盜取沒(méi)有實(shí)體的數據,一根連通的網(wǎng)線(xiàn)足以。

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>