 git回滚代码相关使用
          git回滚代码相关使用
        
 # git revert使用
git revert是一个用于撤销提交的命令,但它的工作方式与 git reset 不同。git revert 会为每个指定的提交生成一个 新的提交,这个新的提交会撤销原来的提交内容,而 不会删除历史记录。也就是说,git revert 会保留原有的提交历史,并通过新增的反向提交来撤销更改。
# git revert 的基本用法
 - 撤销单个提交: 如果你只想撤销某个提交(例如撤销第三次提交),可以使用: - git revert <commit_id>1- 这个命令会为 - <commit_id>对应的提交生成一个新的提交,撤销该提交的内容,并保留在历史记录中。- 例如,撤销提交 - a1b2c3d:- git revert a1b2c3d1
- 撤销多个提交: 如果你想撤销多个提交,可以通过指定提交范围来实现。 - 撤销一系列提交(例如从第三次提交到当前提交): - git revert <commit_id_of_1st_commit>^..<commit_id_of_last_commit>1- 其中, - <commit_id_of_1st_commit>^表示包括第一提交的父提交。通过这种方式,- git revert会从- <commit_id_of_1st_commit>开始,一直到- <commit_id_of_last_commit>为止的所有提交。- 例如,撤销从 - a1b2c3d到- z9y8x7w之间的提交:- git revert a1b2c3d^..z9y8x7w1
- 批量撤销多个提交: 如果你知道要撤销的提交是一个顺序的范围,可以使用 - git log查看提交记录,然后将该范围传递给- git revert:- git revert --no-commit <commit_id_of_first_commit>^..<commit_id_of_last_commit>1- --no-commit参数意味着所有的撤销操作会被暂存,但不会自动提交,你可以手动修改提交内容后再进行提交。
 
- 撤销的提交会影响什么? - git revert会生成新的提交,撤销某个提交的更改。
- 它 不会删除历史提交,只是通过新增的提交反向修改已提交的内容。
 
- 撤销提交后自动进入编辑模式: - 执行 - git revert后,Git 会打开文本编辑器,允许你编辑撤销提交的 commit message。通常,你可以直接保留默认生成的提交信息。
- 如果想跳过编辑阶段,可以使用 - --no-edit选项来避免打开编辑器。- git revert --no-edit <commit_id>1
 
# git revert 使用示例
 假设你有如下的提交历史:
commit 6 (最新的提交)
commit 5
commit 4
commit 3 (目标:回滚到这里)
commit 2
commit 1
2
3
4
5
6
你想回滚到 提交 3,这时可以使用以下命令:
- 撤销提交 4, 5, 6(假设你只想撤销这些): - git revert HEAD~3..HEAD1- 这个命令会撤销提交 - 4,- 5,- 6,并且创建反向的提交记录。
- 撤销单个提交(例如提交 4): 如果你只想撤销提交 4,而不影响后面的提交,使用: - git revert <commit_id_of_4>1
# git revert 的优势
 - 保留历史记录: - git revert的最大优势是它 不会删除历史记录,所以适用于公共仓库,特别是当你已经将提交推送到远程仓库时,它可以安全地撤销提交,不会破坏其他人的工作。
- 逐步撤销: 使用 - git revert时,可以逐个撤销提交,这在复杂的情况中很有用,特别是当你想只撤销某些具体的更改时。
# 总结
- git revert会为每个撤销的提交生成一个新的反向提交,不删除任何历史提交。
- 可以撤销一个提交或一系列提交。
- 使用 --no-edit可以跳过提交信息编辑。
- 避免使用 git reset(特别是--hard)来回滚已推送的提交,git revert是撤销提交的更安全方式。
希望这些信息能帮助您更好地理解 git revert 的使用!
# 为什么 git revert 会发生冲突?
 git revert 试图创建一个新的提交,该提交的内容是撤销某个旧提交所做的更改。如果在撤销过程中,Git 发现这个撤销操作与当前文件的状态(包括当前分支的提交)有冲突,那么就会报冲突。
