簡體   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