摘要:GIT - commit 或 Merge 或 Push後回上一個commit
我有master與develop兩個branch
develop 從 master 延伸出去,
稱一開始為A的話。
master commit A & develop commit A
master 增加了一個commit B
develop 增加了一個commit C
但B是錯誤的commit
導致我需要master回上一個commit再merge develop才會正確。
但都已經push該怎麼辦?
git有一個方法,可以將master commit B 再追加一個一樣的反commit ,稱為commit -B好了。
commit A + commit B + commit -B = commit A ,只是增加了一個-B的commit
首先使用
git revert HEAD (回上一個版本 ,會邀加一個-B的commit)
再merge develop
git merge develop
git push origin master
完成回上一個commit 並 merge develop 的動作,不會使git 發生天下大亂,只是增加一個反commit(而不是將commit移除)
若merge 後,變得亂七八槽,想再重來呢?
使用
先commit 再回上一個動作
git commit
git reset --hard HEAD
回到某一個commit的狀態呢?
git reset --hard (commit code)
若要pull某一個branch 在某一個commit的動作呢?
先回到master
git branch feature-xxxxx (commit code)
git checkout feature-xxxxx
git pull origin feature-xxxxx
因為在建立branch時,已經過了好幾個commit,若從master開始,git branch ,那將與某個feature產生很大的衝突。
所以要從master 當初branch 的feature起始點,再將feature pull下來。