我最近又有一場企業內訓是關於 Git 教育訓練,大家應該都知道 Git 是一個非常知名的版本控制系統,它可以追蹤文件的更改、協調多人協作、還原過去的版本等等。學習 Git 可以幫助你更好地管理你的程式碼,並提高團隊協作的效率。雖然說 Git 是軟體開發行業中不可或缺的技能,但市場上永遠都有新進者,他們想學習 Git,但不知道從何入手。今天這篇文章我打算提供一系列學習 Git 版本控管的提示詞 (Prompt),幫助 Git 新手藉助 ChatGPT 快速瞭解 Git 版本控管。
安裝 ChatGPT 萬能工具箱
由於本文會使用到大量的 Prompt 幫助你向 ChatGPT 提問,為了減少大家經常性的複製貼上 Prompt 到 ChatGPT,建議大家安裝我前陣子製作的 ChatGPT 萬能工具箱 擴充套件 (Chrome/Edge)。
詳細介紹請參見 介紹好用工具: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 送出提示後,原本的提問內容是可以編輯的,你在編輯後重新送出,可能會得到稍微不一樣的回答,通常回答的品質會比第一次還要好,大家可以試試看。
-
介紹版本控制和 Git 的基本概念
為什麼程式碼要做版本控管?
什麼是 Git?
請詳述 Git 與其它版本控制系統的差異?
請列出幾個學習 Git 時最重要的基本概念,每個概念請都詳細介紹
Git 的變更追蹤是什麼意思?
-
安裝 Git 和設定基本設定
如何在 Windows 作業系統安裝 Git 工具?
如何在 macOS 作業系統安裝 Git 工具?
第一次使用 Git 有什麼注意事項嗎?
-
建立第一個 Git 儲存庫
如何在本機建立一個 Git 儲存庫?
請問分支名稱 main 跟 master 有什麼區別嗎?
請問 Git 有哪些常見問題?
-
提交和查看變更
如何提交和查看 Git 變更?
如何修正最近一次的 Git 提交?
請問如何搜尋 Git 歷史提交記錄中的內容?
請提供我 --author, --before, --after 的使用範例
請問 Git 多久要 push 一次?還有,我為什麼要頻繁的 push 程式碼上去?
-
分支管理
如何建立和切換 Git 分支?
如何合併一個 Git 分支?
在合併分支時有什麼重要的注意事項?
請問如何列出目前所有的分支?
Git 為什麼跟發行管理有關係?
刪除 branch 之後,要怎樣知道之前的版本是哪一個?
-
解決合併衝突
當 Git 合併衝突發生時,有什麼樣的標準處理流程嗎?
-
回退和重置
請問 git reset 與 git revert 有什麼差別?請詳細說明。
我意外透過 git reset 刪除的 commit 要如何救回來?
當我 Git 的工作目錄有許多尚未提交的變更時,我要如何暫存這些變更,好讓我切換到其他分支,並且在下次重新取回變更?
-
日常工作流程範例
請提供我幾個日常會發生的 Git 版本控管情境
-
遠端儲存庫和協作
請問 Git 如何跟遠端儲存庫進行協作?
請詳細介紹 git pull 與 git push 的差異與使用情境範例
請問 Git 的 push 與 force push 有什麼差別?
-
分支管理進階
Git 有哪些進階的 Git 分支用法嗎?
如何使用 git rebase 進行分支整理?
請問 Git 三向合併(Three-way merge)的工作原理為何?何時才會用到這個功能?
-
分支合併策略
常見的 Git 分支合併策略有哪些?請詳細說明!
請詳細解釋 GitHub Flow 工作流程的運作方式與原理
請詳細解釋 GitLab Flow 工作流程的運作方式與原理
請詳細解釋 Git Flow 工作流程的運作方式與原理
-
標籤和版本號
請解釋標籤和版本號的關係為何?
請詳細說明 git tag 的使用方式與應用情境?
請解釋標籤和發佈版本有何關係?
-
Git Hook
請詳細說明 Git Hook 的使用方式與應用情境?
請給我一個 Git Hook 達成自動化的應用範例
在 Windows 設定 Git Hook 的時候有沒有什麼注意事項?
-
進階主題
請詳細說明 Git Submodule 的使用方式與應用情境?
如何透過 Git Worktree 同時取出一個 Repo 下的兩個不同分支的所有檔案?
請問 Git Attribute 要怎樣使用?
請問 .gitignore 要怎樣使用?
請問 Git LFS 的使用方式與應用情境?
我們現有的 TFS 有超過一百個專案,移到 Git 之後,是要維持一百個 repo 還是合併成一個 repo?
-
安全性
請問在使用 Git 的時候,需要注意哪些安全性問題?
Git 會不會有原始碼外洩的問題?
密碼或金鑰不小心 commit 到 Git 怎麼辦?
如何使用 SSH 金鑰對 Git 遠端儲存庫進行存取?
如何使用 GPG 對所有 git commit 進行簽名?
總結
這些提問是我這些年來在企業內訓與公開課程中累積的常見問題,如果你有更好的問題,也歡迎你在下方留言,我會將你的問題加入到這篇文章中。
相關連結