git - 当git说"forced update" 可能会丢失什么?

  显示原文与译文双语对照的内容
0 0

我最近研究报告" 强制更新" 警告从git库中,它只是我还没有整理。 所以我也不知道为什么谁知道发生了这事我不会做任何附件的基于 我想知道的是,我该关注不到的修改有可能丢失?

为了演示这一点,那里应该三份副本的存储库,l,d 和S ( 笔记本电脑,桌面,服务器) 。

首先这三个存储库保持同步。 然后D 和推送到S 上的工作做完。 然后L 运行 git pull并获得" 强制更新" 。 这是否意味着L 上进行许多更改那些已被覆盖,或者他们在别的地方? 我怎么能找得到? 谢谢

时间:原作者:1个回答

0 0

" 强制更新" 表示远程跟踪分支是最新的。 发生这种情况如果fetch ( 或请求) 后有人并强制推送到存储库。

但是,当执行 git pull,你的本地分支不会损失任何历史记录。 因为远程分支历史现在异于本地, git pull将执行合并。 如果你看看最近的commit ( 只需运行 git log) 你可以看到合并与第一个父提交,正在上一个本地分支,第二个父状态被你远程分支的新值。

为了进行说明,我只是重现强制更新场景以及 git pull将输出下面的内容:

> 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

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

原作者:
...