如何使用git命令回滚到指定版本以及返回到新版本

如何使用git命令回滚到指定版本以及返回到新版本,第1张

一. 相关git命令

1.git branch:查看当前分支,如果在后面加-a则表示查看所有分支。

2.git log:查看提交历史,在commit id这一项中可以看到提交的历史版本id。

3.git reflog:查看每一次命令的记录

4.git reset --soft:回退到某个版本,只回退了commit的信息。

5.git reset --mixed:为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息。

6.git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉。

二:步骤

1.回滚到指定版本

首先进入项目根目录下,使用git log 命令,找到需要返回的commit id 号,使用git reset --hard 后跟你需要的commit id号,这样你就回到了指定的版本,注意git reset --hard与git reset  --soft的区别:

git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。通常使用在当你git commit -m "注释"提交了你修改的内容,但内容有点问题想撤销,又还要提交,就使用soft,相当于软着路;

git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉,相当于硬着路,回滚最彻底。

2.返回到最新版本

当你发现需要回滚到最新版本时,可以采用以下指今步骤

git log:查看历史提交

git reflog:查看每一次命令记录

通过git reflog命令查看到之后,我们再利用 git reset 来返回到相应的版本即可,HEAD前面的一串字符为我们简写的ID,所以最后输入

git reset --hard ca936c3即回滚到了最新的版本号了

git revert HEAD

git push origin 当前分支

注意:revert和reset的区别:revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在,而reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。

如果是使用reset的话:

git reset --hard HEAD^

git push origin 当前分支 -f(--force,该参数是强制提交,因为reset之后本地库落后于远程一个版本,因此需要强制提交)

首先需要log查看想要删除的某次提交的commit-id

git rebase -i "commit-id"

同删除历史某次提交前面两个步骤进入弹出界面,将红框中改为edit之后,保存退出,当前分支会进入到REBASE-i(当前分支/REBASE-i)的状态

然后执行以下命令:

git add .

至此就已经完成历史某次提交。

开发过程中可能遇到需要在某个分支中中的某个提交里进行修改。

那么首先我们先切换到要用的分支

git branch -av 查看所有分支。

切换分支 git checkout 分支名

使用git log -10 查看最近10条提交。 找到对应的commit id,默认前面6个即可。他会找到对应的。

git checkout  a6572b1214

在此分支上进行修改后进行add .然后  commit 提交。  这时候是无法push的。会提示你先提交到一个远程分支上

git push origin HEAD:<name-of-remote-branch>

而你用git push origin 新分支名,也会报错。会提示 error: failed to push some refs to xxx

因为你本地使用的是一个远程游离分支,需要先创建一个新本地分支进行绑定 git checkout -b new_branch_name

然后提交到一个远程新分支上。git push origin origin_new_branch_name 

这样就可以了。原来的分支也不会丢失。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/267273.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存