Git 怎样撤回已 Push 的代码

打印 上一主题 下一主题

主题 974|帖子 974|积分 2922

在使用 Git 进行版本控制时,偶尔会遇到需要撤回已推送到远程仓库的代码的环境。无论是由于错误提交了不必要的代码,还是由于代码中存在漏洞,实时撤回提交可以帮助我们维护项目的稳定性。本文将详细介绍怎样安全地撤回已推送的代码,并提供一些常用的办理方案。
1. 明白 Git 的提交汗青

在开始讨论撤回之前,明白 Git 的提交汗青是很紧张的。每次使用 git commit 命令后,Git 会生成一个独特的提交哈希值,以标识这一提交。一旦代码被推送到远程,其他开发者也会基于这个提交进行开发。因此,撤回已推送的代码需要谨慎利用,以免对其他协作开发者的工作产生影响。
2. 使用 git revert 撤销提交

git revert 是一种常用的方法,用于撤回已推送的代码而不会改变项目的提交汗青。这个命令会创建一个新的提交,实际上是对之前某次提交的反向利用。这种方法恰当于第一次推送后,希望撤回某个错误提交的环境。
使用步骤:


  • 确定需要撤回的提交 ID(哈希值)。可以使用 git log
     检察提交汗青。
    1. git log
    复制代码
  • 使用 git revert 撤回指定的提交。比方,假设你想撤回的提交 ID 是 abcd1234:
    1. git revert abcd1234
    复制代码
  • Git 会打开默认的文本编辑器,提示你输入新的提交信息。你可以修改或接受默认信息后保存退出。
  • 完成后,使用 git push 将新的提交推送到远程仓库:
    1. git push origin main
    复制代码
这样,abcd1234 提交的内容将会被反向应用并添加为一个新的提交。
3. 使用 git reset 撤销提交

git reset 是另一种撤回已推送代码的方法,但需谨慎使用。使用该命令后,提交汗青将被重写,这可能会导致其他协作开发者的本地仓库出现题目。因此,通常建议只有在你是唯一维护者的环境下使用该命令。
使用步骤:


  • 使用 git log
     找到需要撤回的提交 ID。
  • 使用 git reset 撤回到指定的提交。
    1. git reset --hard abcd1234^ # 撤回到 abcd1234 之前的状态
    复制代码
    这里的 ^ 符号表示父提交,即你希望撤回的提交之前的提交。
  • 欺压推送到远程仓库。请注意,这将重写远程汗青,可能导致协作开发者的题目。
    1. git push origin main
    2. --force
    复制代码
注意事项:



  • 小心使用 git reset --hard,由于它会丢失工作目次和暂存区中的全部未提交的修改。
  • 欺压推送会影响其他开发者,建议提前与团队沟通。
4. 其他常用方法

4.1 还原文件改动

如果你只想撤销某几个文件的改动,可以简单使用以下命令:
  1. git checkout HEAD~1 -- <file1> <file2>
复制代码
这条命令将把指定的文件还原到上一个提交的状态。
4.2 创建新分支

如果不想直接修改当前分支,可以创建一个新的分支,从中撤回已推送的提交,然后在新分支上进行开发:
  1. git checkout -b new-featuregit revert abcd1234
  2. # 撤回提交git push origin new-feature
复制代码
5. 总结

撤回已推送的代码是 Git 使用中的一些常见利用。选择 git revert 还是 git reset 主要取决于你的需求以及团队的工作流。git revert 是更安全的选择,由于它不会重写汗青,而 git reset 在需要重置到某个点时非常有效,但务必谨慎对待。无论你选择哪个方法,在进行任何利用前,最好备份当前工作目次,以及和团队成员进行沟通,以避免潜伏的代码辩论和工作丢失。牢记,不要把“撤回”视为一种修复错误的常规本事,应该在谨慎和充分了解其效果后进行。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表