我是git的新手。我的服务器上有远程git repo,它包含master,这是我代码的当前版本。在我的本地计算机上,我使用旧版本(大约10个)的代码只是在我使用版本控制之前存储在其他位置(只是普通文件)。
即使我可能永远不会再需要旧版本,我仍然希望将它们添加到回购中,所以如果我想查看旧版本,我可以这样做。
那么我该怎么做呢,我把它们添加为分支或标签,我该如何将它们添加到远程仓库呢?
现在我这样做:只删除所有当前版本代码(已提交并推送到服务器),复制并粘贴旧代码文件(比如版本0.2)并创建新分支(版本0.2),提交然后推送到服务器。现在我有2个分支,master和version0.2。这应该是正确的方法吗?
答案 0 :(得分:1)
你能做什么:
或者如果您是远程存储库的唯一用户,则在旧版本的顶部应用远程仓库中的最新提交,并替换远程仓库更加清晰。
答案 1 :(得分:1)
你的系统很好,但是如果旧的代码实际上导致master的位置,那么一旦所有代码都在存储库中,我建议将所有内容拼接成一个分支。我假设这是一个私有存储库,并且与master混在一起不会影响任何其他人(在公共存储库上重写历史记录并不好)。
话虽如此,我还假设你有一堆类似于以下分支的分支:
在这种情况下,v0.1是最早的,v0.2建立在v0.1之上,依此类推。为了实际让master代表这个,我建议按顺序重新分支,以便在最后master包含来自所有分支的代码。执行此操作的步骤是:
git checkout v0.2
git checkout -b REBASE_v0.2
git rebase v0.1
git rm FILE
之间删除了任何文件。git checkout v0.3
git checkout -b REBASE_v0.3
git rebase REBASE_v0.2
git rm FILE
之间删除了任何文件。 git checkout master
git checkout -b REBASE_master
git rebase REBASE_v0.3
git diff master
git checkout master
git branch master_old
git reset --hard REBASE_master
git branch -D REBASE_v0.2 REBASE_v0.3 REBASE_master
一旦你确定一切都很好,你就可以继续摆脱原来的分支:git branch -D v0.1 v0.2 v0.3 master_old
此时您应该拥有一个包含实际代码进度的主分支。