跳轉到

Git operations

配置

Git for Windows 升版

    git version / git --version

    # Version between 2.14.2 and 2.16.1
    git update

    # Version after 2.16.1
    git update-git-for-windows

為命令設定別名

    # 為 branch 設定別名
    git config --global alias.br branch

分支管理

建立新的分枝

    # 建立新分枝
    git branch <new-branch>

    # 設定本地與遠端分支的關聯
    git push --set-upstream origin <new-branch>

    # 建立並切換到新分支
    git checkout -b <new-branch>

建立空白分枝

    # 建立獨立分枝
    git checkout --orphan <new-branch>

    # 清除 unstaged 暫存檔
    git rm -rf

    # 允許不做變更的異動
    git commit --allow-empty
    git push

取得當前分枝名

    # Version before 2.22
    git rev-parse --abbrev-ref HEAD

    # Version after 2.22
    git branch --show-current

將分枝重新命名

  1. 在本地重新命名分支名稱

        git branch -m <new-branch>
        # OR
        git branch -m <old-branch> <new-branch>
    

  2. 將修改後的分支推送至遠端

        # 刪除遠端舊分支
        git push origin -d <old-branch>
        # 將本地新分支推送到遠端
        git push origin <new-branch>
    
    或簡化為
        git push origin :<old-branch> <new-branch>
    

  3. 設定本地與遠端分支的關聯

        git push --set-upstream origin <new-branch>
    

刪除分枝

註:-d--delete 的簡寫,-D--delete --force 的簡寫

    # 刪除本地分枝
    git branch -d <branch>
    # 強制刪除本地分枝(分枝尚未被推送或合併)
    git branch -D <branch>

    # 刪除遠端分枝
    git push origin -d <branch>
    # OR
    git push origin :<branch>

取得已併回/未併回分枝

    # 取得本地端已併回 develop 的分枝
    git branch --merged develop
    # 取得本地端未併回 develop 的分枝
    git branch --no-merged develop

    # 取得遠端已併回 develop 的分枝
    git branch -r --merged origin/develop
    # 取得遠端未併回 develop 的分枝
    git branch -r --no-merged origin/develop

修改與異動

關於暫存異動

  • 顯示暫存清單

        git stash list
    

  • 暫存目前的更改(包括未追蹤檔案)

        git stash push --include-untracked
    

  • 暫存暫存區內的修改

        git stash push [-S|--staged] [<message>]
    

  • 暫存在工作目錄(暫存區外)的更改

        git stash push --keep-index
    

  • 從暫存中恢復最新的暫存,可以加入暫存 ID 的參數 (stash@{1}) 來恢復特定變更

        git stash pop / git stash apply
    

    補充:popapply 的差別在於前者會將暫存紀錄釋放,後者則不會

  • 刪除暫存,可以加入暫存 ID 的參數 (stash@{1}) 來刪除特定變更

        git stash drop
    

  • 刪除所有暫存

        git stash clear
    

問題排解

PowerShell 回報 error: unknown switche'` 錯誤

在 PowerShell 程式設計語言中,腳本區塊是語句或表達式的集合,可用來做為單一單位。 語句的集合可以括在大括弧中,{}定義為函式,或儲存在腳本檔案中。 腳本區塊可以傳回值,並接受參數和自變數。

因此,欲在 PowerShell 使用大括號需要加上引號或反引號作為跳脫字元。