1

亲爱的有帮助的 stackoverflow 成员,

我一直在阅读一段时间以寻找这个问题的答案,但无法找到任何具体的内容,所以我想我会要求一些输入。

这是场景:

我一直在为另一个为第三方做网页设计的承包商做分包工作。在他给我这份工作之后,为了让事情分开(这样他可以仔细检查我的工作),他创建了将原始 git 克隆到私人服务器上的远程 git。然后,(显然)我将这个 git 克隆到我的本地计算机上。

我用自己的名字做了几次(~5)次提交,并将它们推送到私有服务器的远程 git。接下来,意识到所有提交都应该以他自己的名义,承包商运行某种程序或命令来更改我所做的所有提交,而不是将他自己的名字显示为作者/提交者,然后将这些提交推送到原始远程第三方 git。[作为旁注,我不完全确定他跑了什么,但我假设它是一些脚本版本的破历史过滤器分支命令在此处的多个线程中讨论{最好的一个:更改作者和提交者Git 中多个提交的名称和电子邮件}(其版本也在 git 帮助页面上)。]

此时,承包商通知我他已经这样做了,并告诉我不要提交或推送到我们私人服务器的远程 git,直到我将本地 git 中的设置更改为他的 user.name 和 user.email。不幸的是,当我被告知时,我已经在本地存储库上完成了大量工作。

所以这是我的问题:从我读过的所有内容来看,我认为继续我的工作的唯一方法是删除我的本地存储库并重新克隆现在在我们的私人服务器上的版本(以避免与之前的提交 SHA -1 秒)。换句话说,目前,我认为我无论如何都不会提交然后将我的更改推送/合并到私有服务器的远程 git 的版本上,因为它已经改变了。

所以,如果我删除我的本地 git,我会丢失大量工作,但是我可以与私有服务器上的“新”版本“重新同步”......但是,这显然是不可接受的,因为我当然不感觉就像再做 20 个小时的工作只是为了回到我原来的位置。有没有办法拉下新版本但仍保留我的更改?

注意:除了更改作者/提交者外,他没有对任何文件进行任何更改。另请注意:我所做的所有即将丢失的工作尚未提交到我的本地 git。

有任何想法吗?...我真的可以使用帮助。

非常感谢,最好的问候,汤姆

4

1 回答 1

0

只需用于git pull --rebase在服务器修改历史的顶部重播本地更改。

于 2012-09-07T07:55:23.010 回答