首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当git说“强制更新”时,可能丢失的东西是什么?在哪里?

当git说“强制更新”时,可能丢失的东西是什么?在哪里?
EN

Stack Overflow用户
提问于 2012-08-22 05:31:10
回答 1查看 13.5K关注 0票数 30

我最近收到了一个来自git的“强制更新”警告,该警告来自于一个只有我自己提交的存储库。我没有做任何重建,所以我不知道为什么会发生这种情况。我想知道的是,我应该在哪里查找可能已经丢失的更改?

为了说明,假设有三个存储库副本,L、D和S(笔记本电脑、台式机、服务器)。

首先,所有三个存储库都是同步的。然后在D上完成工作并推送到S。然后L运行git pull并获得“强制更新”。这是否意味着在L上所做的更改已经被覆盖,或者它们是在其他地方?我怎么才能找到他们呢?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-22 06:17:49

“强制更新”意味着远程跟踪分支是最近的。如果您在某人对存储库执行强制推送之后获取(或拉取),就会发生这种情况。

但是,在执行git pull时,您的本地分支不会丢失任何历史记录。由于远程分支的历史记录现在与本地分支不同,因此git pull将执行合并。如果查看最近的提交(只需运行git log),您应该会看到合并提交,第一个父级是本地分支的先前状态,第二个父级是远程分支的新值。

为了说明起见,我刚刚重现了强制更新场景,git pull输出了以下内容:

代码语言:javascript
复制
> git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
From /Volumes/UserData/Users/kballard/Dev/Scratch/foo/server
 + 7193788...a978889 master     -> origin/master  (forced update)
Merge made by the 'recursive' strategy.
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 d

pull的fetch部分打印(forced update),但是origin/master的新值随后被合并到本地分支。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12063345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档