4. 如何在Git中撤销之前的提交?

在Git中,可以使用以下方法来撤销之前的提交:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=f818c6d22c98401682f8662612b9e57f#牛客AI配图神器#

撤销最后一次提交:使用git revert命令可以撤销最后一次提交。该命令会创建一个新的提交,将之前提交的修改内容反向应用到代码中。例如,要撤销最后一次提交,可以运行git revert HEAD命令。

撤销多个提交:如果需要撤销多个提交,可以使用git revert命令指定要撤销的提交范围。例如,要撤销最后三次提交,可以运行git revert HEAD~3..HEAD命令。

撤销特定提交:使用git revert命令可以指定要撤销的具体提交。可以通过提交的哈希值或引用来指定提交。例如,要撤销提交哈希值为abc123的提交,可以运行git revert abc123命令。

撤销提交但保留修改:如果只想撤销提交而不删除修改的内容,可以使用git reset命令。该命令会将HEAD指针移动到指定的提交,但不会创建新的提交。例如,要撤销最后一次提交但保留修改,可以运行git reset HEAD~1命令。

需要注意的是,撤销提交会创建新的提交记录,并将修改应用到代码中。这样可以保留修改历史,并且其他开发者可以看到撤销的操作。如果需要完全删除某个提交及其修改,可以使用git reset命令的--hard选项,但这会永久删除提交记录,慎用。
全部评论

相关推荐

pytest 框架的常用装饰器可按功能分为几大类,核心用途和用法如下:一、用例标记与筛选@pytest.mark.自定义标签:最基础的标记方式,比如@pytest.mark.smoke给冒烟用例打标,执行时通过pytest -m smoke就能只运行该类用例,也可组合标记如@pytest.mark.payment+@pytest.mark.regression,实现多维度筛选。@pytest.mark.parametrize("参数名", 数据列表):实现参数化测试,批量传入不同数据执行同一用例,比如@pytest.mark.parametrize("a,b,result", [(1,2,3), (4,5,9)]),用例会自动遍历数据列表,无需重复编写测试逻辑。二、用例执行控制@pytest.mark.skip(reason="跳过原因"):无条件跳过指定用例,适用于暂未开发完成、环境不兼容的场景,比如@pytest.mark.skip(reason="功能暂未上线,暂不测试")。@pytest.mark.skipif(条件, reason="跳过原因"):条件性跳过,满足条件时跳过用例,比如@pytest.mark.skipif(sys.platform == "win32", reason="仅在Linux环境执行")。@pytest.mark.xfail(条件, reason="预期失败原因"):标记 “预期失败” 的用例,运行失败时不影响整体测试结果,若意外成功则会触发提醒,比如@pytest.mark.xfail(reason="已知bug未修复,预期执行失败")。三、固件(Fixture)相关@pytest.fixture():定义测试固件,用于封装用例的前置 / 后置操作(如初始化数据库、创建测试数据),固件可通过参数传递给用例,也能设置作用域(如scope="module"表示模块级复用)。@pytest.mark.usefixtures("固件名1", "固件名2"):给测试类或函数批量绑定固件,无需在参数中显式传入,比如给测试类加@pytest.mark.usefixtures("init_db", "clear_data"),类内所有用例都会自动执行这两个固件。四、进阶执行控制@pytest.mark.run(order=数字):需安装pytest-ordering插件,指定用例执行顺序,比如@pytest.mark.run(order=1)让该用例优先执行,解决默认按名称排序的局限。@pytest.mark.raises(异常类型):断言用例必须抛出指定异常才算通过,比如@pytest.mark.raises(ValueError),若用例执行未抛出该异常则判定失败。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务