有时候你希望将你现在的代码返回到前一次提交,并保留所有之前的变化。你希望在前一次提交与当前HEAD之间提交新的代码。
首先,以你希望退回的提交处新建一个分支为 'revert-branch' 。在这个例子中,我们希望退回到前一次提交(假设当前分支为'master'),并且在这个提交上再做修改。
git branch revert-branch HEAD^
接下来切换到新的分支:
git checkout revert-branch
传授一个绝招:从master软恢复到新分支的HEAD。软恢复将改变HEAD的状态,但并不影响工作树。
git reset --soft master
现在,我们执行 git status, 我们将看到我们想要恢复的提交的变化。我要撤销添加'second.txt',但也可能是更复杂的变化:
$ git status # On branch revert-branch # Changes to be committed: # (use to unstage) # # deleted: second.txt #
现在让我们提交这个 'reversal':
git commit -m "reverted to initial state."
相关推荐
使用以下命令可以将代码提交到Git仓库: git add . git commit -m "update" 推送代码 使用以下命令可以将代码推送到远程仓库: git push -u origin main -f Git日常使用命令 以下是Git日常使用的一些命令: *...
例如,`git reset --hard HEAD^`会撤销最近一次的提交,恢复到上一个版本。 10. 深入学习 虽然本文提供了一个基础的Git教程,但要精通Git,还需要深入了解其更高级的功能,如子模块、标签、cherry-pick、rebase等。...
`git reset --hard HEAD`恢复到最近一次提交。 - 查看提交历史:`git log`列出提交历史;`git blame <file>`查看文件每行的最后一次修改者及时间。 - 搜索提交:`git grep <keyword>`在代码中搜索特定关键词。 ...
- `git reset HEAD <file>`:取消对单个文件的最近一次提交。 - `git reset --hard HEAD~1`:撤销最近一次的提交,包括所有未暂存的更改。 4. **暂存部分更改(Stash)** - `git stash`:暂存所有未提交的更改。...
- `git reset --hard HEAD^`:将当前分支回滚到前一次提交。 6. **删除文件** - `git rm <file>`:从仓库中删除文件。 - 如果文件只是被暂存区删除,可以通过`git checkout <file>`恢复。 7. **比较文件差异** ...
- **暂存区(Index/Stage)**:将工作区的变化提交到仓库前的一个临时区域。 - **分支(Branch)**:指向某个特定提交的指针,用于并行开发多个功能或修复。 - **标签(Tag)**:用于标记某个重要的版本。 - **远程仓库...
- `git revert <commit-id>`: 撤销指定提交,会创建一个新的提交来逆转前一个提交的效果。 - `git reset --hard <commit-id>`: 回退到指定提交,会丢失之后的所有更改。 - `git reflog`: 查看完整的引用日志,可...
- Git Flow:一种用于大型项目管理的分支模型,包括feature、release、hotfix和support分支。 4. 远程操作: - 连接远程仓库:`git remote`命令添加、查看和移除远程仓库。 - 推送与拉取:`git push`和`git pull...
- 版本提交:使用`git add`、`git commit`命令保存文件的更改,形成不同的版本。 - 分支管理:通过`git branch`、`git checkout`命令创建和切换分支,实现并行开发。 3. Git远程操作: - 连接远程仓库:使用`git...
- **撤销最近一次提交**:使用 `git reset --soft HEAD~1` 可以撤销最近一次提交但保留更改。 #### 总结 Git 不仅是一款强大的版本控制工具,而且具有高度的灵活性和可扩展性。通过掌握 Git 的基本命令和最佳实践...
- **取消对文件的修改**:使用`git checkout <file>`恢复文件到最近一次提交的状态。 - **远程仓库的使用**: - **查看当前的远程库**:使用`git remote -v`查看远程仓库的URL。 - **添加远程仓库**:使用`git ...
- **修改最后一次提交**:使用`git commit --amend`命令来修改最近的一次提交。 - **取消已经暂存的文件**:使用`git reset`命令来取消暂存。 - **取消对文件的修改**:使用`git checkout`命令来恢复文件到上次提交...
- `git reset --hard HEAD~3`:回退到前三个版本。 - `git reflog`:查看所有提交历史,包括已经被回退的版本。 - `git reset --hard <version>`:直接回退到指定的版本。 - **说明**: - 使用`git log`时,可以...
- **合并冲突**:当两个或多个开发者同时修改同一部分代码时,Git需手动解决这些冲突,确保代码的一致性和正确性。 ### 基本操作与技巧 - **状态保存**:了解如何在Git中保存工作状态,包括添加、删除和重命名文件...
- 查看最后一次提交的内容差异:`git diff HEAD` **4. 撤销操作:** - 撤销暂存区的更改:`git reset <file>` - 撤销已提交的更改:`git revert <commit-id>` **5. 远程仓库操作:** - 添加远程仓库:`git ...
- `git stash apply`: 应用最后一次存储的状态。 **6.4 重写历史** - **命令**: - `git rebase -i <commit>`: 交互式重写历史。 **6.5 使用Git调试** - **命令**: - `git bisect start`: 开始二分查找。 - `...
- **文件恢复**:能够将文件回溯到过去的某个状态,或者恢复整个项目到某一历史版本。 - **变更追踪**:可查看文件变化的具体细节,如改动的时间、人员及其修改的内容。 - **错误排查**:有助于定位导致问题出现...
- **Git Hooks**:预定义的脚本钩子,可以在特定Git事件发生时自动触发,如提交前的验证等。 #### 六、参考资料 - **《Git权威指南》**:深入介绍了Git的各种特性和使用技巧。 - **官方文档**:`...