<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【效率】超詳細!手把手帶你快速入門 GitHub!

          共 8955字,需瀏覽 18分鐘

           ·

          2021-03-25 11:54

          作者:Peter     編輯:JackTian
          來源:公眾號「杰哥的IT之旅」

          快速入門GitHub

          GitHub在程序開發(fā)領(lǐng)域家喻戶曉,現(xiàn)在幾乎整個互聯(lián)網(wǎng)的開發(fā)者都將版本管理工具GitHub作為版本控制的首選,甚至像筆者這樣非開發(fā)者,一名和每天和數(shù)據(jù)打交道的人也在使用GitHub,目的主要有:

          • 查找資料:GitHub上有很多國內(nèi)外大神開源的數(shù)據(jù)挖掘、機器學習的資料、代碼,筆者直接fork或者clone下來學習

          • 技術(shù)交流:通過對開源項目提出issue,能夠起到技術(shù)交流的效果

          • 個人展示:現(xiàn)在互聯(lián)網(wǎng)領(lǐng)域中,如果一個程序員在GitHub上有一個很好的開源項目,必定是會備受關(guān)注。因此GitHub實際上是一個很好的展示個人實力的舞臺,或許它能夠讓你受到招聘人員的青睞

          可以說,正式GitHub,讓社會化全員編程成為了現(xiàn)實。

          既然好處頗多,作為互聯(lián)網(wǎng)界的一員,沒有理由不學好GitHub??本文將詳細介紹GitHub的相關(guān)基礎(chǔ)操作,帶你快速入門GitHub

          版本管理

          版本管理就是管理更新的歷史記錄。Git出現(xiàn)之前,人們主要是使用Subversion(簡稱為SVN)作為版本控制的工具。

          SVN

          SVN是屬于集中型的版本管理系統(tǒng),其特點是將倉庫集中存放在服務器中,所以只存在一個倉庫。集中型將所有特點是方便管理,但是如果開發(fā)者所處的環(huán)境無法聯(lián)網(wǎng),則無法獲取到最新的源碼,進而無法進行開發(fā)工作。

          Git

          Git是分散型的版本管理系統(tǒng)。從下圖中我們可以觀察出來,GitHub將倉庫fork給每個用戶。fork的倉庫和原始的倉庫是兩個不同的倉庫,開發(fā)者是可以隨意編輯的。

          Fork的過程其實就是將某個倉庫復制到自己的賬戶下

          什么GitHub

          GitHub是一個基于Git的代碼托管平臺。如果是付費用戶可以建立自己的私人倉庫,一般用戶的話只能建立公用倉庫,也就是說倉庫的代碼必須是公開的。到底Git和GitHub有什么區(qū)別呢?

          在Git中,開發(fā)者將源代碼存入名叫“Git倉庫”的資料庫中,方便使用;而GitHub則是在網(wǎng)絡上提供Git倉庫的一項服務

          GitHub上公開的源代碼都是通過Git進行管理的。

          安裝與配置Git

          安裝

          現(xiàn)在筆者使用的MacOS系統(tǒng),是自帶Git的。關(guān)于Windows系統(tǒng)下安裝,請參考如下文章,講解的非常詳細。

          Windows系統(tǒng)Git安裝教程(詳解Git安裝過程):

          https://www.cnblogs.com/xueweisuoyong/p/11914045.html

          配置

          首先需要設(shè)置使用Git時候的名字和郵箱,名字需要使用英文

          git config --global user.name "Firstname Lastname"  # 名稱
          git config --global user.email "[email protected]"  # 郵箱

          #
           ~/.gitconfig中以如下形式輸出文件
          [user]

          name = Firstname Lastname
          email = [email protected]

          需要注意的是:

          1. GitHub上公開倉庫的時候,名字和郵箱會一同被公開,所以請不要使用不便公開的隱私信息

          2. 程序員來自世界各地,請使用英文,不要使用漢字;如果不想使用真名,可以使用網(wǎng)站的昵稱

          如何提高命令輸出的可讀性

           git config --global color.ui auto   # 將color.ui 設(shè)置成auto

          創(chuàng)建賬戶

          進入創(chuàng)建用戶的頁面:http://github.com/join,填寫如下的信息在點擊Create an accout即可

          配置SSH

          GitHub上連接現(xiàn)有倉庫的認證,是通過使用了SSH的公開密鑰認證方式進行的。現(xiàn)在我們需要創(chuàng)建公開密鑰所需的SSH Key,并將其添加到GitHub。

          ssh-keygen -t rsa -C   # 創(chuàng)建SSH Key

          接下來需要輸入兩次密碼,最終會生成兩個文件:

          • id_rsa:私有密鑰

          • id_rsa.pub:公開密鑰

          下面我們需要在GitHub中添加公開密鑰,今后就可以使用私有密鑰進行認證。點擊右上角的賬戶設(shè)定按鈕:

          進入settings之后,添加新的SSH Key

          接下來會出現(xiàn)Title和Key兩個輸入框,在Title中輸入適當?shù)拿荑€名稱,Key部分復制上面id_rsa.pub文件中的內(nèi)容

          cat ~/.ssh/id_rsa.pub   # 查看內(nèi)容

          添加完成之后,會在我們的郵箱中收到一封提示“公開密鑰添加完成”的郵件,確認即可。這樣便完成了整個手中的私人密鑰和GitHub的認證和通信問題,驗證一下:

          ssh -T [email protected]  

          在接下來的頁面中輸入密碼和yes即可完成驗證。

          建立倉庫

          首先我們必須明白一點:倉庫有兩種

          • 遠程在GitHub上的倉庫:遠程倉庫

          • 在自己本地的倉庫:本地倉庫

          本文是以MacOS系統(tǒng)為例,基于Linux;如果是想學習Windows下的倉庫創(chuàng)建,請參考下文,講解的很詳細:

          Git使用(10分鐘入門):

          https://www.jianshu.com/p/09f243768cf6

          遠程倉庫

          1、建立遠程倉庫需要我們先登陸自己的GitHub賬號,再進行建倉。

          2、我們創(chuàng)建一個git_start的倉庫

          • 倉庫的名字

          • 倉庫的簡單描述

          • 不要在遠程倉庫添加README.md文件。我們使用手動push的方式來添加

          3、倉庫解釋

          打開上面我們創(chuàng)建好的倉庫,會出現(xiàn)如下的內(nèi)容(先寫上注釋,后面慢慢解釋)

          echo "# git_start" >> README.md    # 往README.md中寫入內(nèi)容
          git init  # 初始化
          git add README.md   # 添加文件
          git commit -m "first commit"   # 提交并注釋
          git branch -M main  # 提交分支
          git remote add origin [email protected]:pidada/git_start.git   # 建立遠程倉庫與本地倉庫的連接
          git push -u origin main  # 推送

          本地倉庫

          1、建立本地倉庫

          所謂的本地倉庫,就是你自己電腦客戶端的倉庫。同樣地,筆者在本地建立了同樣名字的本地倉庫git_start,其實就是個文件夾

          本地倉庫要和遠程倉庫保持一致

          mkdir git_start  # 創(chuàng)建文件夾,即倉庫
          cd git_start  # 切換到倉庫中
          ls  # 查看內(nèi)容,目前是沒有任何內(nèi)容

          2、初始化操作

          echo "學習GitHub的使用,快速入門" >> README.md   # 往文件中寫入內(nèi)容,后面可以更改
          git init   # 初始化

          初始化之后會在當前目錄下自動生成一個.git的文件。這個文件下存儲著管理當前目錄內(nèi)容所需要的倉庫數(shù)據(jù)

          3、查看待提交文檔

          通過ls查看已經(jīng)有了README.md文檔

          git status  # 查看待提交的文檔

          4、提交文檔

          我們將上面的README.md文檔和生成的.git文檔一并提交

          git add .  # 提交全部文件
          git add README.md  # 單獨提交一個文件
          git commmit -m "2021-1-1"  # commit提交,同時寫上備注:2021-1-1

          #
           add 和 commit的同步操作
          git commit -am "2021-1-1"

          注意:執(zhí)行了add操作,文件還沒有被上傳到Git遠程倉庫中,只是提交到了緩存區(qū)域

          git commit -m "2021-1-1"才是真正地提交內(nèi)容,同時寫上備注:將文件從緩存區(qū)提交到遠程

          5、建立遠程倉庫連接并推送

          git remote add origin [email protected]:peter/git_start.git  # 建立連接
          git push -u origin master  # 推送到master分支

          6、檢查

          此時我們刷新遠程倉庫的頁面,會發(fā)現(xiàn)頁面更新了,也有了內(nèi)容:

          7、查看提交日志

          git log  # 查看提交日志
          git log --pretty=short  # 只顯示一行簡述信息
          git log README.md  # 只顯示指定目錄、文件的日志
          git log -p README.md  # 只顯示指定目錄、文件的日志修改前后的改動


          commit欄旁邊顯示的是指向這個提交的哈希值。Git的其他命令中,在指向提交時會用到這個哈希值


          Author欄旁邊是Git設(shè)置的用戶名和郵箱地址


          Date欄顯示的是執(zhí)行日期和時間


          最下面是提交信息,-m 參數(shù)后面的信息


          8、修改README.md文件

          通過vim編輯器修改內(nèi)容如下:

          上面使用了Markdown語法,然后我們重新按照上面的命令執(zhí)行一遍:

          git status  # 狀態(tài)是紅色
          git add .  # 提交到緩存區(qū)
          git commit -m "修改README.md"  # 記錄提交信息
          # git remote add origin [email protected]:peter/git_start.git  # 已經(jīng)建立了連接,所以不必在執(zhí)行此命令
          git push -u origin master # 推到master分支

          回顧下整個操作的過程:

          1. 建立遠程倉庫

          2. 建立本地倉庫

          3. 初始化本地倉庫

          4. 文檔提交到緩存區(qū)

          5. 緩存區(qū)推送到遠程倉庫

          重要命令

          我們總結(jié)一下上面操作中幾個重要的命令:

          1、git status

          查看倉庫中文件的狀態(tài)。如果有新的文件或者原來的文件有修改過,會出現(xiàn)紅色

          2、git add

          向緩存區(qū)中添加內(nèi)容,緩存區(qū)是提交之前的一個臨時區(qū)域(Stage或者Index)

          3、git commit  [-m]

          將暫存區(qū)中的文件保存?zhèn)}庫的歷史記錄中;-m參數(shù)后面跟上提交信息:git commit -m "第一次提交"

          4、git log

          查看以往提交日志信息:什么人在什么時候進行了提交或者合并等,以及操作前后有怎樣的差別

          git log  # 查看日志
          git log --pretty=short  # 只顯示提交信息的第一行
          git log README.md  # 查看某個文件的提交信息
          git log -p README.md  #  -p參數(shù)只查看提交的改動部分

          5、git diff

          查看工作樹、暫存區(qū)、最新提交之間的差別。

          git diff  # 查看當前工作樹和暫存區(qū)的差別
          git diff HEAD  # 查看本次提交和上次提交的差別;HEAD指向當前分支中的最新一次提交的指針

          養(yǎng)成習慣:git commit之前先執(zhí)行g(shù)it diff HEAD命令來查看本次提交與上次提交之間的差別;HEAD指向當前分支中最新的一次提交的指針。

          6、倉庫操作

          -u作用:將來運行g(shù)it pull命令從遠程倉庫獲取內(nèi)容時,本地倉庫就可以直接從origin的master分支中獲取內(nèi)容,不需要添加其他的參數(shù)

          git remote add origin [email protected]:github/peter/git_start.git  # 添加遠程倉庫
          git push # 推送到遠程倉庫
          git push -u origin master  # 推送到master分支下
          git push -u origin feature_A  # 推送到分支A

          git clone  倉庫地址  # 將某個遠程倉庫的內(nèi)容復制到本地
          git push  # 推送
          git pull  # 獲取最新的遠程分支內(nèi)容

          分支

          master分支

          master分支是Git默認創(chuàng)建的分支,其他所有的分支都是在這個分支的基礎(chǔ)上進行的。

          • 不同的分支單獨進行各自的作業(yè)

          • 該分支的作業(yè)完成之后再和master分支合并

          進行完作業(yè)之后的合并操作:

          分支相關(guān)命令

          1、git branch-顯示分支

          顯示分支一覽表:將分支名列表顯示出來,同時確認當前所在的分支;標有星號*表示當前分支

          git branch -a  # 查看當前分支的相關(guān)信息

          2、git branch feature-創(chuàng)建分支

          git branch feature

          3、git checkout feature-切換分支

          git checkout feature
          git checkout master  # 切換到master分支
          git checkout -  # 切換到上一個分支

          上面兩個命令的合并,創(chuàng)建新的分支并切換到新的分支:

          git checkout -b feature  # 切換到創(chuàng)建的新分支

          4、git merge-合并分支

          假設(shè)某個分支已經(jīng)完成了作業(yè)需要和主分支master合并,使用如下語句:

          git checkout master  # 切到主分支
          git merge --no-off feature-A  # 合并分支

          5、git log —graph-圖的形式查看分支

          通過圖表的形式查看提交的內(nèi)容

          git log --graph  

          版本回溯

          既然是版本控制系統(tǒng),那么對于不同版本的管理肯定是至關(guān)重要的。GitHub的另一個特征便是可以靈活地操作不同的歷史版本。借助分散倉庫的優(yōu)勢,可以在不影響其他倉庫的前提下對歷史版本進行操作。

          1、回溯到指定狀態(tài)

          哈希值只要輸入4位以上就可以執(zhí)行了

          git reset --hard [哈希值]  # 添加指定的哈希值,代表某個時間點的狀態(tài)

          2、查看當前倉庫的全部執(zhí)行過的操作日志

          記錄我們操作的每次命令

          git reflog   # 針對當前倉庫
          git log   # 查看以當前狀態(tài)為終點的歷史日志

          所以我們可以先通過git reflog來查看哈希值,再通過git reset —hard [哈希值]回到某個狀態(tài)

          3、修改上一條提交信息

          使用git commit --amend命令

          git commit --amend

          4、壓縮歷史

          在合并特性分支之前,如果發(fā)現(xiàn)已經(jīng)提交的內(nèi)容中有拼寫等錯誤,可以先提交一個修改,然后將這個修改包含到前一個提交之中,壓縮成一個歷史記錄

          git rebase -i
          git rebase -i HEAD~2  # 當前分支下的兩個最新歷史記錄進行壓縮

          5、添加提交一次完成

          git commit -am "add和commit同時完成"

          git reset詳解

          命令

          對版本回溯命令的詳解。git reset 命令用于回退版本,可以指定回退到某個具體的歷史版本。

          git reset 命令語法格式具體如下:

          git reset [--soft | --mixed | --hard] [HEAD]

          --mixed默認參數(shù),可以不帶,用于重置暫存區(qū)的文件與上一次的提交(commit)保持一致,工作區(qū)文件內(nèi)容保持不變

          soft

          --soft參數(shù)用于回退到某個版本

          git reset --soft HEAD  #  回退到上個版本
          git reset --soft HEAD~3  # 回退到上上上個版本

          hard??

          !!!??謹慎使用--hard 參數(shù),它會刪除回退點之前的所有信息

          git reset --hard HEAD~3   # 回退到上上上個版本
          git reset --hard 1de43  # 回退到指定版本
          git reset --hard origin/master  # 本地狀態(tài)回退到和遠程相同

          HEAD

          git reset HEAD^   # 回退到所有內(nèi)容的上一個版本
          git reset HEAD^ Git入門.md  # 回退到Git入門.md文件的版本的上一個版本(指定版本的上個版本)
          git reset 01b42  # 回退到指定版本,需要至少哈希值的前4位;可以通過git reflog命令先查看我們要回退的版本號的哈希值

          git reset HEAD還能取消已緩存的內(nèi)容。當我們對某個文件的內(nèi)容進行了修改并且已經(jīng)執(zhí)行git add之后,我們想取消緩存區(qū)的內(nèi)容,使用如下命令:

          git reset HEAD [filename]

          關(guān)于HEAD 說明

          • HEAD 表示當前版本

          • HEAD^ 上一個版本

          • HEAD^^ 上上一個版本

          • HEAD^^^ 上上上一個版本

          • 以此類推…

          可以使用 ~數(shù)字表示

          • HEAD~0 表示當前版本

          • HEAD~1 上一個版本

          • HEAD^2 上上一個版本

          • HEAD^3 上上上一個版本

          • 以此類推…

          總結(jié)

          • HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id

          • 穿梭前,用git log可以查看提交歷史,以便確定要回退到哪個版本。

          • 要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本。


          往期精彩回顧





          本站qq群851320808,加入微信群請掃碼:

          瀏覽 80
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色妹子综合 | 我要日逼网 | 影音先锋亚洲一区 | 国产精品久久久久久久毛片明星 | 色黄网站在线播放 |