The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

使用 ChatGPT 學習 Git 版本控管

我最近又有一場企業內訓是關於 Git 教育訓練,大家應該都知道 Git 是一個非常知名的版本控制系統,它可以追蹤文件的更改、協調多人協作、還原過去的版本等等。學習 Git 可以幫助你更好地管理你的程式碼,並提高團隊協作的效率。雖然說 Git 是軟體開發行業中不可或缺的技能,但市場上永遠都有新進者,他們想學習 Git,但不知道從何入手。今天這篇文章我打算提供一系列學習 Git 版本控管的提示詞 (Prompt),幫助 Git 新手藉助 ChatGPT 快速瞭解 Git 版本控管。

images

安裝 ChatGPT 萬能工具箱

由於本文會使用到大量的 Prompt 幫助你向 ChatGPT 提問,為了減少大家經常性的複製貼上 Prompt 到 ChatGPT,建議大家安裝我前陣子製作的 ChatGPT 萬能工具箱 擴充套件 (Chrome/Edge)。

ChatGPT 萬能工具箱

詳細介紹請參見 介紹好用工具:ChatGPT 萬能工具箱 (Chrome/Edge 擴充套件)

安裝好之後,點擊本文的提問連結,就會自動開啟 ChatGPT 並輸入 Prompt 後送出,只要點擊一次就可以直接取得 ChatGPT 的回應訊息!

我的提示詞範本 (Prompt Template)

以下是我個人在 ChatGPT 設定的 Custom instructions (自訂指令) 加以微調過的版本,我也拿了這組提示詞來提問 Git 相關問題:

As a default, provide responses in 正體中文 unless specified otherwise.

- Be concise
- Be casual unless otherwise specified
- Suggest solutions that I didn't think about — anticipate my needs
- Be accurate and thorough
- Give the answer immediately. Provide detailed explanations and restate my query in your own words if necessary after giving the answer
- Value good arguments over authorities, the source is irrelevant
- You may use high levels of speculation or prediction, just flag it for me
- No moral lectures
- Discuss safety only when it's crucial and non-obvious
- If your content policy is an issue, provide the closest acceptable response and explain the content policy issue afterward
- Cite sources whenever possible at the end, not inline
- No need to mention your knowledge cutoff
- No need to disclose you're an AI

If I ask for adjustments to code I have provided you, do not repeat all of my code unnecessarily. Instead try to keep the answer brief by giving just a couple lines before/after any changes you make. Multiple code blocks are ok.

I want you to act as a Git expert and consultant. I will provide you a series question about Git version control system.

My question is:

學習 Git 版本控管

我整理出一些 Git 初學者有可能會想知道的主題,當你在閱讀 ChatGPT 回應時,如果有任何不理解的名詞或觀念,其實都可以接續著提問,問到你都沒有疑惑為止。

另外,你在 ChatGPT 送出提示後,原本的提問內容是可以編輯的,你在編輯後重新送出,可能會得到稍微不一樣的回答,通常回答的品質會比第一次還要好,大家可以試試看。

  1. 介紹版本控制和 Git 的基本概念

    為什麼程式碼要做版本控管?

    什麼是 Git?

    請詳述 Git 與其它版本控制系統的差異?

    請列出幾個學習 Git 時最重要的基本概念,每個概念請都詳細介紹

    Git 的變更追蹤是什麼意思?

  2. 安裝 Git 和設定基本設定

    如何在 Windows 作業系統安裝 Git 工具?

    如何在 macOS 作業系統安裝 Git 工具?

    第一次使用 Git 有什麼注意事項嗎?

  3. 建立第一個 Git 儲存庫

    如何在本機建立一個 Git 儲存庫?

    請問分支名稱 main 跟 master 有什麼區別嗎?

    請問 Git 有哪些常見問題?

  4. 提交和查看變更

    如何提交和查看 Git 變更?

    如何修正最近一次的 Git 提交?

    請問如何搜尋 Git 歷史提交記錄中的內容?

    請提供我 --author, --before, --after 的使用範例

    請問 Git 多久要 push 一次?還有,我為什麼要頻繁的 push 程式碼上去?

  5. 分支管理

    如何建立和切換 Git 分支?

    如何合併一個 Git 分支?

    在合併分支時有什麼重要的注意事項?

    請問如何列出目前所有的分支?

    Git 為什麼跟發行管理有關係?

    刪除 branch 之後,要怎樣知道之前的版本是哪一個?

  6. 解決合併衝突

    當 Git 合併衝突發生時,有什麼樣的標準處理流程嗎?

  7. 回退和重置

    請問 git reset 與 git revert 有什麼差別?請詳細說明。

    我意外透過 git reset 刪除的 commit 要如何救回來?

    當我 Git 的工作目錄有許多尚未提交的變更時,我要如何暫存這些變更,好讓我切換到其他分支,並且在下次重新取回變更?

  8. 日常工作流程範例

    請提供我幾個日常會發生的 Git 版本控管情境

  9. 遠端儲存庫和協作

    請問 Git 如何跟遠端儲存庫進行協作?

    請詳細介紹 git pull 與 git push 的差異與使用情境範例

    請問 Git 的 push 與 force push 有什麼差別?

  10. 分支管理進階

    Git 有哪些進階的 Git 分支用法嗎?

    如何使用 git rebase 進行分支整理?

    請問 Git 三向合併(Three-way merge)的工作原理為何?何時才會用到這個功能?

  11. 分支合併策略

    常見的 Git 分支合併策略有哪些?請詳細說明!

    請詳細解釋 GitHub Flow 工作流程的運作方式與原理

    請詳細解釋 GitLab Flow 工作流程的運作方式與原理

    請詳細解釋 Git Flow 工作流程的運作方式與原理

  12. 標籤和版本號

    請解釋標籤和版本號的關係為何?

    請詳細說明 git tag 的使用方式與應用情境?

    請解釋標籤和發佈版本有何關係?

  13. Git Hook

    請詳細說明 Git Hook 的使用方式與應用情境?

    請給我一個 Git Hook 達成自動化的應用範例

    在 Windows 設定 Git Hook 的時候有沒有什麼注意事項?

  14. 進階主題

    請詳細說明 Git Submodule 的使用方式與應用情境?

    如何透過 Git Worktree 同時取出一個 Repo 下的兩個不同分支的所有檔案?

    請問 Git Attribute 要怎樣使用?

    請問 .gitignore 要怎樣使用?

    請問 Git LFS 的使用方式與應用情境?

    我們現有的 TFS 有超過一百個專案,移到 Git 之後,是要維持一百個 repo 還是合併成一個 repo?

  15. 安全性

    請問在使用 Git 的時候,需要注意哪些安全性問題?

    Git 會不會有原始碼外洩的問題?

    密碼或金鑰不小心 commit 到 Git 怎麼辦?

    如何使用 SSH 金鑰對 Git 遠端儲存庫進行存取?

    如何使用 GPG 對所有 git commit 進行簽名?

總結

這些提問是我這些年來在企業內訓與公開課程中累積的常見問題,如果你有更好的問題,也歡迎你在下方留言,我會將你的問題加入到這篇文章中。

相關連結

留言評論