git撤销本地代码(恢复至远程代码)

参考:https://www.jianshu.com/p/37f3a7e4a193

一、git撤销本地代码修改(恢复至远程代码)

情况一:未使用 git add 缓存代码时

// 放弃单个文件修改,注意不要忘记中间的"--",不写就成了检出分支了!
git checkout -- filepathname
// 放弃所有的文件修改
git checkout .  

此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

情况二:已经使用了 git add 缓存了代码:

可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所有的缓存可以使用 git reset HEAD . 命令。

此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。

情况三:已经用 git commit 提交了代码:

可以使用 **git reset --hard HEAD^ 来回退到上一次commit的状态。
此命令可以用来回退到任意版本:
git reset --hard commitid **

注意:谨慎使用git reset --hard命令,如不小心使用此命令删除了只add未commit的代码,可参考https://blog.csdn.net/fengruoying93/article/details/105189714进行数据恢复

你可以使用 **git log **命令来查看git的提交历史。git log 的输出如下,之一这里可以看到第一行就是 commitid:
图省略...

二、git向远程仓库推送和获取代码

1、推送代码到远程仓库

git push [remote_name] [branch_name]
默认使用origin和master

2、git fetch [remote-name]可以从远程仓库抓取数据到本地。
也可以使用git pull

git pull origin master 相当于是从远程获取最新版本并merge到本地

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将代码恢复到最初的状态,可以执行以下步骤。 首先,使用以下命令将当前分支的所有修改和撤销的文件还原到最初提交的状态: ``` git reset --hard <COMMIT_HASH> ``` 在这里,`COMMIT_HASH`是最初提交的SHA哈希值,可以使用`git log`命令查看。 接下来,使用以下命令强制推送到远程分支: ``` git push -f <REMOTE> <BRANCH> ``` 在这里,`REMOTE`是远程代码库的名称,`BRANCH`是要将更改推送到的分支名称。 这将使远程分支与本地分支匹配。请注意,这将覆盖远程分支上所有更改的历史记录,并且其他人正在使用该分支的任何更改都将永久丢失。 因此,我们建议在执行此操作之前与团队成员进行讨论,并确保您不会意外破坏所在项目的历史记录。 ### 回答2: 在使用git管理代码的过程中,有时会因为各种原因需要把代码恢复到最开始的状态,这个过程可以通过使用撤销操作、回滚版本、重置分支等方法实现。 一、使用撤销操作 如果只对某些文件进行撤销操作,可以使用以下命令: ``` git checkout -- filename ``` 其中filename代表要撤销的文件名,这会撤销该文件的修改,恢复到上一次提交的状态。 如果要撤销所有文件的修改,可以使用以下命令: ``` git checkout . ``` 这个命令会撤销所有未提交的修改,恢复到上一次提交的状态。 二、回滚版本 如果想要回退到某个历史版本,可以使用以下命令: ``` git log ``` 使用这个命令可以查看所有的历史版本。 然后找到想要回退的版本的commit ID,使用以下命令进行回退: ``` git reset --hard commit ID ``` 其中commit ID代表要回退到的版本的commit ID。这个命令会将代码回退到该版本的状态,同时删除后续的提交记录。 三、重置分支 如果想要将分支恢复到最开始的状态,可以使用以下命令: ``` git reset --hard HEAD ``` 这个命令会将分支恢复到最开始的状态,同时会删除之后的所有提交记录。 需要注意的是,这个操作会把本地的修改都删除掉,如果有些修改是还需要保留的,应该先将它们提交到远程仓库再进行重置分支操作。 通过以上三种方法,可以实现将代码恢复到最开始的状态。但是这些操作都是有风险的,因为它们都会删除一些提交记录,如果操作不当可能会导致代码的丢失,所以在进行这些操作时一定要慎重。 ### 回答3: 首先,需要明确“最开始的状态”指的是什么。在Git中,每次提交都会生成一个commit对象,每个commit对象都有一个唯一的哈希值,通过这个哈希值可以回到这个版本的代码。因此,如果要恢复到最开始的状态,需要找到第一个提交,也就是起始点,然后将代码恢复到这个起始点。 具体操作如下: 1.查看Git的提交历史:可以使用git log命令查看所有的提交历史。 2.找到起始点:从提交历史中找到第一个提交的哈希值。 3.将代码恢复到起始点:使用git reset命令将代码恢复到起始点。具体命令为:git reset --hard 起始点哈希值 此时,代码就被恢复到了最开始的状态。 需要注意的是,这个操作会将所有之前的提交记录删除,因此在执行之前需要先备份所有最新的代码。并且,如果代码库中已经有其他人的提交,因为Git的提交历史是以链式结构进行管理的,因此恢复到之前的状态会删除之前的所有提交历史,其他人的提交也会被删除。因此,在执行此操作之前,需要确保所有人都已知晓并同意。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值