我们有这个软件长期没有版本控制,无论是在生产环境还是开发环境中,开发人员在每次更改时手动修补文件(或者有时只更改生产环境的修补程序)。喜欢在丛林中。 现在,我们将它置于Git版本控制之下:我在生产环境中使用" master"创建了一个repo。分支,并把它推入一个新的"起源"远程专用服务器。 现在我也希望将dev环境作为工作副本,但我不想失去与prod环境的差异(有些东西可能有用,谁知道?)。
我想有可能是: a)移走所有文件 b)从原产地克隆 c)将我的文件重新移动到其原始位置
在这种情况下,Git可能会正确地突出显示两个代码库之间的差异。 有一种不太残酷的方法可以获得相同的结果吗?
答案 0 :(得分:3)
您需要决定长期的git工作流程。一个简单的方法是:
您已经拥有master中的作品,因此您可以执行以下操作来开发"开发"
此时,您将在工作目录和源服务器上的同一git存储库中拥有一个master(生产)分支和开发分支。
您现在可以在任一分支的提交之间进行差异并查看更改。
您也可以单独维护每个分支。最终,您可以根据需要决定将提交从开发合并到主服务器,或者在两者上进行樱桃挑选(修补程序)特定提交。
答案 1 :(得分:1)
git init
即将成为初始化回购的副本git add remote origin ...
添加对远程存储库的引用git fetch origin
使远程分支可用而不修改本地文件git checkout -b dev
创建开发分支git add :/ && git commit
添加并提交所有本地更改现在你已经在分支机构中提交了你的dev env,你可以从这里开始使用它。推送它以使其在专用服务器上可用。
答案 2 :(得分:0)
在您的开发计算机上初始化一个空的Git仓库:git init .
。添加原始仓库:git remote add ...
。从远程源repo获取所有更改:git fetch origin
。提取只会创建一个远程分支origin/master
,并且根本不会影响本地文件。将本地文件与刚刚从源repo中获取的远程分支进行区分。
也许在您获取之前,您可以将所有本地文件提交到本地分支。这会让它更舒服。