AI <<
Previous Next >> Teams
QandA
什麼是 Git?
Git 是一套 版本控制工具,可以用來追蹤檔案的修改歷史,讓你可以回到過去的版本、比較變更、多人協同創作。
適用:純文字檔案(程式碼、筆記、Markdown、論文等)
也可以用在 binary data(圖片、影片等),但效率差、不建議
因為無法有效比較或壓縮 binary 的差異
什麼是 GitHub?
GitHub 是一個線上平台,用來儲存 Git 專案、分享程式碼、團隊協同創作。
適用:開發專案、筆記、個人網站、報告等
支援 Git 的功能(如歷史紀錄、分支、協作)
支援上傳 binary,但有大小限制(單檔 100MB、整體推薦 <1GB)
大型檔案可搭配 Git LFS(進階用法)
什麼是 Gist?
Gist 是 GitHub 的一個功能,用來快速分享小段程式碼或純文字內容(像筆記、代碼片段)。
適用:分享小段 code、設定檔、筆記、Markdown
不支援上傳 binary 檔案
本質上仍是用 Git 管理的
如何透過 git 使用 Gist?
僅讀取 gist 檔案資料,並無權限維護:
git clone https://gist.github.com/mdecycu/71ff1c69dd233e6a5a83dd60997950de ex
以上指令表示要將位於 mdecycu 帳號下 Gist ID 為 71ff1c69dd233e6a5a83dd60997950de 的倉儲內容取下,且放入 ex 目錄中。
假如具備維護 gist 檔案資料的權限,則可以利用 Putty 中的 puttygen.exe 建立 OpenSSH 格式的 public key,並將其放入 Github 帳號下 Settings - SSH and GPG keys 中的 new SSH keys 欄位中,然後將格式為 Putty private key (ppk) 的私鑰存放在個人電腦或隨身碟中。然後利用 putty.exe 建立一個能以 Connection - Data - Auto-login Username 為 git,且 Host Name 為 gist.github.com 的 Session。並將此 Session 的 Connection - SSH - Auth - Credential 私鑰欄位填上 private key .ppk 的位置,即可完成此專用於連線到 Gist 的 Session 設定。假設此 Gist Session 名稱設為 "gist"。
則可用於後續維護 Gist 檔案內容的 git clone 指令為 (以下的 gist 代表 Putty 中所設定專用於 Gist 的 Session 名稱):
git clone git@gist:71ff1c69dd233e6a5a83dd60997950de.git ex2
一旦 ex2 目錄中各檔案維護告一段落後,可以進入 ex2 目錄,利用 git add .,git commit -m "提交訊息" 與 git push 將修改後的近端內容新增提交推送至 Gist 伺服器。
若希望直接在近端取得目前最新版本的檔案版本號,可以在 ex2 目錄中利用 git log -1 查詢最後一次提交的版本號,然後以下列 URL 取得 Gist 中 brython_robot.py 檔案的最新內容:
https://gist.githubusercontent.com/mdecycu/71ff1c69dd233e6a5a83dd60997950de/raw/27541a79c916e42c1f32509aa3a1c6e086923d47/brython_robot.py
其中 71ff1c69dd233e6a5a83dd60997950de 為 Gist ID,而 27541a79c916e42c1f32509aa3a1c6e086923d47 就是透過 git log -1 取得的最新版本號。
另外,若已經利用 Github 帳號下的 Settings - Developer Settings - Tokens (classic) 建立可以 Create gists 的 token,可以利用 PyGithub 模組,利用 generate_gist.py 建立 Gist 倉儲,待取得所建立 Gist 的 ID 之後,就可以將此 Gist clone 至近端維護後,再提交推送回對應帳號下的 Gist 倉儲。
AI <<
Previous Next >> Teams