我启动了一个具有以下目录结构的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 repo到外部行为 django_proj 以保留 python_proj 的历史记录和"移动" repo成为完整项目的回购 django_proj ?
注意: django_proj 没有git repo。它是全新的。
答案 0 :(得分:2)
您可以在现有的t = a.reduce(function(a,b) {
return a * b;
}, 1);
仓库中移动元素,最终只能使用一个git仓库。
python_proj
或者,这是我的首选方法,您可以将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
的 submodule :
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
的固定版本。
答案 1 :(得分:1)
git不“知道”调用包含.git
元数据目录的外部目录的内容。如果你愿意,你可以重命名它,你的回购仍然可以正常工作。由于您的django_proj
还没有git历史记录,我建议您执行以下操作:
python_proj
重命名为django_proj
。django_proj/python_proj
,然后使用git add
添加目录。git mv * python_proj
git add
,或者只需在django_proj
目录中重新启动django并添加新文件。答案 2 :(得分:1)
您不应该将其“移出”,而是将文件移动到新目录中。
在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
文件内容。如果你有任何相对路径,它们也应该更新。