方法一: 使用 git reset 命令
命令可以將當(dāng)前分支的 HEAD 指針指向指定的提交,從而回退代碼到指定版本。
該命令有三種模式:–soft、–mixed 和 --hard。它們的區(qū)別在于回退代碼的程度不同。
--mixed
(默認(rèn)):將 HEAD 指針和暫存區(qū)都回退到指定提交,但不改變工作區(qū)的內(nèi)容。--soft
僅將 HEAD 指針回退到指定提交,不改變暫存區(qū)和工作區(qū)的內(nèi)容。--hard
將 HEAD 指針、暫存區(qū)和工作區(qū)都回退到指定提交,會丟失最新的代碼修改,慎用。
# 查看提交歷史
git log
# 回退到指定提交(使用 --soft 模式)
git reset --soft <commit>
# 查看狀態(tài),確認(rèn)回退操作是否正確
git status
# 提交回退后的代碼
git commit -m "回退到 <commit>"
# 將修改的代碼推送到遠(yuǎn)程倉庫
git push origin <branch>
方法二:使用 git revert 命令
git revert 命令可以將指定提交的修改反向應(yīng)用到當(dāng)前分支上,相當(dāng)于
撤銷指定提交的修改
。
這種方式比使用 git reset 命令更加安全,因為它不會改變提交歷史,而是創(chuàng)建一個新的提交來撤銷之前的修改。
# 查看提交歷史
git log
# 撤銷指定提交,這樣會創(chuàng)建一個新的提交來撤銷之前的修改
git revert <commit>
# 提交撤銷操作
git commit -m "回退到版本 <commit>"
# 推送到遠(yuǎn)程倉庫
git push origin <branch>
方法三:使用 git checkout 命令
git checkout 命令可以將當(dāng)前分支的 HEAD 指針指向指定的提交,并將工作區(qū)的內(nèi)容替換成指定提交的內(nèi)容。這種方式
不改變提交歷史,但會直接覆蓋工作區(qū)的內(nèi)容,慎用
。
# 查看提交歷史
git log
# 切換到指定提交
git checkout <commit>
# 提交回退后的代碼
git commit -m "回退到版本 <commit>"
# 切回到原來的分支
git checkout <branch>
# 推送當(dāng)前分支到遠(yuǎn)程倉庫
git push origin <branch>
#<branch> 表示當(dāng)前分支的名稱,例如 master。這個命令會將本地分支的提交推送到遠(yuǎn)程倉庫,并將遠(yuǎn)程分支更新為與本地分支一致。
常見的錯誤及其解決辦法如下:
【1】
error
: failed to push some refs to ‘git@github.com:/.git’原因
:這個錯誤通常是由于本地分支和遠(yuǎn)程分支的提交歷史不一致導(dǎo)致的。解決辦法
:先執(zhí)行 git pull 命令將遠(yuǎn)程分支的代碼拉取到本地,然后再執(zhí)行 git push 命令推送代碼。
【2】
error
: src refspec does not match any解決
:這個錯誤通常是由于本地分支不存在或者拼寫錯誤導(dǎo)致的。解決辦法
:先執(zhí)行 git branch 命令查看本地分支列表,確認(rèn)分支名是否正確,如果不存在則需要先創(chuàng)建分支。文章來源:http://www.zghlxwxcb.cn/news/detail-632720.html
【3】
error
: failed to push some refs to ‘git@github.com:/.git’解決
:這個錯誤通常是由于權(quán)限不足導(dǎo)致的。解決辦法
:確認(rèn)當(dāng)前用戶是否有權(quán)限推送代碼到遠(yuǎn)程倉庫,如果沒有則需要聯(lián)系管理員進(jìn)行授權(quán)。文章來源地址http://www.zghlxwxcb.cn/news/detail-632720.html
到了這里,關(guān)于【git】Git 回退到指定版本:的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!