GIT仓库如何恢复到前一次提交

本文详细介绍了Git中reset命令的使用方法,包括mixed、soft、hard三种方式及其应用场景。同时,阐述了如何在本地和远程仓库间回退版本,以及如何删除远程分支。最后,提供了关于删除本地临时分支到远程仓库的正确方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过使用GIT版本恢复命令reset,可以回退版本。

reset命令有3种方式:

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

git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可  

git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容    

以下是一些reset的示例:

#回退所有内容到上一个版本    

git  reset  HEAD^      

#回退a.py这个文件的版本到上一个版本      

git  reset  HEAD^  a.py      

#向前回退到第3个版本      

git  reset  –soft  HEAD~3      

#将本地的状态回退到和远程的一样      

git  reset  –hard  origin/master      

#回退到某个版本      

git  reset  057d      

#回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit      

git  revert  HEAD 

如果我们某次修改了某些内容,并且已经commit到本地仓库,而且已经push到远程仓库了

这种情况下,我们想把本地和远程仓库都回退到某个版本,该怎么做呢?

前面讲到的git reset只是在本地仓库中回退版本,而远程仓库的版本不会变化

这样,即时本地reset了,但如果再git pull,那么,远程仓库的内容又会和本地之前版本的内容进行merge

这并不是我们想要的东西,这时可以有2种办法来解决这个问题:

直接在远程server的仓库目录下,执行git reset –soft 10efa来回退。注意:在远程不能使用mixed或hard参数

在本地直接把远程的master分支给删除,然后再把reset后的分支内容给push上去,如下:

#新建old_master分支做备份    

git  branch  old_master    

#push到远程    

git  push  origin  old_master:old_master   

#本地仓库回退到某个版本  

git  reset  –hard  bae168 

#删除远程的master分支

git  push  origin  :master 

#重新创建master分支 

git  push  origin  master



关于git删除远程分支

一不小心把本地的临时分支push到server上去了,想要删除。
一开始用

git branch -r -d origin/branch-name

不成功,发现只是删除的本地对该远程分支的track,正确的方法应该是这样:

git push origin :branch-name

冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。


### 首次提交代码到 Git 远程仓库的详细流程 在进行首次提交代码到远程仓库时,需要完成初始化本地仓库、关联远程仓库以及推送代码等步骤。以下是完整的操作流程: #### 初始化本地仓库 如果尚未初始化 Git 本地仓库,则需要在项目根目录下运行以下命令: ```bash git init ``` 这将创建一个新的 `.git` 子目录,标志着该目录已成为一个 Git 仓库。 #### 添加文件并提交到本地仓库 接下来,将项目中的所有文件添加到 Git 的暂存区,并提交到本地仓库: ```bash git add . git commit -m "Initial commit" ``` 其中 `git add .` 命令用于将当目录下的所有文件加入暂存区,而 `git commit` 则会记录本次提交的信息 [^3]。 #### 关联远程仓库 使用 `git remote add origin <远程仓库地址>` 命令将本地仓库与远程仓库进行关联。请将 `<远程仓库地址>` 替换为实际的远程仓库 URL: ```bash git remote add origin <远程仓库地址> ``` 此步骤非常重要,因为它建立了本地仓库和远程仓库之间的连接 [^1]。 #### 推送代码到远程仓库 最后一步是将本地仓库的内容推送到远程仓库。对于首次推送,可以使用以下命令: ```bash git push -u origin master ``` 其中 `-u` 参数的作用是设置默认上游分支,这样后续的 `git pull` 和 `git push` 操作就不需要指定具体的分支名称了 。 如果远程仓库已经存在一些初始化文件(例如 README 或 .gitignore),则可能需要使用强制推送以覆盖这些内容: ```bash git push -u -f origin master ``` 这里的 `-f` 参数表示强制推送,它允许覆盖远程仓库中的现有内容 [^2]。 #### 处理冲突(可选) 如果远程仓库中已有其他提交且与本地有冲突,在推送之可能需要先拉取远程仓库的内容并合并: ```bash git pull --rebase origin master ``` 或者使用 `git fetch` 获取远程仓库内容后手动执行 `git merge` 来处理冲突 [^4]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值