我目前正在修改一个大型电子商务平台
在项目开始之前已经进行了大量的初步开发,并且没有任何版本控制,所以我没有文件历史记录。
为了构建之前完成的所有工作的图景,我从干净安装平台开始,并在 git 版本控制下一点一点地合并所有之前的更改。
我现在有两个几乎相同的软件副本,一个是工作开发服务器,另一个是我的本地存储库,其中包含更改历史记录。
我想将 repo 克隆到服务器上的工作副本上,而不会破坏已经存在的内容。
我不喜欢擦除开发服务器并克隆我的本地存储库的想法。有没有更好的办法?
我目前正在修改一个大型电子商务平台
在项目开始之前已经进行了大量的初步开发,并且没有任何版本控制,所以我没有文件历史记录。
为了构建之前完成的所有工作的图景,我从干净安装平台开始,并在 git 版本控制下一点一点地合并所有之前的更改。
我现在有两个几乎相同的软件副本,一个是工作开发服务器,另一个是我的本地存储库,其中包含更改历史记录。
我想将 repo 克隆到服务器上的工作副本上,而不会破坏已经存在的内容。
我不喜欢擦除开发服务器并克隆我的本地存储库的想法。有没有更好的办法?
您可以转到开发服务器并运行git init
以将那里的根目录转换为 git repo。此时,您可以将您的更改推送到它(或者让它从其他地方拉出,这可能是更好的路线),这将使它能够访问您构建的历史记录。假设此时历史记录在 中origin/master
,您现在可以执行类似基于此历史记录git branch master origin/master
创建分支的操作。master
最后,您可以在不修改工作副本的情况下git reset master
运行HEAD
您的新副本。master
此时,由于您说它们几乎相同,因此您的开发服务器现在应该在 git 之上运行,未提交的更改表示开发服务器的版本和新构建的版本之间的差异。
你可以将 repo 克隆成一个空的。
git clone --bare /path/to/repo.git
这将创建一个名为“repo.git”的存储库,它是一个裸存储库文件夹。您可以将此文件夹复制到 /path/to/devserver/,例如
mv repo.git /path/to/devserver/.git
现在您在同一个地方拥有存储库和 devserver 文件。如果您键入 git status 您将看到一些文件已更改等。如果您按原样暂存所有内容并提交它,您将拥有旧的历史记录 + 一个提交,这是您的原始存储库和当前开发服务器代码之间的差异.