Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git rebase处于分离头状态-如果我想更正历史记录中的文件并替换最新提交中的文件,该怎么办_Git - Fatal编程技术网

Git rebase处于分离头状态-如果我想更正历史记录中的文件并替换最新提交中的文件,该怎么办

Git rebase处于分离头状态-如果我想更正历史记录中的文件并替换最新提交中的文件,该怎么办,git,Git,我对所有的合并和重定基调命令都感到非常困惑,并且出现了几个错误。给定的项目只是为我自己。我的问题如下: 我在主服务器、源服务器/主服务器分支服务器中的提交(最新版本,所有公共可见): 现在,根据给定的历史记录,我在code.txt中发现了错误。我git checkout commit 2,我想用更正的code.txt和原始的test_data.txt(包含在commit 2和commit 4中)创建一个commit 5 我的问题: 在给定的历史/日志中是否有我做错的事情? 我现在该怎么办?我签出

我对所有的合并和重定基调命令都感到非常困惑,并且出现了几个错误。给定的项目只是为我自己。我的问题如下:

我在主服务器、源服务器/主服务器分支服务器中的提交(最新版本,所有公共可见):

现在,根据给定的历史记录,我在code.txt中发现了错误。我
git checkout commit 2
,我想用更正的code.txt和原始的test_data.txt(包含在commit 2和commit 4中)创建一个commit 5

我的问题: 在给定的历史/日志中是否有我做错的事情? 我现在该怎么办?我签出了commit 2,修复了错误并进行了提交,但无法插入主分支(commit 5来自分离的头部)。即使我合并了commit 5和commit 4(成功),我也无法将其提交给master。但我的主要问题是,处理这种情况的正确方法应该是什么


谢谢

,因为您已将提交推送到公共可用存储库的主分支,因此重写历史记录是不明智的。您应该在4的基础上进行commit 5修复,并让2-4在历史上继续存在该错误

但是,要回答您的问题:

签出分支提示并执行交互式重基

git rebase -i <commit 1>
现在历史已经被重写,您需要强制推动分支

git push origin master --force
由于这些恶作剧,其他人将不得不强制更新

git fetch origin
git reset --hard origin/master

哪些提交是公开可见的?您是否使用了git revert进行了还原?我只自己使用它。所有提交也是公开的。仅在本地进行了描述的更改
git push origin master --force
git fetch origin
git reset --hard origin/master