如何安全的在一個已有的git分支上,自動化的切換到另外一個分支指定commit?下面是一種乾淨的安全的可以自動化的做法:
清理本地髒數據
git checkout .
git clean -df .
將 commit 重置到 HEAD
git reset --hard HEAD
重置子git模塊
git submodule foreach --recursive git reset --hard
git submodule update --init --recursive
刪除可能的名字叫做 swap_tmp 的分支
git branch -D swap_tmp
立刻切換到 swap_tmp 分支
git checkout -b swap_tmp
刪除舊的目標分支,這是因爲本地 target_branch 可能已經被污染,刪除以免衝突
git branch -D target_branch
從遠程倉庫拉取目標分支最新版本
git fetch origin target_branch
切換到目標分支
git checkout target_branch
重置到該分支的目標commit
git reset --hard target_commit
重置子git模塊
git submodule foreach --recursive git reset --hard
git submodule update --init --recursive