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

Git重置似乎创建了分支,而不是移除提交

Git重置是一种常用的版本控制操作,用于撤销之前的提交或修改历史记录。通过重置,可以将分支指针移动到不同的提交,从而改变当前工作目录的状态。

重置操作有三种模式:软重置(soft reset)、混合重置(mixed reset)和硬重置(hard reset)。

  1. 软重置(soft reset):通过软重置,可以将分支指针移动到指定的提交,但不会改变工作目录的状态。这意味着之前的提交仍然保留在暂存区域(index)中,可以重新提交或修改后再次提交。软重置的命令是git reset --soft <commit>
  2. 混合重置(mixed reset):通过混合重置,可以将分支指针移动到指定的提交,并且会重置暂存区域的内容,但不会改变工作目录的状态。这意味着之前的提交被移除,但修改的文件保留在工作目录中,可以重新添加到暂存区域后再次提交。混合重置是默认的重置模式,可以使用命令git reset --mixed <commit>进行混合重置。
  3. 硬重置(hard reset):通过硬重置,可以将分支指针移动到指定的提交,并且会重置暂存区域和工作目录的内容。这意味着之前的提交被完全移除,修改的文件也会被删除,慎用该操作。硬重置的命令是git reset --hard <commit>

在上述问题中,如果Git重置似乎创建了分支而不是移除提交,可能是因为在重置操作时指定了一个分支名作为参数,而不是具体的提交。这会导致Git将分支指针移动到指定的提交,并创建一个新的分支。

为了正确地移除提交而不是创建分支,应该使用具体的提交ID作为参数进行重置操作,而不是分支名。例如,使用git reset --hard <commit>命令来移除提交并重置工作目录。

腾讯云提供了一系列与Git相关的产品和服务,例如:

  1. 代码托管服务(腾讯云开发者平台):提供了基于Git的代码托管功能,支持团队协作和版本控制管理。产品介绍链接:代码托管服务
  2. 云开发(Tencent CloudBase):提供了一站式云端研发平台,集成了代码托管、云函数、数据库、存储等功能,支持全栈开发和部署。产品介绍链接:云开发

以上是关于Git重置的概念、分类、优势、应用场景以及腾讯云相关产品的介绍。请注意,本答案没有提及其他流行的云计算品牌商,如亚马逊AWS、Azure、阿里云等。

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

相关·内容

动图详解常用的git命令

Merge Conflicts git能够解决一部分合并冲突的问题,但当我们想要合并的两个分支(branch)的同一文件中的同一行代码上有不同的修改,或者一个分支删除了一个文件另一个分支修改了这个文件时...2. git rebase git rebase拷贝当前分支提交,然后将这些提交放在目标分支的顶部。...commit: 合并两个commit: 3. git reset 当我们想丢掉之前提交的修改内容时,就可以使用git reset。...4.git revert 另一种回退commit的方法是使用git revert。git revert创建了一个新的commit,该commit包含了reverted changes。...8. git reflog git reflog是一个非常有用的命令,可以展示已经执行过的所有动作的日志,括合并、重置、还原,基本上包含你对你的分支所做的任何修改。

1.2K10

图解常用的 Git 指令含义

no-fast-forward(--no-ff) 上面的场景很少遇到,基本是:在当前分支分离出子分支后,做了一些修改;分离出的子分支也做了修改。...git reset 可以控制当前分支回撤到某次提交时的状态。 软重置 执行软重置时,撤回到特定提交之后,已有的修改会保留。...使用 git status 指令查看,发现新建的 style.css 和 index.js 的两个文件还在,不过对应的提交记录已经移除。这很好,我们可以对这些文件内容重新编辑,稍后再做提交。...(staged files)全部移除!?...译注:这里的图画的是有问题的——当前主分支并没有新的提交,因此 git merge 的结果是直接将远程分支上的提交添加到当前分支之后,不是如图所示的产生一个合并提交

1.1K20

Git 命令

] 命令 描述 git reset –mixed 重置提交和缓存区域 git reset –soft 仅仅重置提交 git reset –hard 重置提交、缓存区域和工作目录 三棵树 Git...“树” 在我们这里的实际意思是 “文件的集合”,不是指特定的数据结构。 (在某些情况下索引看起来并不像一棵树,不过我们现在的目的是用简单的方式思考它。)...reset 会移动 HEAD 分支的指向, checkout 只会移动 HEAD 自身来指向另一个分支。 下面的速查表列出了命令对树的影响。...git diff 查看任意两棵树的差异 git difftool 可视化工具 git commit 提交 git reset 重置 git rm 从工作区,或者暂存区移除文件 git mv 在暂存区移到文件...git clean 从工作区中移除不想要的文件的命令 git branch 分支管理 git checkout 检出 git merge 合并 git mergetool 合并工具 git log 历史记录

84120

