恢复与回退文件

Git 入门

George Boorman

Curriculum Manager, DataCamp

发生错误

仓库中有四个文件,其中三个已加入暂存区且有一个已提交:report.md、mental health survey.csv、summary statistics.csv

Git 入门

回退文件

  • 将仓库恢复到上一次提交之前的状态

  • git revert

    • 还原先前版本并创建一次提交
    • 恢复"该提交中更新的所有文件"
    • a845edcbebe93178
    • HEADHEAD~1
git revert HEAD
Git 入门

回退文件

git revert HEAD

文本编辑器显示该提交

  • 保存:Ctrl + O,回车
  • 退出:Ctrl + X
Git 入门

回退文件

[main 7d11f79] Revert "Adding fresh data for the survey."
 Date: Tue Jul 30 14:17:56 2024 +0000
 1 file changed, 3 deletions(-)
Git 入门

git revert 参数

  • 避免打开文本编辑器
    git revert --no-edit HEAD
    

 

  • 不提交地回退(将文件带入暂存区)
    git revert -n HEAD
    
Git 入门

回退单个文件

  • git revert 作用于提交,不针对单个文件

  • 回退单个文件:

    • 使用 git checkout
    • 用提交哈希或 HEAD 语法
git checkout HEAD~1 -- report.md
Git 入门

检查 checkout 结果

git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)

        modified:   report.md
Git 入门

提交更改

git commit -m "Checkout previous version of report.md"
[main daa6c87] Checkout previous version of report.md
 1 file changed, 1 deletion(-)
Git 入门

取消暂存文件

仓库中有四个文件,其中三个加入暂存区:report.md、mental health survey.csv、summary statistics.csv

Git 入门

取消暂存文件

将"Summary statistics"从暂存区移回仓库

Git 入门

取消暂存单个文件

  • 仅取消暂存一个文件:
git restore --staged summary_statistics.csv
  • 编辑该文件
git add summary_statistics.csv
git commit -m "Adding age summary statistics"
Git 入门

取消暂存所有文件

  • 取消暂存所有文件:
git restore --staged
Git 入门

总结

Command Result
git revert HEAD 回退给定提交中的所有文件
git revert HEAD --no-edit 回退且不打开文本编辑器
git revert HEAD -n 回退但不创建新提交
git checkout HEAD~1 -- report.md 从上一个提交回退单个文件
git restore --staged report.md 将单个文件移出暂存区
git restore --staged 将所有文件移出暂存区
Git 入门

Passons à la pratique !

Git 入门

Preparing Video For Download...