从两个不同的代码库生成一个 Git 仓库
generating a Git repo from two different codebases
我们的这个软件在生产环境和开发环境中都长期没有版本控制,开发人员在每次更改时手动修补文件(或者有时只更改生产环境以进行修补程序) .就像在丛林中一样。
现在,我们将其置于 Git 版本控制之下:我在生产环境中使用 "master" 分支创建了一个回购协议,并将其推送到专用服务器上的新 "origin" 远程。
现在我也想将开发环境作为工作副本,但我不想失去与生产环境的差异(可能有用,谁知道?)。
我猜一个可能是:
a) 移走所有文件
b) 从源头克隆
c) 将我的文件重新移动到原来的位置
在这种情况下,Git 可能会正确突出显示两个代码库之间的差异。
有没有更粗暴的方法得到同样的结果?
在您的开发机器上初始化一个空的 Git 存储库:git init .
。添加源代码库:git remote add ...
。从远程源存储库中获取所有更改:git fetch origin
。 Fetching只会创建一个远程分支origin/master
,完全不会影响本地文件。将本地文件与您刚刚从原始存储库中获取的远程分支进行比较。
也许在获取之前,您可以将所有本地文件提交到本地分支。这样会舒服一些。
git init
在即将成为工作副本中初始化 repo
git add remote origin ...
添加对远程存储库的引用
git fetch origin
在不修改本地文件的情况下使远程分支可用
git checkout -b dev
创建开发分支
git add :/ && git commit
添加并提交所有本地更改
现在你已经在一个分支中提交了你的开发环境,你可以从这里使用它。推送它以使其在专用服务器上也可用。
您需要决定一个长期的 git 工作流程。一个简单的方法是:
- 将 "master" 分支保留为生产分支
- 创建一个"development"分支作为开发分支
您已经在 master 中有生产,因此您可以执行以下操作在 "development"
中获取开发
- git分支发展
- git结帐开发
- # 删除工作目录中的所有生产文件(.git 目录除外)
- #复制所有开发文件到你的工作目录
- git 添加 .
- git commit -m "import of development branch files"
- git 推源开发
此时,您将在同一个 git 存储库中拥有主(生产)分支和开发分支,它们都在您的工作目录和原始服务器上。
您现在可以在任一分支的提交之间进行比较并查看更改。
您也可以单独维护每个分支。最终,您可以决定将 development 中的提交合并到您认为合适的 master 中,或者对两者进行 cherry-pick(hotfix)特定提交。
我们的这个软件在生产环境和开发环境中都长期没有版本控制,开发人员在每次更改时手动修补文件(或者有时只更改生产环境以进行修补程序) .就像在丛林中一样。 现在,我们将其置于 Git 版本控制之下:我在生产环境中使用 "master" 分支创建了一个回购协议,并将其推送到专用服务器上的新 "origin" 远程。 现在我也想将开发环境作为工作副本,但我不想失去与生产环境的差异(可能有用,谁知道?)。
我猜一个可能是: a) 移走所有文件 b) 从源头克隆 c) 将我的文件重新移动到原来的位置
在这种情况下,Git 可能会正确突出显示两个代码库之间的差异。 有没有更粗暴的方法得到同样的结果?
在您的开发机器上初始化一个空的 Git 存储库:git init .
。添加源代码库:git remote add ...
。从远程源存储库中获取所有更改:git fetch origin
。 Fetching只会创建一个远程分支origin/master
,完全不会影响本地文件。将本地文件与您刚刚从原始存储库中获取的远程分支进行比较。
也许在获取之前,您可以将所有本地文件提交到本地分支。这样会舒服一些。
git init
在即将成为工作副本中初始化 repogit add remote origin ...
添加对远程存储库的引用git fetch origin
在不修改本地文件的情况下使远程分支可用git checkout -b dev
创建开发分支git add :/ && git commit
添加并提交所有本地更改
现在你已经在一个分支中提交了你的开发环境,你可以从这里使用它。推送它以使其在专用服务器上也可用。
您需要决定一个长期的 git 工作流程。一个简单的方法是:
- 将 "master" 分支保留为生产分支
- 创建一个"development"分支作为开发分支
您已经在 master 中有生产,因此您可以执行以下操作在 "development"
中获取开发- git分支发展
- git结帐开发
- # 删除工作目录中的所有生产文件(.git 目录除外)
- #复制所有开发文件到你的工作目录
- git 添加 .
- git commit -m "import of development branch files"
- git 推源开发
此时,您将在同一个 git 存储库中拥有主(生产)分支和开发分支,它们都在您的工作目录和原始服务器上。
您现在可以在任一分支的提交之间进行比较并查看更改。
您也可以单独维护每个分支。最终,您可以决定将 development 中的提交合并到您认为合适的 master 中,或者对两者进行 cherry-pick(hotfix)特定提交。