揭秘Git高手的10个秘密武器:让你的工作效率飙升!

不是使用两个分开的命令,一个是git branch branchName来创建分支,然后是git checkout branchName来切换到它。...因为标准的git push操作是将一个新的提交追加到你的远程仓库,不是修改最后的提交。 8、暂存更改 想象你正在同时在两个不同的分支上工作,A和B。...当你尝试使用git checkout B切换到分支B时,Git阻止了这个操作,并显示了一个错误: 我们可以按照错误消息的建议提交更改。但提交更像是一个固定的时间点,并不是一个正在进行中的工作。...应用暂存只是恢复更改,弹出暂存则是恢复更改并将其从暂存中移除。 9、还原Git提交 想象你正在一个Git项目上工作,发现一个特定的提交引入了一些不希望的更改。...混合重置git reset --mixed HEAD^ 这是当你不指定--soft或--hard时使用git reset HEAD^的默认行为。它撤销了最后的提交,并从暂存区中移除了它的更改。

16710

最全的Git常用命令速查-2021版

当我们在工程里面新建了一个文件,默认他是不会自动添加到 git 里面进行管理,而是需要你通过 git add 到里面。 如果是在项目初始化时,我们一般都直接使用 git add ....,与上一次commit保持一致,但工作区不变 $ git reset [file] # 重置暂存区与工作区,与上一次commit保持一致 $ git reset --hard # 重置当前分支的指针为指定...commit,同时重置暂存区,但工作区不变 $ git reset [commit] # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致 $ git reset...# 后者的所有变化都将被前者抵消,并且应用到当前分支 $ git revert [commit] # 暂时将未提交的变化移除,稍后再移入 $ git stash $ git stash pop 像代码回滚这类危险操作...$ git archive 这个一般用得很少,现在基本都用 CICD 自动构建了,发布这些基本都是使用镜像发布了,Git 现在大都只用作代码托管用。

28330

Git秘籍: Git and Git Flow Cheat Sheet

索引 配置 配置文件 创建 本地修改 搜索 提交历史 移动/重命名 分支与标签 更新与发布 合并与重置 撤销 Git Flow 配置 列出当前配置: $ git config --list 列出 repository...---- 合并与重置分支合并到当前 HEAD 中: $ git merge 列出合并的分支: $ git branch --merged 将当前 HEAD 版本重置分支中: 请勿重置已发布的提交...git checkout HEAD 重置一个提交(通过创建一个截然不同的新提交): $ git revert 将 HEAD 重置到指定的版本,并放弃该版本之后的所有修改: $ git reset -...创建一个新特性 下面操作创建了一个基于 'develop' 的新特性分支,并切换到该分支git flow feature start MYFEATURE 完成新特性的开发 完成开发新特性。...它执行以下几个动作: 归并 release 分支到 'master' 分支 用 release 分支名打标签 归并 release 分支到 'develop' 分支 移除 release 分支 git

1.7K20

Git 的一些事

5.png 代码回滚之Reset、Revert、 Checkout 6.png Reset 将一个分支的末端指向另一个提交,可以用来移除当前分支的一些提交。...文件层面上,不会移动HEAD指针,也不会切换到其他分支上,只是更改workspace,不是stage。...将文件从缓存区中移除 git checkout 提交层面 切换分支或查看旧版本 git checkout 文件层面 舍弃工作目录中的更改 git revert 提交层面 在公共分支上回滚更改 git...​ # 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变 $ git reset commit-SHA ​ # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定...​ # 新建一个commit,用来撤销指定commit # 后者的所有变化都将被前者抵消,并且应用到当前分支 $ git revert commit-SHA ​ # 暂时将未提交的变化移除,稍后再移入

11.5K20

三年 Git 使用心得 & 常见问题整理

它会取消这个文件的暂存,不覆盖任何更改 $ git reset # 重置暂存区最近的一次提交,但工作区的文件不变 $ git reset # 等价于 $ git reset HEAD...^ # 将当前分支的指针指向为指定 commit(该提交之后的提交都会被移除),同时重置暂存区,但工作区不变 $ git reset # 等价于 $ git reset --mixed...commit(该提交之后的提交都会被移除),同时重置暂存区、工作区 $ git reset --hard git reset 有很多种用法。...它是在提交记录最后面加上一个撤销了更改的新提交不是从项目历史中移除这个提交,这避免了 Git 丢失项目历史。 「撤销(revert)应该用在你想要在项目历史中移除某个提交的时候」。...因为两个命令的目的不同,它们的实现也不一样:重设完全地移除了一堆更改,撤销保留了原来的更改,用一个新的提交来实现撤销。

2.7K50

工作流一目了然,看小姐姐用动图展示10大Git命令

