我需要以某种方式移动一个现有的maven项目,该项目受git控制,位于另一个已经有另一个项目所在的git repo中。
为什么呢?在过去的几周里,我独自完成了一个项目。我在本地使用git(有没有远程存储库!)来跟踪我的更改。所以我身边的基本结构就是:
myRepo
|--.git
|--myProject
|--.gitignore
其中myProject
是一个maven项目。
与此同时,我的一位同事自己创建了一个仓库,也是另一个项目。这个仓库是远程的,在GitHub上。结构如下所示:
commonRepo
|--.git
|--hisProject
|--.gitignore
|--pom.xml
|--.project
|--.settings
正如你所看到的,这个想法是在这个repo中有一个父pom,它指定了所有的模块。 hisPoject
是其中一个模块。
我现在想在那里移动myProject
,这将是另一个maven模块。我不想在此过程中丢失我的提交历史记录。所以我希望最终结构看起来像:
commonRepo
|--.git
|--hisProject
|--myProject
|--.gitignore
|--pom.xml
|--.project
|--.settings
我找到了一些将一个目录移动到另一个目录的方法,但似乎这些都不适合我的问题。看起来这些解决方案需要myRepo
才能拥有一个遥控器,然后将其拉入commonRepo
并合并。
那么,如何才能实现我的目标呢?
答案 0 :(得分:0)
假设可以从同一台计算机访问myRepo
和commonRepo
,请执行以下操作:
cd /path/to/commonRepo
git remote add -f other_repo /path/to/myRepo
git merge other_repo/master
# The following commands need to be executed only if there are conflicts.
# Your description suggests that the only conflict may be in .gitignore.
# Run these commands after resolving the conflicts manually.
git add .
git commit -m "Merged with myRepo"
# End of commands needed in case of conflicts
git remote remove other_repo