首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

git重置--硬留下修改过的、被跟踪的文件

git重置是指将当前分支的指针移动到指定的提交,并且将工作区和暂存区恢复到该提交的状态。在重置过程中,可以选择不同的模式,其中硬重置是一种模式,它会丢弃工作区和暂存区的所有修改,将它们完全恢复到重置的提交状态。

硬重置适用于需要完全放弃当前修改并回到指定提交状态的情况。它会丢弃所有未提交的修改,包括已跟踪的文件的修改。这意味着所有修改过的文件将被还原到重置的提交的内容,且这些文件的修改将无法恢复。

使用硬重置的场景包括:

  1. 撤销一次错误的提交:如果在提交之后发现错误,可以使用硬重置将分支指针移动回正确的提交,并丢弃错误提交之后的修改。
  2. 取消合并操作:如果在合并分支时出现问题,可以使用硬重置取消合并,并将分支指针和文件状态恢复到合并之前的状态。
  3. 回退到历史版本:如果需要回退到某个历史版本,可以使用硬重置将分支指针移动到该提交,并丢弃后续的修改。

腾讯云提供了代码托管服务 CodeCommit,它可以作为一个替代品来管理代码版本。CodeCommit 提供了类似于 Git 的功能,包括分支管理、提交记录、代码比较等。您可以在腾讯云官网了解更多关于 CodeCommit 的信息:CodeCommit产品介绍

请注意,本回答仅提供了一个腾讯云的产品作为参考,其他云计算品牌商也提供类似的代码托管服务,您可以根据实际需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

你收到文件恶意篡改过吗? 摘要算法简介

想象这样场景,有客户给你发机密文件。那你怎么确定你收到文件就是客户发你,而没有第三方恶意篡改过呢? 摘要算法可以解决这个问题。 通过摘要算法,可以将文件生成一个摘要字符串。...内容不一样文件,生成相同摘要字符串概率极低。因此,比较两个文件是否一样只需比较摘要字符串是否一样即可。上面的问题,我们可以这么解决 客户用摘要算法生成机密文件摘要字符串。...客户将机密文件发给你。 客户用另一种渠道将摘要字符串发你。 你将收到文件用和客户一样摘要算法生成摘要字符串。 对比客户发你摘要字符串和你生成摘要字符串。如果相等,则文件没有篡改。...常见摘要算法有 CRC8,MD5,SHA1,SHA512 等。 常见应用场景 1 验证软件是否篡改 大多数大型软件公司或开源组织用摘要算法来校验下载软件是否篡改。...这些软件下载页面,会有下载软件 MD5 或类似的摘要值。 2 对敏感加密 一般从网页向服务器端,发送用户密码会用 MD5 加密。服务器数据库里也会存加密后密码。