当我们想要合并的两个分支的同一文件中的同一行代码上有不同的修改,或者一个分支删除了一个文件另一个分支修改了这个文件时,Git 就不知道如何取舍了。 在这样的情况下,Git 会询问你想要保留哪种选择?...当尝试合并这些分支时,Git 会向你展示冲突出现的位置。我们可以手动移除我们不想保留的修改,保存这些修改,再次添加这个已修改的文件,然后提交这些修改。 ? 完成!...软重置重置会将 HEAD 移至指定的提交(或与 HEAD 相比的提交的索引),不会移除提交之后加入的修改!...硬重置 有时候我们并不想保留特定提交引入的修改。不同于软重置,我们应该再也无需访问它们。Git 应该直接将整体状态直接重置到特定提交之前的状态:这甚至包括你在工作目录中和暂存文件上的修改。 ?...假设 dev 分支上的提交 76d12 为 index.js 文件添加了一项修改,而我们希望将其整合到 master 分支中。我们并不想要整个 dev 分支只需要这个提交! ?

1.2K10

看小姐姐用动图展示 10 大 Git 命令

当我们想要合并的两个分支的同一文件中的同一行代码上有不同的修改,或者一个分支删除了一个文件另一个分支修改了这个文件时,Git 就不知道如何取舍了。 在这样的情况下,Git 会询问你想要保留哪种选择?...当尝试合并这些分支时,Git 会向你展示冲突出现的位置。我们可以手动移除我们不想保留的修改,保存这些修改,再次添加这个已修改的文件,然后提交这些修改。...软重置重置会将 HEAD 移至指定的提交(或与 HEAD 相比的提交的索引),不会移除提交之后加入的修改!...硬重置 有时候我们并不想保留特定提交引入的修改。不同于软重置,我们应该再也无需访问它们。Git 应该直接将整体状态直接重置到特定提交之前的状态:这甚至包括你在工作目录中和暂存文件上的修改。...假设 dev 分支上的提交 76d12 为 index.js 文件添加了一项修改,而我们希望将其整合到 master 分支中。我们并不想要整个 dev 分支只需要这个提交

47220

Sourcetree使用教程

