站長阿川

站長阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

站長精心設計,帶你實作 63 個小專案,得到作品集!

立即開始免費試讀!

Git

準備

Git 安裝

首先確認是否已經安裝 git。

git --version

如果已顯示版本,則不需要重新安裝。
如果沒有,請從 這裡 獲取安裝。

確認是否安裝成功。

git --version

應該會顯示版本。

為了安全起見,可以確認路徑是否正確

參考: Git 的安裝 〜Git 在Mac上的安裝〜

在 Git 中註冊自己的資訊

git config --global user.name YOUR_USER_NAME
git config --global user.email [email protected]

為 SSH 連接創建公鑰/私鑰

ssh-keygen -t ed25519 -C "[email protected]"

不太確定,但可能會在過程中詢問儲存位置,指定為 ~/.ssh

~/.ssh 目錄下會生成 id_ed25519(私鑰)和 id_ed25519.pub(公鑰)。

確認

ls ~/.ssh

將公鑰註冊至 GitHub

cat ~/.ssh/id_ed25519.pub

該指令會在終端中顯示公鑰內容,記得復製下來。
也可以在 VSCode 中打開並複製。

透過瀏覽器前往 GitHub 並執行以下步驟:

  1. 點擊你的圖示並選擇 Settings
  2. 在左側邊欄點擊 SSH & GPG keys 圖示
  3. 點擊 NEW SSH key 按鈕
  4. 將你的 公鑰 的內容粘貼到名為 Key 的欄位中
  5. 點擊 Add key 按鈕

(如有需要可設定換行符號)

git config --global core.autocrlf input

如何使用 git 指令

首先將 repository 下載到本地 (clone)

提示: 隨著處理的 repository 增多,可能會變得混亂,因此建議創建一個 repo 資料夾並將其放入該資料夾中。

  • 在 repository 網頁右上方按下 Clone 按鈕,並複製 Clone with SSH 的網址
  • 在終端中移動到 repo 目錄並進行 clone
git clone git@......

clone 完成後會生成 repository 的資料夾,進入該資料夾。

常見實際作業流程

確認分支

git branch

應該會顯示 mastermain

切換分支並進行自己的作業

git checkout -b my_branch

使用 git branch 可以查看到已創建的新分支,並且可以看到目前所在的分支(前面有 * 標記並顯示為綠色)。

~ 作業完成後 ~

git status

可以查看哪些文件已修改。

進行暫存

git add .    # 全部暫存
git add FILE_NAME    # 僅上傳指定文件

確認是否已成功暫存,使用 git status 檢查是否有多餘的文件。如果有多餘的文件,可以使用 git reset <filename> 來撤銷。
(當不小心暫存了多餘的文件時: 撤銷 git add

創建 commit

git commit -m "描述所做的更改的訊息"

推送到遠端 (push)

git push -u origin my_branch

這樣就會反映到 GitHub 上。

獲取他人創建的分支

更新遠端追蹤分支

git fetch

顯示所有本地和遠端的分支

git branch -a

將他人創建的分支引入本地

git checkout -b other_member_branch origin/other_member_branch

參考: 如何將其他成員開發中的遠端分支引入本地

其他常用命令

切換分支
git checkout 目標分支名稱

切換後為了安全確認,使用 git branch 查看是否已成功切換。

更新分支

切換到目標分支後,

git pull

提示: 為了減少衝突的可能性,建議在作業前先執行 git pull

當其他人的 Pull Request 被合併到 main 時,也要在自己的分支上反映

正常流程

# 確保 main 是最新狀態
git checkout main
git pull origin main

# 切換到作業分支
git checkout my_branch

# 合併 main
git merge main

作業分支中尚有未提交的更改,但希望同步 main

方法一: 先提交更改,然後執行上述 正常流程
方法二: 使用 stash 暫存更改。

# 暫存尚未提交的更改
git stash

# 更新 main 並合併
git checkout main
git pull origin main
git checkout my_branch
git merge main

# 恢復暫存的更改
git stash pop

關於 git stash pop 的補充

  • 預設情況下,會恢復 stash@{0}(最新的)。
  • 若成功應用,stash@{0} 會從列表中刪除。
  • 即使因衝突導致應用失敗,stash 仍然會保留(安全設計)。

注意: 當使用 stash pop 恢復時,若合併後的代碼與自己的更改發生衝突,將會出現衝突。
也可以為 stash 添加註解。
範例

git stash push -m "stash 註解"
有關 stash 的更多信息

git stash 可以多次使用,因此可以通過索引進行管理。

檢查 stash

git stash list

輸出範例: stash@{0} 是最新的 stash,編號越大表示越舊。

stash@{0}: WIP on my_branch: 123abc4 增加登入表單
stash@{1}: WIP on my_branch: 456def7 修正錯字
stash@{2}: 在 main: 789ghij 快速除錯

指定索引提取

# 應用特定的 stash (保留該 stash)
git stash apply stash@{2}

# 應用特定的 stash 並刪除
git stash pop stash@{1}

刪除 stash

# 刪除特定的 stash
git stash drop stash@{0}

# 刪除所有 stash
git stash clear

偶爾使用的指令

下載子模組

git submodule init
git submodule update

原文出處:https://qiita.com/sai8951/items/309b52e6cd03f17d6167


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
站長阿川

站長阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

站長精心設計,帶你實作 63 個小專案,得到作品集!

立即開始免費試讀!