05.git撤销修改

1. 在second.txt添加以后内容。
2. 

$ git status
On branch master
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git checkout – …” to discard changes in working directory)
modified: second.txt
no changes added to commit (use “git add” and/or “git commit -a”)

3. 看到文件在工作区被修改了
4. 看提示 使用git checkout -- <file> 可以撤销修改
5. 

$ git checkout – second.txt

6. cat second.txt 
7. 工作区修改的文本被撤销
### Git 命令详解及使用场景 #### 3.1 Git 分支概念 Git 分支本质上是指向某个提交(commit)的指针。默认情况下,主分支名为 `main` 或 `master`。创建新分支时,Git 会创建一个新的指针指向当前所在的提交。分支切换时,工作目录的内容会根据目标分支的提交内容自动更新。 分支管理在协作开发中非常关键,可以通过 `git branch` 查看本地分支,使用 `git checkout -b <branch-name>` 创建并切换分支,或者使用 `git switch -c <branch-name>` 创建新分支[^2]。 #### 3.2 git reset `git reset` 用于撤销本地提交或暂存操作。它有三种主要模式: - `--soft`:仅移动 HEAD 指针,不修改暂存区和工作目录。 - `--mixed`(默认):移动 HEAD 指针并重置暂存区,但保留工作目录中的更改。 - `--hard`:完全重置 HEAD、暂存区和工作目录,丢弃所有未提交的更改。 例如,撤销最近一次提交但仍保留更改: ```bash git reset --soft HEAD~1 ``` 若需彻底丢弃更改并回退到某次提交: ```bash git reset --hard abc1234 ``` 此命令可用于恢复误提交的代码或清理混乱的提交历史[^3]。 #### 3.3 git checkout `git checkout` 主要用于切换分支或恢复工作目录中的文件。例如: - 切换到已有分支: ```bash git checkout dev ``` - 从特定提交中恢复某个文件: ```bash git checkout abc1234 -- path/to/file.txt ``` 此命令在调试或回滚特定文件时非常有用,避免对整个提交进行操作[^2]。 #### 3.4 git cherry-pick `git cherry-pick` 可将某个提交从一个分支应用到另一个分支,适用于仅需部分提交而非完整合并的情况。例如: ```bash git checkout dev git cherry-pick abc1234 ``` 此命令在修复线上问题或跨分支同步特定功能时非常实用。若冲突发生,Git 会提示手动解决冲突后使用 `git cherry-pick --continue` 继续应用提交[^1]。 #### 3.5 git diff `git diff` 用于查看文件差异,包括工作目录与暂存区、暂存区与最近提交、不同提交之间的差异。例如: - 查看尚未暂存的更改: ```bash git diff ``` - 查看已暂存但未提交的更改: ```bash git diff --cached ``` - 查看两个提交之间的差异: ```bash git diff abc1234 def5678 ``` 此命令是调试和代码审查中不可或缺的工具,帮助开发者精确识别变更内容。 #### 3.6 git stash `git stash` 用于临时保存工作目录中的更改而不提交,适用于切换任务或测试其他分支时保留当前修改。常用命令包括: - 保存当前更改: ```bash git stash ``` - 查看保存的更改列表: ```bash git stash list ``` - 恢复最近一次保存的更改: ```bash git stash pop ``` 此命令在处理多个任务或临时调试时非常方便,避免提交不完整的代码。 #### 3.7 git reflog `git reflog` 记录本地仓库中 HEAD 的每次移动,包括提交、合并、重置等操作。适用于恢复误操作的提交或查看历史操作记录。例如: - 查看操作历史: ```bash git reflog ``` - 回退到某个历史操作: ```bash git reset --hard HEAD@{1} ``` 此命令是 Git 中的“操作日志”,在误操作后恢复数据时非常关键。 #### 3.8 git revert `git revert` 用于创建一个新的提交,撤销指定的提交内容。与 `git reset` 不同,`revert` 不会修改提交历史,而是新增提交以撤销更改。例如: ```bash git revert abc1234 ``` 此命令适用于撤销已推送到远程仓库的提交,避免因强制推送导致协作混乱。 #### 3.9 git merge `git merge` 用于将一个分支的更改合并到当前分支。例如: ```bash git checkout main git merge dev ``` 若存在冲突,Git 会提示手动解决冲突后使用 `git commit` 完成合并。此命令是多分支协作开发中的核心操作,用于整合不同分支的工作成果。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值