冲突解决 配置忽略文件 SourceTree&Git部分名词解释 · SourceTree拥有可视化界面的项目版本控制软件,适用于git项目管理 · 使用远程仓库的好处就是可以不同地方不同的电脑直接拉取项目开发...基础操作 拉取远程项目 1) 点击+号新增一个tab 2) 点击clone克隆远程项目 3) 输入远程仓库地址 4) 选择保存在本地的位置和项目名称 如果箭头指向的仓库类型表明“这不是一个标准的Git仓库...所以我们一般会在gitlab远程新建一个自己的分支 这样分支就创建了,创建完成后左侧会出现,双击可以切换当前分支,在master分支改了代码,切换到test20211014分支的时候不会出现master...当多人协作开发时,可能会出现,不同人员对同一文件进行操作,从而引起合并冲突,比如你再dev_20211014上开发了一个功能涉及到A.java,你的同事也有个需求要开发,在feature 分支上新建了dev...,再推送) o 检出(checkout):切换不同分支 o 添加(add):添加文件到缓存区 o 移除(remove):移除文件至缓存区 o 暂存(git stash):保存工作现场 o 重置(reset

4.2K22

10.7 Git 内部原理 - 维护与数据恢复

通常这是因为你强制删除了正在工作的分支,但是最后却发现你还需要这个分支;亦或者硬重置了一个分支,放弃了你想要的提交。 如果这些事情已经发生,该如何找回你的提交呢?...下面的例子将硬重置你的测试仓库中的 master 分支到一个旧的提交,以此来恢复丢失的提交。...引用日志(reflog)也可以通过 git update-ref 命令更新,我们在 Git 引用 有提到使用这个命令不是是直接将 SHA-1 的值写入引用文件中的原因。...接下来,假设你丢失的提交因为某些原因不在引用日志中 - 我们可以通过移除recover-branch 分支并删除引用日志来模拟这种情况。...你必须使用 git rm --cached 命令来移除文件,不是通过类似 rm file 的命令 - 因为你需要从索引中移除它,不是磁盘中。

80020

git常用命令总结

合并与重置分支合并到当前HEAD中: $ git merge 将当前HEAD版本重置分支中:请勿重置已发布的提交!...> 撤销 放弃工作目录下的所有修改: $ git reset --hard HEAD 移除缓存区的所有文件(i.e....撤销上次git add): $ git reset HEAD 放弃某个文件的所有本地修改: $ git checkout HEAD 重置一个提交(通过创建一个截然不同的新提交) $ git...revert 将HEAD重置到指定的版本,并抛弃该版本之后的所有修改: $ git reset --hard 将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改:...init git submodule update 移除 1.删除git cache和物理文件夹 2.删除.gitmodules的内容(或者整个文件) 因为本例只有两个子模块,直接删除文件

64090

走在前沿的弄潮儿,怎能不会Git的那些奇技淫巧

目前 Git 奇技淫巧项目已经获得了 6.8K 的 Star,他还构建了另一个 1.1W+ 的开源项目集锦 HellowGitHub。...更改远程仓库的 url 增加远程仓库 举出所有远程仓库 查看两个星期内的改动 把 A 分支的某一个 commit,放到 B 分支上 给 git 命令起别名 保存当前的更改,但不用提交 commit 储存当前状态...新建并切换到新分支上,同时这个分支没有任何 commit 显示任意分支某一文件的内容 clone 下来指定的单一分支 忽略某个文件的改动 忽略文件的权限变化 以最后提交的顺序举出所有 Git 分支 在...git reset –mixed HEAD^ # 回退至上个版本,它将重置 HEAD 到另外一个 commit, 并且重置暂存区以便和 HEAD 相匹配,但是也到此为止。工作区不会被更改。...这样你可以 reset 到任何一次更新了 HEAD 的操作之后,不仅仅是回到当前分支下的某个 commit 之后的状态。

68830

7.6 Git 工具 - 重写历史

Git 没有一个改变历史工具,但是可以使用变基工具来变基一系列提交,基于它们原来的 HEAD 不是将其移动到另一个新的上面。...它将会从你在命令行中指定的提交(HEAD~3)开始,从上到下的依次重演每一个提交引入的修改。 它将最旧的不是最新的列在上面,因为那会是第一个将要重演的。.... # # Note that empty commits are commented out 如果,指定 “squash” 不是 “pick” 或 “edit”,Git 将应用两者的修改并合并提交信息在一起...那里,可以通过 git reset HEAD^ 做一次针对那个提交的混合重置,实际上将会撤消那次提交并将修改的文件未暂存。...最后将可以看到 Git 重写树与提交然后移动分支指针。 通常一个好的想法是在一个测试分支中做这件事,然后当你决定最终结果是真正想要的,可以硬重置 master 分支

66060

Git Pro深入浅出(二)

HEAD^ # 查看d921970的祖父提交 $ git show d921970~2 (3)提交区间 # 在develop分支不在master分支中的提交 $ git log master..develop...# 在master分支不在develop分支中的提交 $ git log develop..master # 在你当前分支不在远程 origin 中的提交 $ git log origin/master...交互式暂存 当你修改一组文件后,希望这些改动能放到若干提交不是混杂在一起成为一个提交时,交互式暂存变得非常有用。 $ git add -i/--interactive ? 3....“树” 在我们这里的实际意思是“文件的集合”,不是指特定的数据结构。...如果你希望 Git 简单地选择特定的一边并忽略另外一边不是让你手动合并冲突,你可以传递给 merge 命令一个 -Xours 或 -Xtheirs 参数。

1.1K31

Git 基础命令

#重置暂存区的指定文件,与上一次 commit 保持一致,但工作区不变 $ git reset [file] #重置暂存区与工作区,与上一次 commit 保持一致 $ git reset --hard...#重置当前分支的指针为指定 commit,同时重置暂存区,但工作区不变 $ git reset [commit] #重置当前分支的 HEAD 为指定 commit,同时重置暂存区和工作区,与指定 commit...stash apply stash@{1} 核武器级选项 filter-branch # 从每一个提交移除一个文件:指 git add ....的内容完整的上传到仓库,但是当希望开源这个内容的时候,需要移除一些无用的文件,--tre-filter 选项在的每一个提交后,运行指定的命令,然后重新提交结果。...如果想要让 trunk 子目录作为每一个提交的新的项目根目录,filter-branch 也可以帮助你那么做,再在新项目根目录是 trunk 子目录且 Git 会自动移除所有不影响子目录的提交

46130

走在前沿的弄潮儿,怎能不会Git的那些奇技淫巧

目前 Git 奇技淫巧项目已经获得了 6.8K 的 Star,他还构建了另一个 1.1W+ 的开源项目集锦 HellowGitHub。...更改远程仓库的 url 增加远程仓库 举出所有远程仓库 查看两个星期内的改动 把 A 分支的某一个 commit,放到 B 分支上 给 git 命令起别名 保存当前的更改,但不用提交 commit 储存当前状态...新建并切换到新分支上,同时这个分支没有任何 commit 显示任意分支某一文件的内容 clone 下来指定的单一分支 忽略某个文件的改动 忽略文件的权限变化 以最后提交的顺序举出所有 Git 分支 在...git reset –mixed HEAD^ # 回退至上个版本,它将重置 HEAD 到另外一个 commit, 并且重置暂存区以便和 HEAD 相匹配,但是也到此为止。工作区不会被更改。...这样你可以 reset 到任何一次更新了 HEAD 的操作之后,不仅仅是回到当前分支下的某个 commit 之后的状态。

89210

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券