例如,如果提交 A 修改了某个文件,并且提交 B 修改了同一个文件的同一部分,而你使用 git revert 撤销提交 A 时,Git 发现提交 B 中也有对这个文件的修改,那么就会发生冲突。
# 如何解决 git revert 中的冲突?
 - 查看冲突的文件: 当 - git revert发生冲突时,Git 会告诉你哪些文件有冲突,并标记冲突的地方。通常,Git 会在冲突文件中插入类似以下的标记:- <<<<<<< HEAD 当前分支的内容 ======= 撤销的提交的内容 >>>>>>> commit_id1
 2
 3
 4
 5- 你需要手动编辑文件,解决这些冲突。 
- 解决冲突: - 打开每个冲突的文件,查找 <<<<<<<,=======,>>>>>>>标记。
- 保留你想保留的内容,删除不需要的内容。然后保存文件。
- 确保文件的内容是你希望的状态。
 
- 打开每个冲突的文件,查找 
- 标记冲突已解决: 解决冲突后,使用以下命令标记冲突已解决: - git add <resolved_file>1- 或者,如果解决了多个文件的冲突,可以一次性标记所有已解决的文件: - git add .1
- 完成提交: 一旦所有冲突解决并添加到暂存区,你可以使用以下命令完成 - git revert提交:- git revert --continue1- 这会生成一个新的提交,撤销原先提交的更改。 
# 如果不想继续 git revert?
 如果你决定放弃当前的 git revert 操作(例如冲突太复杂或不再需要回滚),你可以使用以下命令来中止 git revert:
git revert --abort
这会放弃当前的回滚操作,并恢复到回滚前的状态。
# 小结:
- git revert会发生冲突,如果被撤销的提交和当前分支的提交有重叠修改。
- 解决冲突:你需要手动编辑冲突文件,删除冲突标记,保留你想要的内容,并通过 git add将解决的文件标记为已解决。
- 继续回滚:冲突解决后,使用 git revert --continue完成回滚操作。
- 中止回滚:如果需要放弃回滚,使用 git revert --abort。
希望这些步骤能帮助你解决 git revert 中的冲突问题!
尊敬的各位领导、亲爱的同事们:
大家好!
我是技术部的王文帅,于2024年6月加入公司,转眼间,与大家并肩奋战的半年时光已悄然过去。这段时间里,我深深感受到了公司专业高效的管理体系、务实进取的文化,以及领导和同事们对我工作的信任与支持。在此,我谨向大家表示衷心的感谢!
作为一名PHP工程师,我毕业于华北水利水电大学网络工程专业,拥有9年的项目开发实战经验,曾深度参与培训、零售、美业等多个领域的技术开发工作,积累了全栈开发的经验与能力。加入公司后,我快速融入团队,积极参与并推动多个项目的需求分析与开发落地。在工作中,我始终秉持“业精于勤荒于嬉,行成于思毁于随”的座右铭,力求在每一次的技术实现中追求极致,为团队和公司的发展贡献自己的力量。
今天,我将以感恩之心对过去半年的工作进行总结汇报。这不仅是对自身工作的复盘与思考,更是一个思考改进、展望未来的契机。我期待通过这次述职,与大家分享我的工作心得,也希望能够为团队的进步和公司的发展贡献更多价值。
尊敬的各位领导、亲爱的同事们:
大家好!
我是技术部的王文帅,于2024年6月加入公司,转眼间,与大家并肩奋战的半年时光已悄然过去。这段时间里,我深深感受到了公司专业高效的管理体系、务实进取的工作氛围,以及主管领导和同事们对我工作的信任与支持。在此,向大家表示衷心的感谢!
作为一名PHP工程师,我毕业于华北水利水电大学网络工程专业,拥有9年的项目开发实战经验,曾深度参与培训、新零售、美业多个领域的技术开发工作,积累了全栈开发的经验与能力。加入公司后,我快速融入团队,积极参与并推动多个项目的需求分析与开发落地。在工作中,我始终秉持“业精于勤荒于嬉,行成于思毁于随”的座右铭,力求在每一次的技术实现中追求极致,为团队和公司的发展贡献自己的力量。
今天,我将对过去半年的工作进行总结汇报。这不仅是对自身工作的复盘与思考,更是一个思考改进、展望未来的契机。我期待通过这次述职,与大家分享我的工作心得,也希望能够为团队的进步和公司的发展贡献更多价值。