gpt4 book ai didi

git - 当 git 说 "forced update"时,人们可能会在什么地方丢失东西?

转载 作者:IT王子 更新时间:2023-10-29 01:11:13 24 4
gpt4 key购买 nike

我最近在一个只有我提交的存储库上收到来自 git 的“强制更新”警告。我没有做过任何重新定位,所以我不知道为什么会这样。我想知道的是,我应该在哪里寻找可能丢失的更改?

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

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

最佳答案

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

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

为了说明,我刚刚重现了强制更新的场景,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

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

关于git - 当 git 说 "forced update"时,人们可能会在什么地方丢失东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12063345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com