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

Git将分支回滚到上一次提交,同时将主分支保留在原来的位置(并对该分支进行PR?)

Git是一个分布式版本控制系统,它可以帮助开发者管理代码的版本和变更。当需要回滚分支到上一次提交时,可以使用以下步骤:

  1. 首先,确保当前所在的分支是需要回滚的分支。可以使用git branch命令查看当前所在的分支,并使用git checkout <branch>命令切换到需要回滚的分支。
  2. 然后,使用git log命令查看该分支的提交历史,找到需要回滚的上一次提交的commit hash。
  3. 使用git revert <commit>命令回滚到上一次提交。这将创建一个新的提交,将上一次提交的更改撤销。
  4. 如果需要将回滚后的更改提交到主分支,可以使用以下步骤进行Pull Request(PR):
  5. a. 使用git checkout <main-branch>命令切换到主分支。
  6. b. 使用git pull origin <main-branch>命令拉取最新的主分支代码。
  7. c. 使用git checkout -b <new-branch>命令创建一个新的分支,用于提交回滚后的更改。
  8. d. 在新分支上进行必要的修改和调整。
  9. e. 使用git add <file>命令将修改的文件添加到暂存区。
  10. f. 使用git commit -m "Commit message"命令提交更改。
  11. g. 使用git push origin <new-branch>命令将新分支推送到远程仓库。
  12. h. 在代码托管平台上创建一个Pull Request,将新分支的更改合并到主分支。

对于以上过程中涉及到的名词和概念,可以简要解释如下:

  • 分支(Branch):Git中用于并行开发和管理代码的独立线路,可以在分支上进行修改和提交,不影响主分支的代码。
  • 提交(Commit):Git中的一个操作单位,表示一次代码的变更。每次提交都有一个唯一的commit hash用于标识。
  • 版本控制系统(Version Control System):用于管理和跟踪代码变更的系统,可以记录代码的历史和不同版本之间的差异。
  • 撤销(Revert):Git中的一个操作,用于撤销指定提交的更改,创建一个新的提交来还原之前的代码状态。
  • Pull Request(PR):一种代码审查和合并机制,通常用于将分支的更改合并到主分支,需要经过审查和讨论后才能合并。
  • 远程仓库(Remote Repository):存储代码的中央服务器,用于多人协作和代码的备份与共享。

