我有一个正在运行的网站,我确信它拥有每个文件的最新和正确版本,但该网站没有使用Git进行管理。我还有一个Bitbucket Git仓库,理论上是为该网站而创建的,但其中存在重大问题和过时的内容。
我想做的是 git init 这些实时文件,然后以某种方式将它们推送到远程,使得最终远程 HEAD 状态与我的实时文件状态完全相同,但同时也保留远程提交历史记录。
我想这样做是为了使实时工作树永远不处于不同的状态。我考虑创建一个新分支,拉取主分支,然后强制合并它们或其他操作,但据我所知,我必须检出主分支,并在合并之前和期间对实时文件进行干扰,假设一切都正确。
我还考虑过只需通过FTP下载文件,在本地计算机上解决所有冲突/合并,然后从那里推送到Bitbucket并从实时仓库中拉取。但这也感觉不可靠和冒险。
我知道我不应该像这样操纵实时代码,但这就是我遇到的情况,我只想找到最简单/最安全的方法使其正常工作。
(我确定这是一个重复的问题,但我的谷歌搜索失败了,请在指导我查看以前的答案时温柔一点。)
我想做的是 git init 这些实时文件,然后以某种方式将它们推送到远程,使得最终远程 HEAD 状态与我的实时文件状态完全相同,但同时也保留远程提交历史记录。
我想这样做是为了使实时工作树永远不处于不同的状态。我考虑创建一个新分支,拉取主分支,然后强制合并它们或其他操作,但据我所知,我必须检出主分支,并在合并之前和期间对实时文件进行干扰,假设一切都正确。
我还考虑过只需通过FTP下载文件,在本地计算机上解决所有冲突/合并,然后从那里推送到Bitbucket并从实时仓库中拉取。但这也感觉不可靠和冒险。
我知道我不应该像这样操纵实时代码,但这就是我遇到的情况,我只想找到最简单/最安全的方法使其正常工作。
(我确定这是一个重复的问题,但我的谷歌搜索失败了,请在指导我查看以前的答案时温柔一点。)
git merge -s ours --allow-unrelated-histories origin/remote_branch
。它从服务器获取整个提交历史记录,非常棒。以下是详细讨论的线程:https://dev59.com/ploU5IYBdhLWcg3wAjYs#37938036 - dimiguel