最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

git分支或指定文件回退到指定版本命令詳解

 更新時(shí)間:2023年12月19日 10:52:53   作者:NettyBoy  
作為一名后端開(kāi)發(fā),相信大家一定遇到過(guò)這樣的情景,代碼開(kāi)發(fā)人員過(guò)多,并且開(kāi)發(fā)分支過(guò)多,導(dǎo)致代碼版本管理困難,這樣就難免遇到一些代碼合并出錯(cuò),下面這篇文章主要給大家介紹了關(guān)于git分支或指定文件回退到指定版本命令的相關(guān)資料,需要的朋友可以參考下

一、分支回滾

1. 使用 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ū)都回退到指定提交,會(huì)丟失最新的代碼修改,慎用。
# 查看提交歷史
git log 

# 回退到指定提交(使用 --soft 模式)
git reset --soft <commit>

# 查看狀態(tài),確認(rèn)回退操作是否正確
git status

# 提交回退后的代碼
git commit -m "回退到 <commit>"

# 將修改的代碼推送到遠(yuǎn)程倉(cāng)庫(kù)
git push origin <branch>

2.使用 git revert 命令 

git revert 命令可以將指定提交的修改反向應(yīng)用到當(dāng)前分支上,相當(dāng)于撤銷指定提交的修改。
這種方式比使用 git reset 命令更加安全,因?yàn)樗粫?huì)改變提交歷史,而是創(chuàng)建一個(gè)新的提交來(lái)撤銷之前的修改。

# 查看提交歷史
git log

# 撤銷指定提交,這樣會(huì)創(chuàng)建一個(gè)新的提交來(lái)撤銷之前的修改
git revert <commit>

# 提交撤銷操作
git commit -m "回退到版本 <commit>"

# 推送到遠(yuǎn)程倉(cāng)庫(kù)
git push origin <branch>

3.使用 git checkout 命令

git checkout 命令可以將當(dāng)前分支的 HEAD 指針指向指定的提交,并將工作區(qū)的內(nèi)容替換成指定提交的內(nèi)容。這種方式不改變提交歷史,但會(huì)直接覆蓋工作區(qū)的內(nèi)容,慎用。

# 查看提交歷史
git log

# 切換到指定提交
git checkout <commit>

# 提交回退后的代碼
git commit -m "回退到版本 <commit>"

# 切回到原來(lái)的分支
git checkout <branch>

# 推送當(dāng)前分支到遠(yuǎn)程倉(cāng)庫(kù)
git push origin <branch>
#<branch> 表示當(dāng)前分支的名稱,例如 master。這個(gè)命令會(huì)將本地分支的提交推送到遠(yuǎn)程倉(cāng)庫(kù),并將遠(yuǎn)程分支更新為與本地分支一致。

 二、某個(gè)文件回滾

如果某次改動(dòng)比較大,牽涉到的文件比較多。但是某個(gè)文件本來(lái)是沒(méi)問(wèn)題的,結(jié)果畫(huà)蛇添足,改出問(wèn)題來(lái)了,這時(shí)候直接回退版本會(huì)把所有代碼都回退掉,可能得不償失。這時(shí)候就需要指定回退單個(gè)文件到為修改之前的版本。

1.查看哪些文件發(fā)生修改

首先先獲取需要回退的文件路徑,比較簡(jiǎn)單的方法就是,在該文件加個(gè)細(xì)微改動(dòng),比如一條無(wú)關(guān)注釋,然后通過(guò)git status  可以看到當(dāng)前分支下修改的文件信息

git status 

查看文件內(nèi)容變化

git diff commitId1  commitId2
或
git diff commitid  本地文件

2.然后查看提交記錄(最近幾次提交)

git log -2

commit 3f290fa303e1aceea63e215a7ec68a5381eb8034 (HEAD -> main, origin/main)
Author: ning <ning@xxx.com>
Date:   Thu Sep 21 16:39:35 2023 +0800

    test buffer

commit 9bec77097394b5dcba39d79da7c6ea7ed73474f1
Author: ning <ning@xxx.com>
Date:   Thu Sep 21 16:36:26 2023 +0800

    test buffer

這里有兩個(gè)參數(shù)需要記錄下來(lái)

  •  需要回退的文件路徑:/source/code/test.java (git status 命令可以看到)
  •  需要回退到哪的 commit ID:3f290fa303e1aceea63e215a7ec68a5381eb8034

