<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

          共 4629字,需瀏覽 10分鐘

           ·

          2021-03-01 15:41

          往期熱門文章:

          1、往期精選優(yōu)秀博文都在這里了!

          2、Netflix創(chuàng)始人:我不要求996,一樣市值1萬億!

          3、2021年 我辭職了!

          3、17 張程序員專屬壁紙,太太太太太太騷了…

          4、剛剛,騰訊每人發(fā)100股:市值7萬,不算年終獎(jiǎng)!員工:愿為小馬哥拼命

          5、在 IDEA 中用了熱部署神器 JRebel 之后,開發(fā)效率提升10倍!

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

          在1991年,大佬 Linus 構(gòu)建了開源操作系統(tǒng),并命名為 Linux,隨后帶領(lǐng)全世界計(jì)算機(jī)愛好者逐漸完善該系統(tǒng) 。

          相對我們熟悉的Windows系統(tǒng),這個(gè)名叫 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 也頂不住了。

          這時(shí)候,就需要一款工具可以將不同人,不同來源的代碼整合到軟件的主代碼中。而且可以對源代碼修改,刪除等等改動(dòng)一一記錄,方便后續(xù)的調(diào)試和整合。

          這樣做既可以提高工作效率,方便調(diào)試,同時(shí)也避免了人為錯(cuò)誤導(dǎo)致軟件的不穩(wěn)定??傊?,這款工具的使用對 Linux 的發(fā)展必不可少。

          及時(shí)雨來自商業(yè)版本控制系統(tǒng) BitKeeper,它向 Linus 拋出了橄欖枝,允許 Linux 開發(fā)社區(qū)免費(fèi)使用。但是,問題在于社區(qū)里都是計(jì)算機(jī)技術(shù)狂熱者,這相當(dāng)于給了餓了幾天的人一個(gè)包子,說你不能吃肉餡,只能吃皮。

          于是,有人對這個(gè)控制系統(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 為了解決這一問題,他自己花了兩周時(shí)間開發(fā)了一個(gè)分布式版本控制系統(tǒng) Git,你沒有看錯(cuò)是兩周時(shí)間,大佬的世界我不懂。

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

          01

          GitHub 的出生
          Git 可以在本地執(zhí)行,但是這只是你一個(gè)人在玩代碼。如果你想通過 Git 分享你的代碼或者與其他開發(fā)人員合作。你就需要將數(shù)據(jù)放到一臺(tái)其他開發(fā)人員能夠連接的服務(wù)器上。
          2008年, GitHub 應(yīng)運(yùn)而生,它為每個(gè)人提供了遠(yuǎn)程倉庫,并且提供了相應(yīng)的社區(qū)化服務(wù)。 
          GitHub的上線為開源項(xiàng)目提供了立足之地,我們熟系的 JQuery,PHP 等開源項(xiàng)目開始從獨(dú)立的社區(qū)遷移到 GitHub。而正如 Apache 開源基金會(huì)所提倡的先社區(qū)而后代碼,一個(gè)強(qiáng)有力的社區(qū)能使一款有潛力的軟件持續(xù)的向好發(fā)展。 
          其實(shí),我們現(xiàn)在看生信文獻(xiàn)的時(shí)候,只有涉及到生信軟件發(fā)布,數(shù)據(jù)流程處理,在線軟件等等與編程相關(guān)的上線項(xiàng)目都會(huì)首先發(fā)布在GitHub,并提供 GitHub 克隆地址。
          2018年,微軟宣布以 75 億美元收購 GitHub。
          2019年,GitHub 宣布開發(fā)者可以免費(fèi)最多四人協(xié)作的私人倉庫。這一權(quán)限的開放,使得我們大部分的實(shí)驗(yàn)人員都可以更好的加入 GitHub 社區(qū),完成多人協(xié)作任務(wù)。
          歷史的拐點(diǎn)就是這么神奇,如果沒有 Andrew 的破解,BitKeeper的憤怒,Linus 也不會(huì)創(chuàng)造出 Git,也更不會(huì)有現(xiàn)在免費(fèi)的 GitHub。
          02
          GitHub 和 Git 對我們來說有什么用?
          從上面的故事可以看出,Git 和 GitHub 要解決的是多人協(xié)作完成不同地點(diǎn),不同時(shí)間提交源碼并整合到最終項(xiàng)目的問題??偨Y(jié)下:
          版本管理:通過使用快照等方式,可以將你的代碼修改可以提交到 Git 庫。只要提交,全部的數(shù)據(jù)就會(huì)被記錄一個(gè)版本,而且Git很難執(zhí)行不可逆操作,這就意味著只要提交,數(shù)據(jù)想丟都難。
          協(xié)同修改:多人并行不悖的修改服務(wù)器端的同一個(gè)文件,數(shù)據(jù)備份。
          文件狀態(tài):不僅保存目錄和文件的當(dāng)前狀態(tài), 還能夠保存每一個(gè)提交過的歷史狀態(tài),很贊的功能就是,可以將歷史代碼回溯到某個(gè)時(shí)間點(diǎn)的狀態(tài)。
          權(quán)限控制:團(tuán)隊(duì)中每個(gè)人對文件具有不同權(quán)限,也可以接受非團(tuán)隊(duì)合并源碼。
          分支管理:將不同來源,功能整合與主要代碼中,允許開發(fā)團(tuán)隊(duì)在工作過程中多條生產(chǎn)線同時(shí)推進(jìn)任務(wù), 進(jìn)一步提高效率。
          分布式:同一個(gè) Git 倉庫,可以分布到不同的機(jī)器上,這就意味著代碼可以在云端和本地都有一套完整的倉庫,除了離線使用的便利,提高了執(zhí)行速度,多個(gè)拷貝也提高了數(shù)據(jù)安全性。
          剛剛介紹了 GitHub 和 Git 的誕生歷史,接下來是有用的小技巧。我們平常 coding 都是在 IDE 中,比如 Intellij IDEA、Pycharm,如何如果能把 Git 和 GitHub 植入到 IDE 中,很多事會(huì)方便很多。接下來我們完成 Git,GitHub 在 IDE 中的安裝,以 Pycharm 為例, IDEA 也是 Jetbrain 旗下產(chǎn)品,配置方式也大同小異。:
          03
          安裝 Git
          CentOS
          sudo yum install git-all
          git --version
          Ubuntu
          sudo apt-get install git
          Windows
          下載地址:https://git-scm.com/downloads

          04
          本地 Git 關(guān)聯(lián) GitHub 遠(yuǎn)程倉庫
          如果你先安裝了Git環(huán)境,請啪啪啪搞出下面這個(gè)命令就差不多了。
          1. 配置用戶名

          git config --global user.name "guangguang"
          1. 配置郵箱

          git config --global user.email "[email protected]"
          1. 其他配置

          git config --global merge.tool "kdiff3"

          git config --global core.autocrlf false // Git不用管換行符的事情
          1. 編碼配置

          git config --global gui.encoding utf-8 //gui中的中文亂碼

          git config --global core.quotePath off //避免status顯示中文亂碼
          1. Windows上還需要配置

          git config --global core.ignorecase false
          1. Git SSH key

          • Git Bash鍵入如下的命令

          ssh-keygen -t rsa -C "1027700603@qq.com"
          • 然后一路回車, 不要輸入人么密碼,就會(huì)生產(chǎn) ssh key pair

          • 鍵入以下命令,~/ 指的是用戶目錄下

          ssh-add ~/.ssh/id_rsa

          // 如果執(zhí)行ssh-add時(shí)出現(xiàn)Could not open a connection to your authentication agent執(zhí)行ssh-add ~/.ssh/id_rsa報(bào)標(biāo)題之前像執(zhí)行 eval `ssh-agent` (~鍵上的`),再執(zhí)行ssh-add ~/.ssh/id_rsa成功ssh-add -l就有新加的rsa

          cat ~/.ssh/id_rsa.pub
          • 把生產(chǎn)的文明編碼進(jìn)行復(fù)制,需要放到自己的 GitHub 中的 SSH 中


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

          3.新建一個(gè) SSH key 

          4. 填寫 SSH key 

          5. 新建 GitHub 倉庫
           
          6. 填寫信息,創(chuàng)建 GitHub 倉庫
          7. 完成后你的倉庫后,類似這樣,紅框?yàn)?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
          如果報(bào)錯(cuò):
           
          解決:
          git push -f origin master
          這是一種強(qiáng)制上傳方案,第一次可以使用,今后不建議使用。因?yàn)檫@條命令會(huì)直接覆蓋遠(yuǎn)程倉庫的版本信息。
          05
          推送本地倉庫到 GitHub
          1. 進(jìn)入設(shè)置

          2. 登錄 GitHub 賬號

          3. 配置 Git 

          4. 使用 

          5. 配置 

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

          06
          將 GitHub 倉庫克隆到本地
          1. 進(jìn)入配置 

          2.克隆項(xiàng)目。
          克隆大佬的項(xiàng)目 

          完成后會(huì)有讀條 

          3. 從 Pycharm 中查看 Github 
           

          4.一般的 Git 操作 

          07
          參與 GitHub 項(xiàng)目
          1. Fork 一個(gè)項(xiàng)目
          Fork 是 GitHub 存儲(chǔ)庫的副本,可在不影響原始項(xiàng)目的情況下更改代碼。
          比如,https://github.com/scikit-learn/scikit-learn 
          2. 進(jìn)入 Pycharm 的版本控制界面 

          3. 克隆大佬項(xiàng)目 
          等進(jìn)度條跑完 

          我們會(huì)得到項(xiàng)目的倉庫 

          4.查看項(xiàng)目參與者的操作日志 

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


          填寫pull請求 

          項(xiàng)目的維護(hù)者管理 pull 請求 
          查看pull請求信息 

          本文來源:
          [1] 整理補(bǔ)充:逛逛GitHub (公眾號@ggGitHub)
          [2] www.jinshuin.proginn.com/p/763bfbd378e2

          往期熱門文章:

          1、歷史文章分類導(dǎo)讀列表!精選優(yōu)秀博文都在這里了!》

          2、Typora + GitHub = 效率
          3、女朋友為我寫了一個(gè)防猝死插件
          4、請謹(jǐn)慎使用Arrays.asList、ArrayList的subList
          5、全球頂級的14位程序員!膜拜!

          6、萬億級數(shù)據(jù)應(yīng)該怎么遷移?

          7從應(yīng)用到底層 36張圖帶你進(jìn)入Redis世界
          8、寫代碼有這16個(gè)好習(xí)慣,可以減少80%非業(yè)務(wù)的bug
          9、順豐快遞:請簽收MySQL靈魂十連

          10、一個(gè)基于SpringBoot + MyBatis + Vue的代碼生成器

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

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  91蜜桃传媒 | 做爰 视频毛片下载蜜桃 | 国产在线日本 | 黄色电影亚洲 | 三级视频久久 |