git revert和git reset的區別

2022-12-05 15:25:08 字數 5251 閱讀 6411

1樓:儒森教育

1,git revert 是撤銷某次操作,此次操作之前的commit都會被保留。

2,git reset 是撤銷某次提交,但是此次之後的修改都會被退回到暫存區。

3,git revert會生成一個新的commit,將之前的某個commit的修改恢復過來。

4,git reset會將head移動到某個commit上,換種說法就是將某個commit變成最後一個commit

5,譬如現在有a,b,c三個commit

執行git revert c的話,會生成commit d,當前code的內容會變成和b一樣

執行git reset b --hard的話,會在當前的工作目錄中將c丟棄掉,內容變成和b一樣

從內容上來看,這兩種做法是一樣的;但從commit的歷史來看,是不同的。

6,英語的學習不是一朝一夕的,是需要長時間的積累過程,單詞,語法,聽力,這些是最基本的,不過最主要的是口語的練習,多聽多練是最有效的,最好是可以經常和外國人交流,進行語言的交換,文化的交流也是可以提升外語的。

2樓:智課網

git revert 是生成一個新的提交來撤銷某次提交,此次提交之前的commit都會被保留;

git reset 是回到某次提交,提交及之前的commit都會被保留,但是此次之後的修改都會被退回到暫存區。

簡單來說:git revert是用一次新的commit來回滾之前的commit,git reset是直接刪除指定的commit。

3樓:千鋒教育

git revert會建立一個新的commit,這個操作不會消除已有的git歷史紀錄。

git reset則會改動已有的git紀錄,造成歷史重寫。

兩者都可以用於對過去的commit進行更改/撤銷。但是revert可以保持歷史完整,reset則會直接重寫歷史。如果你在你自己的branch上工作,一般可以隨心所欲地reset。

如果你是某個專案的管理員/擁有這個專案的master寫入許可權,你應該用revert多過reset。否則可能會為很多已經pull過的其他開發者造成衝突。

4樓:

git revert 是生成一個新的提交來撤銷某次提交,此次提交之前的commit都會被保留

git reset 是回到某次提交,提交及之前的commit都會被保留,但是此次之後的修改都會被退回到暫存區

具體一個例子,假設有三個commit, git st:

commit3: add test3.c

commit2: add test2.c

commit1: add test1.c

當執行git revert head~1時, commit2被撤銷了

git log可以看到:

revert "commit2":this reverts commit 5fe21s2...

commit3: add test3.c

commit2: add test2.c

commit1: add test1.c

git status 沒有任何變化

如果換做執行git reset --soft(預設) head~1後,執行git log

commit2: add test2.c

commit1: add test1.c

執行git status, 則test3.c處於暫存區,準備提交。

如果換做執行git reset --hard head~1後,

顯示:head is now at commit2,執行git log

commit2: add test2.c

commit1: add test1.c

執行git st, 沒有任何變化

另外:git revert 是撤消該commit,作為一個新的commit。

5樓:聶寂街

git revert 是撤銷某次操作,此次操作之前的commit都會被保留

git reset 是撤銷某次提交,但是此次之後的修改都會被退回到暫存區

具體一個例子,假設有三個commit, git st:

commit3: add test3.c

commit2: add test2.c

commit1: add test1.c

當執行git revert head~1時, commit2被撤銷了

git log可以看到:

commit1:add test1.c

commit3:add test3.c

git status 沒有任何變化

如果換做執行git reset --soft(預設) head~1後,執行git log

commit2: add test2.c

commit1: add test1.c

執行git status, 則test3.c處於暫存區,準備提交。

如果換做執行git reset --hard head~1後,

顯示:head is now at commit2,執行git log

commit2: add test2.c

commit1: add test1.c

執行git st, 沒有任何變化

另外:git revert 是撤消該commit,作為一個新的commit。

6樓:雲南萬通汽車學校

區別:git revert 是生成一個新的提交來撤銷某次提交,此次提交之前的commit都會被保留

git reset 是回到某次提交,提交及之前的commit都會被保留,但是此次之後的修改都會被退回到暫存區

舉例:具體一個例子,假設有三個commit, git st:

commit3: add test3.c

commit2: add test2.c

commit1: add test1.c

當執行git revert head~1時, commit2被撤銷了

git log可以看到:

revert "commit2":this reverts commit 5fe21s2...

commit3: add test3.c

commit2: add test2.c

commit1: add test1.c

git status 沒有任何變化

如果換做執行git reset --soft(預設) head~1後,執行git log