44410
  • 妙用 Intellij IDEA 创建临时文件Git 跟踪不到那种

    有时候我们需要在项目之外创建一些临时文件或一些实验性代码,创建在项目中可能一不小心 Git 误提交,不创建项目里又需要切换到其他应用上来回拷贝,对于专注 coding 我们来说,总显得不够流畅 IDEA...创建好这个文件并不存储在我们项目目录中(避免了意外 git push 尴尬),甚至在 IDEA 中切换到其他项目中也可以看到你刚刚创建这个文件,进一步说白一点,这是凌驾在项目之上一个全局功能,...在这里和你正常在项目中写 java 代码没什么区别,你可以使用 git status 命令来验证,结果是 Git 完全不 track ,放心创建临时文件就好了 其实我很常用是创建一个 scratch.sql...files 和 Scratch buffers 不会被 Git 跟踪,但是同样可以通过鼠标右键查看 Local History 来查看过往所有改动 ?...总结 这是一个很小功能,但是在日常开发中真的可以带来很大帮助: 跨越项目的访问 不被 Git跟踪,防止误提交 可以临时测试各种语言代码 可查看改动历史 最后配合预览模式使用,减少应用之间切换

    1.2K30

    Git】616- git命令进阶和复习(带动图效果)

    缺点:一旦删除分支或者分支指针往前走,会丢掉分支信息(原来这个分支做了什么在log中体现不出来) 触发时机:合并 bugfix分支到master分支时,如果master分支状态没有改过,这样合并被称为...,这个部分这篇文章小姐姐用动画图解Git相对好一些 4.1 软重置 最大特点:撤回到特定提交之后,已有的修改会保留 以下图为例:9e78i 提交添加了 style.css 文件,035cc 提交添加了...使用软重置,我们可以撤销提交记录,但是保留新建 style.css 和 index.js 文件。 ?...4.2 重置 最大特点:无需保留提交已有的修改,直接将当前分支状态恢复到某个特定提交下,,重置还会将当前工作目录(working directory)中文件、已暂存文件(staged files...包括合并、重置、还原:基本上记录了对分支任何更 使用场景:假设你不小心使用 git reset 命令重置仓库到某个提交。后面突然想到,重置导致了一些已有的正常代码误删 ?

    1K21

    Git-stash用法总结

    ,所以你可以放心Bug,等到完Bug,提交到服务器上后,再使用git stash apply将以前一半工作应用回来。...解决这个问题办法就是git stash命令。储藏(stash)可以获取你工作目录中间状态——也就是你修改过追踪文件和暂存变更——并将它保存到一个未完结变更堆栈中,随时可以重新应用。...如果尝试应用变更是针对一个你那之后修改过文件,你会碰到一个归并冲突并且必须去化解它。...暂存未跟踪或忽略文件 默认情况下,git stash会缓存下列文件: 添加到暂存区修改(staged changes) Git跟踪但并未添加到暂存区修改(unstaged changes) 但不会缓存一下文件...: 在工作目录中新文件(untracked files) 忽略文件(ignored files) git stash命令提供了参数用于缓存上面两种类型文件

    2.1K10

    【工具箱】GIT使用场景

    无论学习什么技术,都需要了解该技术本质。若是靠死记背该技术提供方法或者语法,终归是知其然而不知其所以然,当发现错误时,你根本不知道是什么原因导致。...然而,这并不足以说明一个文件在不同工作区域所展现状态。我认为两种状态足以表达Git文件,即:未跟踪(Untracked)和已跟踪(Tracked)。...后来发现其中一个文件并不需要在Git中管理,希望能够取消暂存。由于此时文件处于Staged状态,我们只需要删掉Stage中对此文件跟踪即可。...这时需要执行命令是: git rm --cached README.txt 注意:此时取消暂存文件从来就不曾提交过,也即是说没有在Git Repository留下过它身影。...由于Git提交记录是由HEAD指针指向当前分支。重置就是搬动这个指针到指定snapshot。如果说revert是一种安全撤销方式,则reset就是一种危险撤销方式。

    71040

    最全前端Git基础教程

    ] [commit] # 创建一个新分支,并与指定远程分支建立跟踪关系 git branch --track [branch] [remote-branch] # 切换到指定分支,并更新工作区...git checkout [branch-name] # 切换到上一个分支 git checkout - # 将本地分支与指定远程分支建立跟踪关心 git branch --set-upstream...已提交数目多少排名 git shortlog -sn # 显示指定文件何时何人修改过 git blame [file] # 显示暂存区和工作区文件差别 git diff # 显示暂存区和上一次提交差别...# 重置暂存区中指定文件,与先前提交保持一致,但保持工作空间变动不变 git reset [file] # 重置暂存区和工作区中指定文件,并与最近一次提交保持一致,工作空间文件变动不会保留...git reset --hard # 重置暂存区,指向指定某次提交,工作区内容不会被覆盖 git reset [commit] # 重置暂存区和工作区中指定文件,并与指定某次提交保持一致,

    30910

    每个程序员必学10个Git命令

    希望在团队中处理代码时有效协作并跟踪更改程序员来说,版本控制至关重要。Git 是一个版本控制系统,允许您跟踪修订、识别文件版本并在必要时恢复旧版本。...使用该命令示例如下 $ git diff 9.git 状态 ' git status '命令可以帮助显示索引中文件和工作目录中文件状态。该命令将轻松列出未跟踪、修改和暂存文件。...$ git log 14. git 重置 使用 git reset 来“取消跟踪”一个文件,不再有任何指向 Git 存储库链接。...checkout -b 20. git 存储 该命令用于将所有修改过文件暂时存放在工作目录中。...用法:暂时保存所有修改过跟踪文件: $ git stash 用法:列出所有的藏品: $ git stash list 用法:删除最新存储: $ git stash drop 概括 我们已经到了这篇文章结尾

    45300

    Git汇总--版本库操作

    不会重置引用,更不会改变工作区,而是用指定提交状态()下文件()替换掉暂存区中文件。...revert revert 命令十分直观易用,相当于做一次 revert 提交「反操作」并形成一个新 commit。...因此重置一般用于重置暂存区(除非使用--hard参数,否则不重置工作区),而检出命令主要是覆盖工作区(如果不省略,也会替换暂存区中相应文件)。 方式二:不使用路径用法 会改变HEAD头指针。...之所以后面的参数写作,是因为只有HEAD切换到一个分支才可以对提交进行跟踪,否则仍然会进入“分离头指针”状态。在“分离头指针”状态下提交不能引用关联到而可能会丢失。...,如果接下来你还要拉取并整合他们修改过提交,事情就会变得一团糟。

    40941

    看完此文你不会Git,请来找我!

    小结 任何对象都是在工作区诞生和修改; 任何修改都是从进入index区才开始版本控制; 只有把修改提交到本地仓库,该修改才能在仓库留下足迹; 与协作者分享本地更改,需要将更改push到远程仓库 常用...添加已经add文件且存在更改文件Git根路径以下所有文件)到暂存区 (提交修改(modified)和被删除(deleted)文件,不包括新文件(new)) $ git add -u 添加所有变化...--oneline 显示所有提交过用户,按提交次数排序 $ git shortlog -sn 显示指定文件是什么人在什么时间修改过 $ git blame [file] 显示暂存区和工作区代码差异...重置暂存区指定文件,与上一次commit保持一致,但工作区不变 $ git reset [file] 重置暂存区和工作区,与上次commit保持一致 $ git reset --hard 重置当前分支指针为指定...总结  路漫漫其远兮,希望Git及GitHub可以帮我们记录每一个脚印,每一步成长。与诸君共勉。  祝大家2019更上一层楼!

    88820

    git stash用法 || git pull时候发生冲突解决方法之“error: Your local changes to the following files would be

    ,所以你可以放心Bug,等到完Bug,提交到服务器上后,再使用git stash apply将以前一半工作应用回来。...解决这个问题办法就是git stash命令。储藏(stash)可以获取你工作目录中间状态——也就是你修改过追踪文件和暂存变更——并将它保存到一个未完结变更堆栈中,随时可以重新应用。...如果尝试应用变更是针对一个你那之后修改过文件,你会碰到一个归并冲突并且必须去化解它。...暂存未跟踪或忽略文件 默认情况下,git stash会缓存下列文件: 添加到暂存区修改(staged changes) Git跟踪但并未添加到暂存区修改(unstaged changes) 但不会缓存一下文件...: 在工作目录中新文件(untracked files) 忽略文件(ignored files) git stash命令提供了参数用于缓存上面两种类型文件

    82830

    45个 GIT 经典操作场景,专治不会合代码

    我意外做了一次重置(hard reset),我想找回我内容 如果你意外做了 git reset --hard, 你通常能找回你提交(commit), 因为Git对每件事都会有日志,且都会保存几天...no-ff 会为特性分支(feature branch)存在过留下证据, 保持项目历史一致(更多Git资料,参见IDEA 中如何完成 Git 版本回退?)。...跟踪文件(Tracking Files) 我只想改变一个文件名字大小写,而不修改内容 (main)$ git mv --force myfile MyFile 我想从Git删除一个文件,但保留该文件...基本上, 每次HEAD改变, 一条新记录就会增加到reflog。遗憾是,这只对本地分支起作用,且它只跟踪动作 (例如,不会跟踪一个没有记录文件任何改变)。...那里,还有一个重置(hard reset)到一个较旧提交。最新动作出现在最上面以 HEAD@{0}标识.

    1.1K10

    45 个Git经典操作场景,专治不会合代码

    我意外做了一次重置(hard reset),我想找回我内容 如果你意外做了 git reset --hard, 你通常能找回你提交(commit), 因为Git对每件事都会有日志,且都会保存几天...no-ff 会为特性分支(feature branch)存在过留下证据, 保持项目历史一致(更多Git资料,参见IDEA 中如何完成 Git 版本回退?)。...跟踪文件(Tracking Files) 我只想改变一个文件名字大小写,而不修改内容 (main)$ git mv --force myfile MyFile 我想从Git删除一个文件,但保留该文件...基本上, 每次HEAD改变, 一条新记录就会增加到reflog。遗憾是,这只对本地分支起作用,且它只跟踪动作 (例如,不会跟踪一个没有记录文件任何改变)。...那里,还有一个重置(hard reset)到一个较旧提交。最新动作出现在最上面以 HEAD@{0}标识.

    81020

    45个 GIT 经典操作场景,专治不会合代码

    我意外做了一次重置(hard reset),我想找回我内容 如果你意外做了 git reset --hard, 你通常能找回你提交(commit), 因为Git对每件事都会有日志,且都会保存几天...no-ff 会为特性分支(feature branch)存在过留下证据, 保持项目历史一致。...跟踪文件(Tracking Files) 我只想改变一个文件名字大小写,而不修改内容 (main)$ git mv --force myfile MyFile 我想从Git删除一个文件,但保留该文件...基本上, 每次HEAD改变, 一条新记录就会增加到reflog。遗憾是,这只对本地分支起作用,且它只跟踪动作 (例如,不会跟踪一个没有记录文件任何改变)。...那里,还有一个重置(hard reset)到一个较旧提交。最新动作出现在最上面以 HEAD@{0}标识.

    1.7K40

    经典45个git使用技巧与场合,专治不会合代码。

    我意外做了一次重置(hard reset),我想找回我内容 如果你意外做了 git reset --hard, 你通常能找回你提交(commit), 因为Git对每件事都会有日志,且都会保存几天...# or (main) $ git checkout -f 重置某个特殊文件, 你可以用文件名做为参数: $ git reset filename 我想丢弃某些未暂存内容 如果你想丢弃工作拷贝中一部分内容...跟踪文件(Tracking Files) -------------------- 我只想改变一个文件名字大小写,而不修改内容 (main)$ git mv --force myfile MyFile...基本上, 每次HEAD改变, 一条新记录就会增加到reflog。遗憾是,这只对本地分支起作用,且它只跟踪动作 (例如,不会跟踪一个没有记录文件任何改变)。...那里,还有一个重置(hard reset)到一个较旧提交。最新动作出现在最上面以 HEAD@{0}标识.

    1.3K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券