GIT - commit 或 Merge 或 Push後回上一個commit

摘要: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下來。