1. 程式人生 > >git 回退某個版本或者去掉某些patch

git 回退某個版本或者去掉某些patch

diff -urN linux-x.y.z/    linux/     >   xxx_patch

patch -p1 <  ../xxx_patch

diffstat -p1 xxx_patch

git checkout  ...../...../.....把本地原始檔改了,回退到git log中的某個版本

git revert   XXXXXXXXXXXXXXXXXXXX,只是去掉某個提交,某個patch

git reset -hard 跟git  checkout  ..../..../.....的效果一樣。

git reset  什麼都不加,是隻回退到某個commit,不改變本地檔案。

1:git reset –mixed:此為預設方式,不帶任何引數的git reset,即時這種方式,它回退到某個版本,只保留原始碼,回退commit和index資訊

2:git reset –soft:回退到某個版本,只回退了commit的資訊,不會恢復到index file一級。如果還要提交,直接commit即可

3:git reset –hard:徹底回退到某個版本,本地的原始碼也會變為上一個版本的內容

1 2 3 4 5 6 7 8 9 10 11 12 git reset HEAD^  #回退所有內容到上一個版本  git reset HEAD^ a.py 
#回退a.py這個檔案的版本到上一個版本 git reset –soft HEAD^3 #向前回退到第3個版本  git reset –soft HEAD^2#向前回退到第2個版本 
git reset –soft HEAD^4#向前回退到第4個版本 
git reset –hard origin/master #將本地的狀態回退到和遠端的一樣  git reset 057d #回退到某個版本  git revert HEAD #回退到上一次提交的狀態,按照某一次的commit完全反向的進行一次commit