3.執(zhí)行提交命令

  • 執(zhí)行 git checkout commitID 回滾文件路徑
?  git:(test) git checkout 3f290fa303e1aceea63e215a7ec68a5381eb8034 /source/code/test.java 
Updated 1 path from 3f290fa30

此時(shí)代碼就會(huì)還原到登錄功能大改之前,如果不需要做啥修改,直接可以commit。

總結(jié)

到此這篇關(guān)于git分支或指定文件回退到指定版本命令的文章就介紹到這了,更多相關(guān)git分支回退指定版本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Web 開(kāi)發(fā)中遇到的UTF-8編碼的問(wèn)題總結(jié)

    Web 開(kāi)發(fā)中遇到的UTF-8編碼的問(wèn)題總結(jié)

    一個(gè)網(wǎng)站如果需要國(guó)際化,就需要將編碼從GB2312轉(zhuǎn)成UTF-8,其中有很多的問(wèn)題需要注意,如果沒(méi)有轉(zhuǎn)換徹底,將會(huì)有很多的編碼問(wèn)題出現(xiàn)!
    2010-02-02
  • 詳解git merge命令應(yīng)用的三種情景

    詳解git merge命令應(yīng)用的三種情景

    這篇文章主要介紹了詳解git merge命令應(yīng)用的三種情景,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 詳解https 加密完整過(guò)程

    詳解https 加密完整過(guò)程

    這篇文章主要介紹了詳解https 加密完整過(guò)程的相關(guān)資料,這里主要說(shuō)名https加密及通信的方法,需要的朋友可以參考下
    2017-07-07
  • 進(jìn)制轉(zhuǎn)換算法原理(二進(jìn)制 八進(jìn)制 十進(jìn)制 十六進(jìn)制)

    進(jìn)制轉(zhuǎn)換算法原理(二進(jìn)制 八進(jìn)制 十進(jìn)制 十六進(jìn)制)

    進(jìn)制轉(zhuǎn)換算法原理(二進(jìn)制 八進(jìn)制 十進(jìn)制 十六進(jìn)制),以前上學(xué)那會(huì)確實(shí)學(xué)過(guò),長(zhǎng)時(shí)間不用都忘了。
    2010-05-05
  • CentOS下安裝Jenkins的完整步驟

    CentOS下安裝Jenkins的完整步驟

    Jenkins是一款由Java編寫(xiě)的開(kāi)源的持續(xù)集成工具,下面這篇文章主要介紹了CentOS下安裝Jenkins的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 分享幾道和「滑動(dòng)窗口」有關(guān)的算法面試題

    分享幾道和「滑動(dòng)窗口」有關(guān)的算法面試題

    本文是小編和大家分享的幾道和「滑動(dòng)窗口」有關(guān)的算法面試題,需要的朋友可以參考下
    2019-08-08
  • 鍵盤(pán)掃描碼[比較完整]

    鍵盤(pán)掃描碼[比較完整]

    鍵盤(pán)掃描碼
    2009-05-05
  • git?stash(儲(chǔ)藏)的用法總結(jié)

    git?stash(儲(chǔ)藏)的用法總結(jié)

    本文詳細(xì)講解了git?stash(儲(chǔ)藏)的用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Git Submodule使用完整教程(小結(jié))

    Git Submodule使用完整教程(小結(jié))

    這篇文章主要介紹了Git Submodule使用完整教程(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 在kali上安裝AWVS的圖文教程

    在kali上安裝AWVS的圖文教程

    這篇文章主要介紹了在kali上安裝破解AWVS的圖文教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論

云霄县| 舞阳县| 高邑县| 大田县| 嘉善县| 竹山县| 白城市| 曲阳县| 崇仁县| 塔河县| 威信县| 洛阳市| 育儿| 若羌县| 中宁县| 辽阳市| 泰宁县| 莱芜市| 毕节市| 临武县| 麻城市| 政和县| 太保市| 来宾市| 孝感市| 澄城县| 遵义县| 大同县| 阳江市| 江源县| 新乡县| 山阴县| 珲春市| 佛教| 武冈市| 神池县| 抚顺市| 波密县| 兴城市| 新野县| 横山县|