在 Pycharm 中玩轉 GitHub(圖文詳解)


在這裏插入圖片描述

一、Git 的誕生

在1991年,大佬 Linus 構建了開源操作系統,並命名爲 Linux,隨後帶領全世界計算機愛好者逐漸完善系統 。這個系統可能有人陌生,有人熟系。Linux 幾乎滲透到我們生活的方方面面,比如是大部分網站應用數據與服務的載體。包括手機的 Android 系統,車載系統,智能終端等等也是基於Linux內核完成。

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

這時候,就需要一款工具可以將不同人,不同來源的代碼整合到軟件的主代碼中。而且可以對源代碼修改,刪除等等改動一一記錄,方便後續的調試和整合。這樣做既可以提高工作效率,方便調試,同時也避免了人爲錯誤導致軟件的不穩定。總之,這款工具的使用對 Linux 的發展必不可少。

及時雨來自商業版本控制系統 BitKeeper,它向 Linus拋出了橄欖枝,允許 Linux 開發社區免費使用。但是,問題在於社區裏都是計算機技術狂熱者,這相當於給了餓了幾天的人一個包子,說你不能喫肉餡,只能喫皮。於是,有人對這個控制系統產生了想法,Samba(Linux的文件共享和打印機通信協議)的開發者 Andrew 開始嘗試破解 BitKeeper,嚐嚐肉餡是什麼味。好景不長,BitKeeper 的開發公司 BitMover 發現了社區有人在破解他們的軟件,而且還不止 Andrew 一人,於是公司看透了這羣"綠林好漢",在2005年 BitKeeper 收回了 Linux 社區的免費使用權。

沒有了免費的版本控制系統,日子還得過,Linux 的代碼量還在與日俱增,Linux 社區要給商業軟件低頭了嗎?

mark

事實是,並沒有。

2005 年,Linus 爲了解決這一問題,他自己花了兩週時間開發了一個分佈式版本控制系統 Git,你沒有看錯是兩週時間,大佬的世界我不懂。

一個月後,Git 完成 Linux 系統源碼接管任務,隨後 Git 迅速在開源社區間流行。

二、GitHub 的出生

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

2008年, GitHub 應運而生,它爲每個人提供了遠程倉庫,並且提供了相應的社區化服務。

GitHub的上線爲開源項目提供了立足之地,我們熟系的 JQuery,PHP 等開源項目開始從獨立的社區遷移到 GitHub。而正如 Apache 開源基金會所提倡的先社區而後代碼,一個強有力的社區能使一款有潛力的軟件持續的向好發展。

其實,我們現在看生信文獻的時候,只有涉及到生信軟件發佈,數據流程處理,在線軟件等等與編程相關的上線項目都會首先發布在GitHub,並提供 GitHub 克隆地址。

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

2019年,GitHub 宣佈開發者可以免費最多四人協作的私人倉庫。這一權限的開放,使得我們大部分的實驗人員都可以更好的加入 GitHub 社區,完成多人協作任務。

歷史的拐點就是這麼神奇,如果沒有 Andrew 的破解,BitKeeper的憤怒,Linus 也不會創造出 Git,也更不會有現在免費的 GitHub。

mark

三、GitHub和Git 對我們來說有什麼用?

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

  • 版本管理:通過使用快照等方式,可以將你的代碼修改可以提交到 Git 庫。只要提交,全部的數據就會被記錄一個版本,而且Git很難執行不可逆操作,這就意味着只要提交,數據想丟都難。
  • 協同修改:多人並行不悖的修改服務器端的同一個文件,數據備份
  • 文件狀態:不僅保存目錄和文件的當前狀態, 還能夠保存每一個提交過的歷史狀態,很讚的功能就是,可以將歷史代碼回溯到某個時間點的狀態。
  • 權限控制:團隊中每個人對文件具有不同權限,也可以接受非團隊合併源碼
  • 分支管理:將不同來源,功能整合與主要代碼中,允許開發團隊在工作過程中多條生產線同時推進任務, 進一步提高效率
  • 分佈式:同一個Git倉庫,可以分佈到不同的機器上,這就意味着代碼可以在雲端和本地都有一套完整的倉庫,除了離線使用的便利,提高了執行速度,多個拷貝也提高了數據安全性。

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

四、安裝 Git

CentOS

sudo yum install git-all
git --version

mark

Ubuntu

sudo apt-get install git

Windows

https://git-scm.com/downloads

mark

五、本地 Git 關聯 GitHub 遠程倉庫

1.生成祕鑰

ssh-keygen -t rsa -C "[email protected]"
  • 第一步確定祕鑰生成目錄,直接回車
  • 第二三步輸入密碼
  • 祕鑰生成後,進入祕鑰目錄,比如我的爲/c/Users/baimo/.ssh/id_rsa,複製備用

mark

2.進入 GitHub https://www.github.com,打開設置
mark

3.新建一個 SSH key
mark

4.填寫 SSH key
mark

5.新建 GitHub 倉庫
mark

6.填寫信息,創建 GitHub 倉庫
mark

7.完成後你的倉庫後,類似這樣,紅框爲 git 地址
mark

8.將 GitHub 倉庫與我們本地的 Git 倉庫進行關聯

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

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

9.將本地 Git 倉庫提交到 GitHub 遠程倉庫

第一次提交:

git push -u origin master

之後提交

git push origin master

如果報錯:
mark

解決:

git push -f origin master

這是一種強制上傳方案,第一次可以使用,今後不建議使用。因爲這條命令會直接覆蓋遠程倉庫的版本信息。

六、推送本地倉庫到 GitHub

1.進入設置

mark

2.登錄 GitHub 賬號
mark

3.配置 Git
mark

4.使用
mark

5.配置
mark

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

7.上傳成功
mark

七、將 GitHub 倉庫克隆到本地

1.進入配置
mark

2.克隆項目

克隆自己的項目
mark

克隆大佬的項目
mark

完成後會有讀條
mark

2.從 Pycharm 中查看 Github
mark

3.一般的 Git 操作
mark

八、參與 GitHub 項目

1.Fork 一個項目

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

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

mark

2.進入 Pycharm 的版本控制界面
mark

3.克隆大佬項目
mark

等進度條跑完
mark

我們會得到項目的倉庫
mark

6.查看項目參與者的操作日誌
mark

7.項目參與者創建pull請求
mark

填寫pull請求
mark

項目的維護者管理pull請求
mark

查看pull請求信息
mark

Git 和 GitHub 的使用方法遠遠不止這些,更多技巧稍後更新。

白墨:搭建 Python 高效開發環境: Pycharm + Anaconda

Pycharm 中安裝及使用 Jupyter (圖文詳解)

如何在 Pycharm 中高效使用 R 語言 (圖文詳解)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章