commit2: add test2.c

commit1: add test1.c

執行git status, 則test3.c處於暫存區,準備提交。

如果換做執行git reset --hard head~1後,

顯示:head is now at commit2,執行git log

commit2: add test2.c

commit1: add test1.c

執行git st, 沒有任何變化

另外:git revert 是撤消該commit,作為一個新的commit。

7樓:笑喘是病得抽

git中,每一次提交都會生成一個commit

git revert會生成一個新的commit,將之前的某個commit的修改恢復過來

git reset會將head移動到某個commit上,換種說法就是將某個commit變成最後一個commit

譬如現在有a,b,c三個commit

執行git revert c的話,會生成commit d,當前code的內容會變成和b一樣

執行git reset b --hard的話,會在當前的工作目錄中將c丟棄掉,內容變成和b一樣

從內容上來看,這兩種做法是一樣的;但從commit的歷史來看,是不同的

8樓:匿名使用者

1,git revert 是撤銷某次操作,此次操作之前的commit都會被保留。

2,git reset 是撤銷某次提交,但是此次之後的修改都會被退回到暫存區。

3,git revert會生成一個新的commit,將之前的某個commit的修改恢復過來。

4,git reset會將head移動到某個commit上,換種說法就是將某個commit變成最後一個commit

5,譬如現在有a,b,c三個commit

執行git revert c的話,會生成commit d,當前code的內容會變成和b一樣

執行git reset b --hard的話,會在當前的工作目錄中將c丟棄掉,內容變成和b一樣

從內容上來看,這兩種做法是一樣的;但從commit的歷史來看,是不同的。

6,英語的學習不是一朝一夕的,是需要長時間的積累過程,單詞,語法,聽力,這些是最基本的,不過最主要的是口語的練習,多聽多練是最有效的,最好是可以經常和外國人交流,進行語言的交換,文化的交流也是可以提升外語的。

9樓:day廣

git revert 和 git reset的區別:

1. git revert是用一次新的commit來回滾之前的commit,git reset是直接刪除指定的commit。

2. 在回滾這一操作上看,效果差不多。但是在日後繼續merge以前的老版本時有區別。

因為git revert是用一次逆向的commit「中和」之前的提交,因此日後合併老的branch時,導致這部分改變不會再次出現,但是git reset是之間把某些commit在某個branch上刪除,因而和老的branch再次merge時,這些被回滾的commit應該還會被引入。

3. git reset 是把head向後移動了一下,而git revert是head繼續前進,只是新的commit的內容和要revert的內容正好相反,能夠抵消要被revert的內容。

10樓:雲南萬通汽車學校

一、1. git revert是用一次新的commit來回滾之前的commit

2、git reset是直接刪除指定的commit。

二、1. 在回滾這一操作上看,效果差不多。但是在日後繼續merge以前的老版本時有區別。

因為git revert是用一次逆向的commit「中和」之前的提交,因此日後合併老的branch時,導致這部分改變不會再次出現第二次

2、但是git reset是之間把某些commit在某個branch上刪除,因而和老的branch再次merge時,這些被回滾的commit應該還會被引入。

三、1. git reset 是把head向後移動了一下,2

2.git revert是head繼續前進,只是新的commit的內容和要revert的內容正好相反,能夠抵消要被revert所選定的內容。

通分13和25。38和512。724和

通分1 3和2 5為5 15和6 15 3 8和5 12為9 24和10 24 7 24和7 16為14 48和21 48 5 15和10 15,6 24和10 24,14 48和21 48。5 12 7 8和11 16 怎麼通分?急!求!謝!12 8 16的最小公倍數是48,所以 5 12 20 ...

the和an和a的區別,a an和the的區別

a用於子音音素前,a useful book an則用於母音音素前,an hour 定冠詞 例如英語中的the 用來限定這個冠詞後面的名詞是某個特定的事物 特指雙方都明白的人或物 例如 give me the book.沒有單一規則可用來確定使用或不用冠詞a an the。對於是否要使用冠詞,在某些...

用既然和既然和哪怕和甚至和只要和就造句

1.遇到困難不要抱怨,既然改變不了過去,那就改變未來。2.既然我從不迷信中秋的月光比平時漂亮,為何此刻會有失落的感覺?3.我們都來自緣分,最終還要回歸忘記,既然世事空幻,為何還要執著在無名產生的煩惱裡。用煩惱的心看世界,你會無路可逃 用輕鬆的眼看世界,你會發現這個世界處處都是突然的美好。4.你既然認...