假设我一直在进行一个项目,并且在08:41:11已经将我的分支推到了远程存储库的分支(起源/特性/服务器-java)。
本地回购和远程回购(原产地/特性服务器-java)的git日志如下所示:
92x301b Change to Server java 08:41:11
91881cc Remove Server GO 08:01:10
5f11b11 Change to yaml config 07:50:55
5f462ff Remove json config 07:10:55
7119093 Remove old config 06:30:33
13829ac New Client URL 06:10:40
然后,一些经验丰富的开发人员撤回了该项目,并对git提交的历史进行了更改(压缩和删除了一些提交),随后他强制将更改推到同一个远程分支(原产地/功能/服务器-java)。
现在远程回购(原始/特性/服务器-java)看起来像是( 10:50:10):
32122ae Add Server 10:50:10
fff5223 Add config yaml 09:50:55
23cc544 Change Client URL 09:10:40
这些提交历史记录的更改根本没有改变源代码(所有的测试仍然像以前一样通过)。但是现在我希望用这个变化的历史来提取原点/特性/服务器-java。我该怎么做?我的目标是完全覆盖现有的本地git与远程git的历史。
看来,git pull --no-ff origin feature/server-java
帮不上忙。
发布于 2022-08-10 20:40:05
你需要先去取:
git fetch origin
那么origin/feature/server-java
应该是最新的服务器中的内容。通常,您可能希望执行git merge
或git rebase
,但是如果您确信不希望进行任何本地更改,只需执行:
git reset --hard origin/feature/server-java
现在,您的分支将与远程分支完全相同。
https://stackoverflow.com/questions/73312378
复制相似问题