繁体   English   中英

如何将现有的git存储库移动到新项目的外部目录

[英]how to move an existing git repository to an outer directory of a new project

我使用以下目录结构启动了python编码项目

python_proj
 .git
 .gitignore
 some_dir
  some_file
 some_file
 ...

现在我不得不转移到Django的web框架,其中python_proj成为django_proj的子目录

django_proj
 manage.py
 django_proj
  some_file
 python_proj (with above structure)
 ...

我怎么“动” python_proj的git的回购协议外diectory django_proj保持python_proj的历史和“感动”回购将成为整个项目django_proj的回购?
注意: django_proj没有git repo。 这是全新的。

您可以在现有的python_proj库中移动元素,最后只有一个git存储库。

cd /path/to/python_proj
mkdir python_proj
git mv * python_proj
git commit -m "reorg"
cp files for django
git add -A .
git commit -m "django"
# rename root folder in django_proj

或者,那将是我的首选方法,您可以将python_proj声明为新django_proj子模块

cd /path/to/django_proj
git add -A .
git commit -m "all django files, except python proj"
git submodule add /url/of/python_proj
git commit -m "new python_proj submodule "

这样,两个项目就可以彼此独立地发展,并且django_proj将引用固定版本的python_proj

git不“知道”包含.git元数据目录的外部目录是什么。 您可以根据需要将其重命名,并且您的存储库仍然可以正常工作。 由于您的django_proj还没有git历史记录,因此建议您执行以下操作:

  • 将外部目录python_proj重命名为django_proj
  • 创建一个新目录django_proj/python_proj ,并使用git add将其git add
  • git mv * python_proj
  • 将django文件移动到位并git add它们,或者只是在django_proj目录中django_proj django并添加新文件。

您不应将其“移出”,而应将文件移到新目录中。 在您的python_proj目录中创建另一个目录python_proj ,然后使用git将Python项目中需要的所有文件从当前级别移至该目录:

mkdir python_proj
git mv some_dir python_proj
git mv some_file python_proj
...
git ci -m "Moved stuff"

现在,您可以重命名外部目录(即git root,即包含.git)。 这不会影响存储库,但是您必须在您可能正在使用的任何应用程序(SourceTree等)中更新对该存储库的引用。

如果您将.gitignore文件内容放在根级别,则可能需要检查它(我想会)。 如果那里有任何相对路径,也应该对其进行更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM