日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【效率】超详细!手把手带你快速入门 GitHub!

發布時間:2025/3/12 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【效率】超详细!手把手带你快速入门 GitHub! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

快速入門GitHub

GitHub在程序開發領域家喻戶曉,現在幾乎整個互聯網的開發者都將版本管理工具GitHub作為版本控制的首選,甚至像筆者這樣非開發者,一名和每天和數據打交道的人也在使用GitHub,目的主要有:

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

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

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

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

既然好處頗多,作為互聯網界的一員,沒有理由不學好GitHub????本文將詳細介紹GitHub的相關基礎操作,帶你快速入門GitHub

版本管理

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

SVN

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

Git

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

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

什么GitHub

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

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

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

安裝與配置Git

安裝

現在筆者使用的MacOS系統,是自帶Git的。關于Windows系統下安裝,請參考如下文章,講解的非常詳細。

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

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

配置

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

git?config?--global?user.name?"Firstname?Lastname"??#?名稱 git?config?--global?user.email?"your_email@example.com"??#?郵箱#?~/.gitconfig中以如下形式輸出文件 [user]name?=?Firstname?Lastname email?=?your_email@example.com

需要注意的是:

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

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

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

    ?git?config?--global?color.ui?auto???#?將color.ui?設置成auto

    創建賬戶

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

    配置SSH

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

    ssh-keygen?-t?rsa?-C???#?創建SSH?Key

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

    • id_rsa:私有密鑰

    • id_rsa.pub:公開密鑰

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

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

    接下來會出現Title和Key兩個輸入框,在Title中輸入適當的密鑰名稱,Key部分復制上面id_rsa.pub文件中的內容

    cat?~/.ssh/id_rsa.pub???#?查看內容

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

    ssh?-T?git@github.com??

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

    建立倉庫

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

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

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

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

    Git使用(10分鐘入門):

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

    遠程倉庫

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

    2、我們創建一個git_start的倉庫

    • 倉庫的名字

    • 倉庫的簡單描述

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

    3、倉庫解釋

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

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

    本地倉庫

    1、建立本地倉庫

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

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

    mkdir?git_start??#?創建文件夾,即倉庫 cd?git_start??#?切換到倉庫中 ls??#?查看內容,目前是沒有任何內容

    2、初始化操作

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

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

    3、查看待提交文檔

    通過ls查看已經有了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"

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

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

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

    git?remote?add?origin?git@github.com:peter/git_start.git??#?建立連接 git?push?-u?origin?master??#?推送到master分支

    6、檢查

    此時我們刷新遠程倉庫的頁面,會發現頁面更新了,也有了內容:

    7、查看提交日志

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

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

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

    Date欄顯示的是執行日期和時間

    最下面是提交信息,-m 參數后面的信息

    8、修改README.md文件

    通過vim編輯器修改內容如下:

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

    git?status??#?狀態是紅色 git?add?.??#?提交到緩存區 git?commit?-m?"修改README.md"??#?記錄提交信息 #?git?remote?add?origin?git@github.com:peter/git_start.git??#?已經建立了連接,所以不必在執行此命令 git?push?-u?origin?master?#?推到master分支

    回顧下整個操作的過程:

  • 建立遠程倉庫

  • 建立本地倉庫

  • 初始化本地倉庫

  • 文檔提交到緩存區

  • 緩存區推送到遠程倉庫

  • 重要命令

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

    1、git status

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

    2、git add

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

    3、git commit ?[-m]

    將暫存區中的文件保存倉庫的歷史記錄中;-m參數后面跟上提交信息:git commit -m "第一次提交"

    4、git log

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

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

    5、git diff

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

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

    養成習慣:git commit之前先執行git diff HEAD命令來查看本次提交與上次提交之間的差別;HEAD指向當前分支中最新的一次提交的指針。

    6、倉庫操作

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

    git?remote?add?origin?git@github.com:github/peter/git_start.git??#?添加遠程倉庫 git?push?#?推送到遠程倉庫 git?push?-u?origin?master??#?推送到master分支下 git?push?-u?origin?feature_A??#?推送到分支Agit?clone??倉庫地址??#?將某個遠程倉庫的內容復制到本地 git?push??#?推送 git?pull??#?獲取最新的遠程分支內容

    分支

    master分支

    master分支是Git默認創建的分支,其他所有的分支都是在這個分支的基礎上進行的。

    • 不同的分支單獨進行各自的作業

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

    進行完作業之后的合并操作:

    分支相關命令

    1、git branch-顯示分支

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

    git?branch?-a??#?查看當前分支的相關信息

    2、git branch feature-創建分支

    git?branch?feature

    3、git checkout feature-切換分支

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

    上面兩個命令的合并,創建新的分支并切換到新的分支:

    git?checkout?-b?feature??#?切換到創建的新分支

    4、git merge-合并分支

    假設某個分支已經完成了作業需要和主分支master合并,使用如下語句:

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

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

    通過圖表的形式查看提交的內容

    git?log?--graph??

    版本回溯

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

    1、回溯到指定狀態

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

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

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

    記錄我們操作的每次命令

    git?reflog???#?針對當前倉庫 git log ??#?查看以當前狀態為終點的歷史日志

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

    3、修改上一條提交信息

    使用git commit --amend命令

    git?commit?--amend

    4、壓縮歷史

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

    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是默認參數,可以不帶,用于重置暫存區的文件與上一次的提交(commit)保持一致,工作區文件內容保持不變

    soft

    --soft參數用于回退到某個版本

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

    hard??

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

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

    HEAD

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

    git reset HEAD還能取消已緩存的內容。當我們對某個文件的內容進行了修改并且已經執行git add之后,我們想取消緩存區的內容,使用如下命令:

    git?reset?HEAD?[filename]

    關于HEAD 說明

    • HEAD 表示當前版本

    • HEAD^ 上一個版本

    • HEAD^^ 上上一個版本

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

    • 以此類推…

    可以使用 ~數字表示

    • HEAD~0 表示當前版本

    • HEAD~1 上一個版本

    • HEAD^2 上上一個版本

    • HEAD^3 上上上一個版本

    • 以此類推…

    總結

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

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

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

    往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯 本站qq群851320808,加入微信群請掃碼:

    總結

    以上是生活随笔為你收集整理的【效率】超详细!手把手带你快速入门 GitHub!的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。