git-各种场景-撤销指令

一、撤销工作目录中的修改

1. 撤销文件的修改

如果你想撤销某个文件的修改,可以使用 git checkoutgit restore 命令:

# 使用 git checkout 撤销文件修改
git checkout -- <file>

# 使用 git restore 撤销文件修改
git restore <file>
2. 撤销所有文件的修改

如果你想撤销所有文件的修改,可以使用以下命令:

# 使用 git checkout 撤销所有文件修改
git checkout -- .

# 使用 git restore 撤销所有文件修改
git restore .

二、撤销暂存区中的修改

1. 撤销某个文件的暂存

如果你已经将文件添加到暂存区,但想撤销这个操作,可以使用 git resetgit restore --staged 命令:

# 使用 git reset 撤销文件暂存
git reset HEAD <file>

# 使用 git restore --staged 撤销文件暂存
git restore --staged <file>
2. 撤销所有文件的暂存

如果你想撤销所有文件的暂存,可以使用以下命令:

# 使用 git reset 撤销所有文件暂存
git reset HEAD .

# 使用 git restore --staged 撤销所有文件暂存
git restore --staged .

三、撤销最近一次的提交

如果你刚刚提交了代码,但发现有误,可以使用 git resetgit revert 命令:

1. 使用 git reset 撤销提交(保留修改)
git reset --soft HEAD~1
2. 使用 git reset 撤销提交(丢弃修改)
git reset --hard HEAD~1
3. 使用 git revert 撤销提交(生成新的反向提交)
git revert HEAD

四、修改或撤销某次提交

1. 修改最近一次提交

如果你想修改最近一次提交的信息或内容,可以使用 git commit --amend 命令:

# 修改提交信息
git commit --amend -m "新的提交信息"

# 修改提交内容(需先暂存新的内容)
git add <file>
git commit --amend --no-edit
2. 撤销指定提交

如果你想撤销某次特定的提交,可以使用 git revert 命令:

git revert <commit_hash>

五、恢复删除的分支

如果你误删了一个分支,可以使用 git reflog 找到分支的最近一次提交并恢复:

# 查看 reflog 记录
git reflog

# 恢复分支
git checkout -b <branch_name> <commit_hash>

六、丢弃未追踪的文件和目录

如果你想删除未追踪的文件和目录,可以使用 git clean 命令:

# 查看将删除的文件和目录
git clean -n

# 删除未追踪的文件
git clean -f

# 删除未追踪的文件和目录
git clean -fd

七、撤销变更记录中的合并

如果你需要撤销一次合并操作,可以使用 git revert -m 命令:

# 撤销合并提交
git revert -m 1 <merge_commit_hash>

八、总结

Git 提供了丰富的撤销和恢复操作的命令,适用于各种场景。无论是撤销工作目录中的修改、暂存区中的修改,还是撤销提交、恢复分支,Git 都能提供相应的解决方案。熟练掌握这些命令,不仅可以提高工作效率,还能减少出错的风险。

希望这篇文章对你理解和使用 Git 的撤销指令有所帮助。如果你有任何疑问或想进一步探讨的内容,欢迎在评论区留言!

个人名言:通过分享专业的技术知识和实践经验,助力更多开发者成长。

相关推荐

  1. git-各种场景-撤销指令

    2024-07-19 06:38:04       17 阅读
  2. git撤销命令大全

    2024-07-19 06:38:04       48 阅读
  3. git撤销提交

    2024-07-19 06:38:04       33 阅读
  4. git撤销push

    2024-07-19 06:38:04       18 阅读
  5. Git撤销远程提交记录】

    2024-07-19 06:38:04       20 阅读
  6. Git撤回指定commit不保留更改

    2024-07-19 06:38:04       38 阅读
  7. Gitgit revert 命令(撤销 commit 改动)

    2024-07-19 06:38:04       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 06:38:04       53 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 06:38:04       56 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 06:38:04       46 阅读
  4. Python语言-面向对象

    2024-07-19 06:38:04       57 阅读

热门阅读

  1. Stripe web 支付语言设置

    2024-07-19 06:38:04       17 阅读
  2. git-指令 -stash暂存

    2024-07-19 06:38:04       15 阅读
  3. [C/C++入门][for]25、药房管理(循环经典练习)

    2024-07-19 06:38:04       16 阅读
  4. golang 实现负载均衡器-负载均衡原理介绍

    2024-07-19 06:38:04       20 阅读
  5. pytorch的MINST数据集示例

    2024-07-19 06:38:04       14 阅读
  6. 在Ubuntu 12.04上安装和设置Postfix的方法

    2024-07-19 06:38:04       20 阅读