git - Git 还原一些提交(包括合并),然后稍后重新提交
问题描述
我有一个登台服务器,我使用git pull
git 服务器更新代码。这里有一个可能相关也可能不相关的细节是,在某些时候它开始发生,每次我拉它时都会要求我合并。我还没有足够的时间弄清楚为什么。无论如何,如果我查看git log
每次拉动后都会合并。无论如何,不是真正的问题。我只需要暂时恢复 2 个以前的提交(有 2 个相应的合并)。我对如何使用git revert
git log 中出现的 2+2 = 4 哈希然后提交非常有信心。
问题是我想在以后重新提交还原,因为我们稍后需要这些更改,但不是现在。我是否需要做任何特别的事情,以免丢失我恢复的提交?
解决方案
revert
可能不是你想要的;revert
添加撤消一组更改的新提交。reset
更像是它,它用于修改分支历史,但在做任何粗鲁的事情之前请继续阅读。
我建议的第一件事是尝试使用pull -r
自动将本地更改重新定位到分支的更新HEAD
(即分支的远程副本)。
您也可以rebase
使用rebase -i origin/mybranch
. Rebase 是 git 最强大的功能,它允许你重写历史。这也有点危险,所以要小心。
教程rebase
:https ://www.atlassian.com/git/tutorials/rewriting-history/git-rebase
无论你对本地 git 目录做什么,reflog
都会让你看到你的 repo 以前的状态(提交)。当我搞砸变基或重置时不小心“丢失”提交时,它保存了我的屁股一次或两次。
推荐阅读
- php - 命名空间声明中的别名命名空间,而不是 PHP 中的命名空间导入可能吗?
- numpy - 在 Julia 中破坏 Iterator.product
- angular - 如何编写登录服务的单元测试用例
- shopify - 使用 Alteryx Designer 下载工具从 shopify 中检索所有产品
- google-apps-script - 使用 Google Apps 脚本对服务器错误进行错误处理
- kubernetes - 为什么 kubernetes pvc resize 不能与文件系统一起使用?
- android - 微调器列表未在android中显示
- c - GDB 卡在“配置 GDB 中止配置 GDB”
- angular - 从服务的 HTTP 调用返回值以便在父组件中使用的最佳方法?
- python - 在python中使用numpy查找不同文件中两个值的平均值