<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>

          ?在IDE中玩轉(zhuǎn) GitHub(圖文詳解)

          共 3308字,需瀏覽 7分鐘

           ·

          2021-01-18 11:41


          目錄
          Content
          1. Git 的出生2. GitHub 的出生3. GitHub和Git 對我們來說有什么用?4. 安裝 Git5. 本地 Git 關(guān)聯(lián) GitHub 遠(yuǎn)程倉庫6. 推送本地倉庫到 GitHub7. 將 GitHub 倉庫克隆到本地8. 參與 GitHub 項目


          1
          Git 的誕生



          說到 GitHub 就不得不提 Git,它的誕生也頗具傳奇色彩。


          在1991年,大佬 Linus 構(gòu)建了開源操作系統(tǒng),并命名為 Linux,隨后帶領(lǐng)全世界計算機(jī)愛好者逐漸完善該系統(tǒng) 。相對我們熟悉的Windows系統(tǒng),這個名叫 Linux 的操作系統(tǒng)同樣滲透到我們生活的方方面面,比如是大部分網(wǎng)站應(yīng)用數(shù)據(jù)與服務(wù)的系統(tǒng)載體。包括手機(jī)的 Android 系統(tǒng),車載系統(tǒng),智能終端等等也是基于Linux內(nèi)核完成。


          Linux 在開發(fā)伊始,Linux 開源社區(qū)的人們通過將源代碼文件通過 diff 的方式發(fā)送給 Linus 大佬,然后 Linus 使用多年的功力手工將這些代碼整合到 Linus。但是,隨著社區(qū)提供的代碼越來越多,Linus 也扛不住了。


          這時候,就需要一款工具可以將不同人,不同來源的代碼整合到軟件的主代碼中。而且可以對源代碼修改,刪除等等改動一一記錄,方便后續(xù)的調(diào)試和整合。這樣做既可以提高工作效率,方便調(diào)試,同時也避免了人為錯誤導(dǎo)致軟件的不穩(wěn)定??傊?,這款工具的使用對 Linux 的發(fā)展必不可少。


          及時雨來自商業(yè)版本控制系統(tǒng) BitKeeper,它向 Linus拋出了橄欖枝,允許 Linux 開發(fā)社區(qū)免費(fèi)使用。但是,問題在于社區(qū)里都是計算機(jī)技術(shù)狂熱者,這相當(dāng)于給了餓了幾天的人一個包子,說你不能吃肉餡,只能吃皮。于是,有人對這個控制系統(tǒng)產(chǎn)生了想法,Samba(Linux的文件共享和打印機(jī)通信協(xié)議)的開發(fā)者 Andrew 開始嘗試破解 BitKeeper,嘗嘗肉餡是什么味。好景不長,BitKeeper 的開發(fā)公司 BitMover 發(fā)現(xiàn)了社區(qū)有人在破解他們的軟件,而且還不止 Andrew 一人,于是公司看透了這群"綠林好漢",在2005年 BitKeeper 收回了 Linux 社區(qū)的免費(fèi)使用權(quán)。


          沒有了免費(fèi)的版本控制系統(tǒng),日子還得過,Linux 的代碼量還在與日俱增,Linux 社區(qū)要給商業(yè)軟件低頭了嗎?



          事實(shí)是,并沒有。


          2005 年,Linus 為了解決這一問題,他自己花了兩周時間開發(fā)了一個分布式版本控制系統(tǒng) Git,你沒有看錯是兩周時間,大佬的世界我不懂。

          一個月后,Git 完成 Linux 系統(tǒng)源碼接管任務(wù),隨后 Git 迅速在開源社區(qū)間流行。


          2
          GitHub 的出生



          Git 可以在本地執(zhí)行,但是這只是你一個人在玩代碼。如果你想通過 Git 分享你的代碼或者與其他開發(fā)人員合作。你就需要將數(shù)據(jù)放到一臺其他開發(fā)人員能夠連接的服務(wù)器上。


          2008年, GitHub 應(yīng)運(yùn)而生,它為每個人提供了遠(yuǎn)程倉庫,并且提供了相應(yīng)的社區(qū)化服務(wù)。?


          GitHub的上線為開源項目提供了立足之地,我們熟系的 JQuery,PHP 等開源項目開始從獨(dú)立的社區(qū)遷移到 GitHub。而 正如 Apache 開源基金會所提倡的先社區(qū)而后代碼,一個強(qiáng)有力的社區(qū)能使一款有潛力的軟件持續(xù)的向好發(fā)展。?


          其實(shí),我們現(xiàn)在看生信文獻(xiàn)的時候,只有涉及到生信軟件發(fā)布,數(shù)據(jù)流程處理,在線軟件等等與編程相關(guān)的上線項目都會首先發(fā)布在GitHub,并提供 GitHub 克隆地址。


          2018年,微軟宣布以 75 億美元收購 GitHub。


          2019年,GitHub 宣布開發(fā)者可以免費(fèi)最多四人協(xié)作的私人倉庫。這一權(quán)限的開放,使得我們大部分的實(shí)驗人員都可以更好的加入 GitHub 社區(qū),完成多人協(xié)作任務(wù)。


          歷史的拐點(diǎn)就是這么神奇,如果沒有 Andrew 的破解,BitKeeper的憤怒,Linus 也不會創(chuàng)造出 Git,也更不會有現(xiàn)在免費(fèi)的 GitHub。



          3
          GitHub和Git 對我們來說有什么用?



          從上面的故事可以看出,Git 和 GitHub 要解決的是多人協(xié)作完成不同地點(diǎn),不同時間提交源碼并整合到最終項目的問題。總結(jié)下:

          • 版本管理:通過使用快照等方式,可以將你的代碼修改可以提交到 Git 庫。只要提交,全部的數(shù)據(jù)就會被記錄一個版本,而且Git很難執(zhí)行不可逆操作,這就意味著只要提交,數(shù)據(jù)想丟都難。

          • 協(xié)同修改:多人并行不悖的修改服務(wù)器端的同一個文件,數(shù)據(jù)備份?

          • 文件狀態(tài):不僅保存目錄和文件的當(dāng)前狀態(tài), 還能夠保存每一個提交過的歷史狀態(tài),很贊的功能就是,可以將歷史代碼回溯到某個時間點(diǎn)的狀態(tài)。

          • 權(quán)限控制:團(tuán)隊中每個人對文件具有不同權(quán)限,也可以接受非團(tuán)隊合并源碼

          • 分支管理:將不同來源,功能整合與主要代碼中,允許開發(fā)團(tuán)隊在工作過程中多條生產(chǎn)線同時推進(jìn)任務(wù), 進(jìn)一步提高效率?

          • 分布式:同一個Git倉庫,可以分布到不同的機(jī)器上,這就意味著代碼可以在云端和本地都有一套完整的倉庫,除了離線使用的便利,提高了執(zhí)行速度,多個拷貝也提高了數(shù)據(jù)安全性。


          接下來我們完成 Git,GitHub 在 Pycharm 的安裝:


          4
          安裝 Git



          CentOS

            sudo yum install git-all
          git --version

          Ubuntu

            sudo apt-get install git

          Windows

          https://git-scm.com/downloads


          5
          本地 Git 關(guān)聯(lián) GitHub 遠(yuǎn)程倉庫


          1.生成秘鑰

            ssh-keygen -t rsa -C "[email protected]"
          • 第一步確定秘鑰生成目錄,直接回車

          • 第二三步輸入密碼

          • 秘鑰生成后,進(jìn)入秘鑰目錄,比如我的為/c/Users/baimo/.ssh/id_rsa,復(fù)制備用


          2.進(jìn)入GitHub?,打開設(shè)置

          ?


          3.新建一個 SSH key?


          4.填寫 SSH key?


          5.新建 GitHub 倉庫

          ?

          6.填寫信息,創(chuàng)建 GitHub 倉庫

          ?


          7.完成后你的倉庫后,類似這樣,紅框為 git 地址?


          8.將 GitHub 倉庫與我們本地的 Git 倉庫進(jìn)行關(guān)聯(lián)

            git remote add origin https://github.com/qqdb/example01.git

          origin 后的 url 就是 GitHub 倉庫地址,在上一步中獲取


          9.將本地 Git 倉庫提交到 GitHub 遠(yuǎn)程倉庫

          第一次提交:

            git push -u origin master

          之后提交

            git push origin master

          如果報錯:?

          解決:

            git push -f origin master

          這是一種強(qiáng)制上傳方案,第一次可以使用,今后不建議使用。因為這條命令會直接覆蓋遠(yuǎn)程倉庫的版本信息。

          6
          推送本地倉庫到 GitHub


          1.進(jìn)入設(shè)置


          2.登錄 GitHub 賬號



          3.配置 Git?



          4.使?



          5.配置?


          6. 上傳,這里一般會全部上傳到GitHub,如果有大文件可以考慮取消勾選。


          7.上傳成功?

          7
          將 GitHub 倉庫克隆到本地


          1.進(jìn)入配置?


          2.克隆項目


          克隆大佬的項?


          完成后會有讀條?



          2.從 Pycharm 中查看 Github?

          ?


          3.一般的 Git 操作?


          8
          參與 GitHub 項目



          1.Fork 一個項目

          Fork是GitHub存儲庫的副本,可在不影響原始項目的情況下更改代碼。

          比如,https://github.com/scikit-learn/scikit-learn?


          2.進(jìn)入 Pycharm 的版本控制界面?



          3.克隆大佬項目?



          等進(jìn)度條跑完?



          我們會得到項目的倉庫?



          6.查看項目參與者的操作日志?



          7.項目參與者創(chuàng)建pull請求?



          填寫pull請求?



          項目的維護(hù)者管理pull請求?


          查看pull請求信息?



          Git 和 GitHub 的使用方法遠(yuǎn)遠(yuǎn)不止這些,更多技巧稍后更新。


          瀏覽 58
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  亚洲AV成人中文无码专区观看 | 色婷婷五月天亚洲中文字幕 | 伊人网站 | 免费在线观看视频无码 | 欧美久久免费 |