Git Checkout / Switch / Restore 比較
前言
git checkout 原本的功能有:
- 切換分支
- 檔案管理
雖然兩者只是一個功能的一體兩面(從特定分支拿取特定檔案),但大多時候我們使用的時候會避免在一個指令進行太多邏輯操作,所以大多都只用到切換分支或是檔案管理其中一個。
而且說實在,checkout
一個檔案實在不是一個語意上很直觀的說法。
git checkout 原本的功能有:
雖然兩者只是一個功能的一體兩面(從特定分支拿取特定檔案),但大多時候我們使用的時候會避免在一個指令進行太多邏輯操作,所以大多都只用到切換分支或是檔案管理其中一個。
而且說實在,checkout
一個檔案實在不是一個語意上很直觀的說法。
剛開始學 git,我是隨便買了一本薄薄的書,然後跟著裡面的內容照著跑,就把 git 的基礎學起來了,例如說暫存區、分支、commit、tag、push 等等
曾經我以為這樣就算學會 git 了,我也這樣用 git 用了一兩年,直到有一天在實習的公司被問到說
你會用 Git?那你會用 rebase 嗎?
…那是什麼?
寫完一個指令切換預設使用的 SSH Key這篇之後,又思考了一下有沒有其他方式來解決這個同個電腦中使用兩個 github 帳號的問題,畢竟那篇是採用 ssh-agent level 來解決,但其實搞不好也可以直接從 git 的 config 下手,因此這次重新用更多關鍵字去調查解法,發現 git 其實也支援客製化 ssh 指令。
因應公司和個人有分開的 github 帳號,為了能在同一台電腦同使用者內工作,已經幾次重複解決這個問題,故寫篇文章記錄之。
我們可以使用 ssh-add
這個工具來檢視目前使用 ssh
指令連線時,會使用的 ssh key:
在開始之前,還是要先知道為什麼需要這些工具,就先上圖吧: