如何解决我可以将两个文件合并到一个版本控制中吗?
比方说,我有两个文件,两个文件分别为A
和B
。有时,类B
仅在类A
内部使用,从代码设计的角度来看,将B
在里面 A
并将其声明为私有。
现在,如果必须执行此类任务,我只需将源代码从一个文件复制到另一个文件,然后删除现在为空的文件。缺点是版本控制历史记录不会完全丢失,但是不再可以被发现。
例如,对于任何指责B
源代码的人来说,我似乎都是从头开始创建该类的,而该人将需要去查看实际的提交以理解实际发生的事情,并且然后检查已删除文件的历史记录。相比之下,如果我只是移动文件,则版本控制显示源代码进行了一堆更改,然后进行了移动,然后进行了其他更改。
是否可以通过保留历史记录的方式合并两个文件(在SVN或Git中)?
自然,当我尝试使用Google进行合并时,会得到很多关于合并分支机构的结果,而且我找不到如何让Google理解我正在谈论的是另一种合并。
解决方法
让我们假设B在项目中出现的第一个修订版本是X:
git rebase -i X~
# change the first revision to say edit (or e) in the text editor,save and exit
# git will go straight to the first revision where X shows up
# open A,copy B code in a way that makes it compile and so on
git add A
git rm B
git rebase --continue
# from now on,this is what you do every time a conflict comes up
git checkout REBASE_HEAD -- . # put everything exactly like it was in the revision we are rebasing
# open A... there should be no B code
# open B
# copy B code into A and make it compile
git add A
git rm B
git rebase --continue
直到完成...在那时,您应该具有从头开始在A内生长的B的完整历史。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。