腾讯云提供的相关产品和服务包括:

  • 代码托管平台:腾讯云开发者平台(https://cloud.tencent.com/product/coding)
  • 代码审查工具:腾讯云代码扫描(https://cloud.tencent.com/product/css)
  • 版本控制系统:腾讯云开发者平台的Git仓库(https://cloud.tencent.com/product/coding)
  • 云原生应用部署:腾讯云容器服务(https://cloud.tencent.com/product/tke)
  • 云服务器:腾讯云云服务器(https://cloud.tencent.com/product/cvm)
  • 数据库:腾讯云数据库(https://cloud.tencent.com/product/cdb)
  • 网络安全:腾讯云安全产品(https://cloud.tencent.com/product/security)
  • 人工智能:腾讯云人工智能平台(https://cloud.tencent.com/product/ai)
  • 物联网:腾讯云物联网平台(https://cloud.tencent.com/product/iotexplorer)
  • 移动开发:腾讯云移动开发平台(https://cloud.tencent.com/product/mgp)
  • 存储:腾讯云对象存储(https://cloud.tencent.com/product/cos)
  • 区块链:腾讯云区块链服务(https://cloud.tencent.com/product/tbaas)
  • 元宇宙:腾讯云元宇宙解决方案(https://cloud.tencent.com/solution/metaverse)

请注意,以上链接仅供参考,具体的产品和服务选择应根据实际需求进行评估和决策。

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

相关·内容

Git 常用技巧

:branch_name  远程对应分支删除 git push origin  把当前后(干净)内容push到远程 git merge branch_bk  备份合并到当前分支 git reset...【reset参数:--soft仅HEAD指向(对于到上一次提交而言,相当于撤销commit),--mixedHEAD和index(相当于撤销commit和add),–hardHEAD、index...其效果相当于another分支多个commit合并成一个,放在当前分支上,原来commit历史则没有拿过来。...四、git缓存 git stash 作用:缓存本地工作区内容,以临时切换到其他分支进行开发,待开发完成,回到分支,只需git stash pop,即可返回缓存在堆栈内容。...注意:使用stash需谨慎,千万不要以为stash是存储在当前分支缓存,而是所有分支公用堆栈。如果多个分支同时stash,虽然不是不可以,但当你再次pop时候,容易造成混乱。

41940

git常规操作

: 查看所有分支远程分支 5.git branch xxx : 创建本地分支  6.git push -u origin xxx : 创建远程分支推本地分支仓库代码到远程分支一次提交分支时候使用...: 创建同时切换分支 git push -u origin xxx : 第一次提交分支 8.git checkout 版本号:代码git log 查看历史版本号) 9.git reset...xxx : 撤销文件暂存状态(git add .)/ 代码硬 10.git merge xxx : 分支合并 11. git pull : 拉远程仓代码 12.git pull origin...)到上提交里面 15.强制回退(一般建议操作) 问题:分支代码未审核完但被合并到主线 解决方法:强制回退 1.回退到未合并前状态 git reset --hard 187q340e4ge90bkajhepfhqp94fhuejefbiqugfo...开发环境本地检查B分支代码,去往代码托管平台提交合并develop分支申请。 5.审核通过同时B分支代码功能merge到develop分支

63710

Git如何恢复之前版本,resetrevert在命令行和IDEA上操作步骤

如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支分支,即master分支。...如下图,假设只有一个分支: 方法说明 方法1,Reset Head指针,会抛弃原来提交记录,使Head指针强制指向指定版本。...(推荐) Git reset 原理: git reset作用是修改HEAD位置,即将HEAD指向位置改变为之前存在某个版本,如下图所示,假设我们要回退到版本一: 适用场景: 如果想恢复到之前某个提交版本...已经add到index(暂存区)文件不会,任然保留 4.2 Mixed Mixed模式:在选择回退点之后所有更改将会保留但不会被git追踪下来。...回退到版本1,已提交并丢弃版本2会保留在本地,未提交版本3同样会保留 如果不想保留,可以选择Hard reset;如果要保留,会自动stash unstash,内容保存在本地工作区。

5.9K20

Git分支使用规范

遵循一个好规章制度能让你工作事半功倍。同时也可以展现出你做事认真的态度以及你专业性,不会显得杂乱无章,管理困难。Git分支规范也是一样。...分支约定 Git Flow有主分支和辅助分支两类分支,通常分支也被称为长期分支分支用于组织与软件开发、部署相关活动; 辅助分支组织为了解决特定问题而进行各种活动。...仅在发布新可供部署代码时才更新master分支代码 每次更新master,都需master添加指定格式tag,用于发布或 master分支是保护分支,不可直接push到远程仓master...(遵循GitHub语义化版本命名规范) 版本号仅标记于master分支,用于标识某个可发布/版本代码 master标记tag意味着tag能发布到生产环境 master分支代码一次更新(合并...严禁注释内容过于简单或不能明确表达提交内容! 合理控制提交内容颗粒度,一次commit含一个独立功能点。严禁一次提交涵盖多个功能项。

52831

headresetrevertrebase代码全解:git提交记录背后原理

如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支分支,即master分支。...之所以这样强调,是因为 "git reset" 会抹掉历史,用在已经 push 记录上会带来各种问题;而 "git revert" 用于某次提交内容,生成新提交,不会抹掉历史。...命令是否抹掉历史适用场景git reset是,历史消失本地未push记录git revert否,历史记录保留,后重新生成提交记录已push内容git reset某次提交确保还没其他人提交之前...,进行强制——重置HEAD(当前分支版本顶端)到另外一个commitgit reset --hard HEAD~2 git reset 代码撤回--hard 和 --soft 及默认mixed--...Branches  ->un protectedgit revert放弃某次提交git revert 之前提交仍会保留在git log中,而此次撤销会做为一次提交

1.3K21

工作中如何优雅使用 Git

前言 在本系列前两篇博文中,笔者 Git 以及 Git flow 进行了大致介绍,相信各位读者已经 Git 有了大致了解。...Develop 分支 - 开发分支:用作平时开发分支一直存在,永远是功能最新最全分支,所有的 feature、release 分支都是从 develop 分支上拉。...当我们需要在本地合入其他分支提交时,如果我们不想整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用 git cherry-pick 了。...git reset git reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以这想象成“改写历史”。git reset 向上移动分支原来指向提交记录就跟从来没有提交过一样。...赶紧。改完代码测试也没有问题,但是上线发现你修改影响了之前运行正常代码报错,必须

59230

Git 代码与找回艺术

[git-working-area.png] 一个基本 Git 工作流程如下: 在工作区中修改文件 暂存文件,文件存放在暂存区 改动从暂存区提交到本地仓库 从本地仓库推送到远端仓库 常见代码场景...要回滚到 commit, commit 之后提交记录会被丢弃。...示例: [change-in-local-repo.png] git reset 默认会将被丢弃记录所改动文件保留在工作区中,以便重新编辑和再提交。...之所以这样强调,是因为 "git reset" 会抹掉历史,用在已经 push 记录上会带来各种问题;而 "git revert" 用于某次提交内容,生成新提交,不会抹掉历史。...话题感兴趣可进一步了解:https://github.com/git/git/blob/master/Documentation/howto/revert-a-faulty-merge.txt

1.5K20

高频使用 Git 命令

checkout -- file 复制代码 git commit 天天打交道命令,这里说一些很常见姿势 # 新修改内容,添加到上提交中,减少提交日志 # --no-eidt:是跳过进入编辑器,...硬性,简单粗暴,直接抛弃之后改动(log 还是有保留,内容不要而已) git reset --hard commit_sha1 # 软性, 跟 rebase 常规用法差不多效果,可以把提交东西丢暂存区和工作区..., # HEAD 指向改变会对应 commit,之后再考虑怎么 commit git reset --soft commit_sha1 # 软一个版本,可以理解为撤销最近一次 commit...代码,因为多人在上面协作, revert 可以平稳代码,但却保留提交记录,不会让协作的人各种冲突!...温馨提示: 本地提交之前,最好把基准点变为需要合并分支,这样提交 PR/MR 时侯就不会冲突(本地来解决冲突) 不要在公共分支上变基!!!一变其他协作者基本都一堆冲突!

65630

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

# 滚到最近一次提交 # 如果修改某些文件后,没有提交到暂存区,此时到上一次提交 # 如果是已经修改文件提交到仓库了,这时再用这个命令无效 # 因为滚到是之前自己修改后提交版本...$ git checkout HEAD $ git checkout HEAD -- filename # 滚到最近一次提交上一个版本 $ git checkout HEAD^ # 滚到最近一次提交上...^ # 当前分支指针指向为指定 commit(提交之后提交都会被移除),同时重置暂存区,但工作区不变 $ git reset # 等价于 $ git reset --mixed...「当你用 reset 滚到了某个版本后,那么在下一次 git 提交时,之前版本后面的版本会被作为垃圾删掉。」...,如果你不小心删了别人上传文件,这时候想要再拉取别人分支是没用,会显示 already-up 这时候可以代码,重新拉取。

2.7K50

Git小知识-for QA

1 分支概念 master分支 解释:分支,创建一个代码仓库后默认在master分支上 开发分支 解释:有开发人员根据项目或功能创建分支,需要以master最新代码为基础,创建一个全新分支推送到远端...merge(合并)到一个公共分支,目的是为了测试能同时进行多个项目的测试。...:git reset --hard head ;其中head即为某次具体提交,使用SHA-1码作为唯一标志,回退到之前提交; commit:提交一次代码; push:推送到远端; pull-request...rtag 用途:用来记录线上环境打包产物名称,可以用来作为查找某一次功能打包时间点,大多数情况下作为线上发布tag_name。...6 线上回 线上回后操作步骤 :使用上一次发布到线上rtag(rtag所在线上功能必须正常)重新部署线上,此时master代码并没有被reset; 后:此时线上功能已经回到上一次发布功能

59020

编程_Git基础教程

git rm -f hello.txt(已经放到暂存区文件,需要使用强制删除指令-f) git rm —cached hello.txt(文件从暂存区中移除,但保留在工作区) git rm -r...git stash(当前修改存储起来) git stash list(查看存储列表) git stash clear(清除所有存储) git stash pop(应用最后一次存储,删除) git stash...)(Untracked:未暂存) 10、Reset 撤销修改 git reset(暂存区文件重置到跟上一次commit保持一致,工作区文件保持不变) git reset HEAD^(回退所有内容到上一个提交...git reset (提交记录,但本地代码不回git reset --hard HEAD(撤销工作区和暂存区所有内容,慎用!)...git reset --hard (提交记录和本地代码) // reset会清掉指定commitID后所有提交,已提交远端记录,慎用!!!

56610

Git常用命令汇总篇(附使用详细介绍)

这些命令是为了帮助开发者更有效率地进行版本控制,包括创建和切换分支提交更改,合并分支等等。 通过这些命令,开发者可以轻松地管理代码不同版本,跟踪和更改,以及协作其他开发者。...· git log --graph 会以图形化方式显示提交历史记录,查看分支和合并历史非常有帮助。...· git branch -v 会列出所有的分支,以及每个分支最后一次提交信息。...这对于在进行一些复杂任务,如切换分支或拉取新更新时,需要暂时保存当前工作状态非常有用。 · git stash apply 用于最近一次保存暂存修改应用到工作目录。...回退操作 git reset --hard HEAD^ 用于代码库回退到上一个版本。其中,HEAD^表示当前版本上一个版本,如果你想回退到上上个版本,可以使用HEAD^^,以此类推。

44440

CICD 改进方案设计

设计旨在支持 Kubernetes (K8s) 和虚拟机 (VM) 环境中应用程序部署,利用 GitHub Actions 和 Jenkins 实现 CI/CD 流程。1....运行状态检查: 检查应用程序在部署环境中运行状态。监控配置项目检查: 检查监控配置是否正确,包括资源监控、日志监控和业务监控覆盖。备份/检查: 检查备份和机制是否正常工作。6....非分支 + tag 构建镜像标签: stage + git commit_id_前7位 + build num。...GitOps Workflow 分支示意图初始化阶段 (Init stage): 包括代码提交PR、CI 作业和 CD 作业。...(资源监控 日志监控,业务监控覆盖)备份/检查提供下github branch 分支模型非分支 无tag 构建镜像tag: dev+git commit_id_前7位+ build num非分支

12310

Git 工作流程

本文介绍三种广泛使用工作流程: Git flow Github flow Gitlab flow 如果你Git还不是很熟悉,可以先阅读下面的文章。...它指的是,需求是开发起点,先有需求再有功能分支(feature branch)或者补丁分支(hotfix branch)。完成开发后,分支就合并到分支,然后被删除。...Git flow 详细介绍,请阅读我翻译中文版《Git 分支管理策略》。 2.2 评价 Git flow优点是清晰可控,缺点是相对复杂,需要同时维护两个长期分支。...Pull Request被接受以后,issue关闭,原始分支就应该删除。如果以后issue重新打开,新分支可以复用原来名字。...前者不利于保持commit信息清晰,也不利于以后,建议总是采用后者(即使用--no-ff参数)。只要发生合并,就要有一个单独合并节点。

1K120

Git 工作流程

本文介绍三种广泛使用工作流程: Git flow Github flow Gitlab flow 如果你Git还不是很熟悉,可以先阅读下面的文章。...它指的是,需求是开发起点,先有需求再有功能分支(feature branch)或者补丁分支(hotfix branch)。完成开发后,分支就合并到分支,然后被删除。...Git flow 详细介绍,请阅读我翻译中文版《Git 分支管理策略》。 2.2 评价 Git flow优点是清晰可控,缺点是相对复杂,需要同时维护两个长期分支。...Pull Request被接受以后,issue关闭,原始分支就应该删除。如果以后issue重新打开,新分支可以复用原来名字。...前者不利于保持commit信息清晰,也不利于以后,建议总是采用后者(即使用--no-ff参数)。只要发生合并,就要有一个单独合并节点。

55030

Git必知必会

.png] .git文件中另一个非常重要文件就是HEAD,存储是当前位置指针,指向当前工作区分支。...:当前目录下所有发生修改待加入暂存区文件加入暂存区 git commit -m "Your Message":提交到暂存区内容提交,生成一个新版本节点保存到版本库中,留下message git...reset --hard HEAD^或 git reset --hard HEAD~:代码库到上一个版本 git reset --hard HEAD^^:往上回两次,以此类推 git reset...--hard HEAD~100:往上回100个版本 每次回不会删除其他版本节点,滚到某一版本之后,当前目录所有文件将会变成版本文件。...为了解决合并冲突 问题,于是就有了分支概念,当多个开发者同时工作时候,可以在本来版本控制流上产生多个分支,当各自处理完后,再将自己分支分支合并。

61530

一文弄懂 Gitflow、Github flow、Gitlab flow 工作流

它指的是,需求是开发起点,先有需求再有功能分支(feature branch)或者补丁分支(hotfix branch)。完成开发后,分支就合并到分支,然后被删除。...Git flow 详细介绍,请阅读我翻译中文版《Git 分支管理策略》。 2.2 评价 Git flow优点是清晰可控,缺点是相对复杂,需要同时维护两个长期分支。...Pull Request 被接受以后,issue关闭,原始分支就应该删除。如果以后issue重新打开,新分支可以复用原来名字。...前者不利于保持commit信息清晰,也不利于以后,建议总是采用后者(即使用—no-ff参数)。只要发生合并,就要有一个单独合并节点。...(前提是,分支只有你一个人开发,且没有跟master合并过。) ? 这可以采用rebase命令附带squash操作,具体方法请参考我写Git 使用规范流程》。

19.8K53

CICD 改进方案设计

这主要是通过以下方式实现:自动化部署和: GitOps 应用程序部署和配置管理集中到 Git 仓库中,利用版本控制和自动化流程实现自动部署和。...运行状态检查: 检查应用程序在部署环境中运行状态。监控配置项目检查: 检查监控配置是否正确,包括资源监控、日志监控和业务监控覆盖。备份/检查: 检查备份和机制是否正常工作。6....分支模型和 Docker 镜像标签策略非分支无 tag 构建镜像标签: dev + git commit_id_前7位 + build num。...非分支 + tag 构建镜像标签: stage + git commit_id_前7位 + build num。...(资源监控 日志监控,业务监控覆盖)备份/检查提供下github branch 分支模型非分支 无tag 构建镜像tag: dev+git commit_id_前7位+ build num非分支

15110

Git 基础操作

可以这想象成“改写历史” git reset 向上移动分支原来指向提交记录就跟从来没有提交过一样 revert git reset 很方便,但是这种“改写历史”方法远程分支是无效 为了撤销更改分享给别人...git cherry-pick targetCommitID # 摘取需要提交到 main 分支 修改过去一次提交内容 rebase 思路: 先用 git rebase -i 提交重新排序...,然后把想要修改提交记录挪到最前 然后用 git commit --amend 来进行一些小修改 接着再用 git rebase -i 来将他们调回原来顺序 最后把 main 移到修改最前端(git...c2 摘到提交进行修改 git commit --amend 将被摘提交后面的提交摘到 main 分支 git cherry-pick c3 git tags 永远指向某个提交记录标识,不随新提交而移动...注意:因为 git reset 是直接删除 commit 记录,从而会影响到其他开发人员分支,所以不要在公共分支操作 git checkout 可以 HEAD 移到一个新分支更新工作目录

28410
领券