【问题标题】:How can I move the root of my git repository up one level? (without moving subfolders)如何将我的 git 存储库的根目录上移一级? (不移动子文件夹)
【发布时间】:2017-08-28 14:57:36
【问题描述】:

我有一个具有以下文件夹结构的本地 Git 存储库。

kronos
|-- org_maps
|   |-- attach_departments.ahk
|   `-- attach_jobs.ahk
|-- org_sets
|   `-- create_org_sets.ahk
`-- labor_level_sets
    `-- create_labor_sets.ahk

我想通过将我的根文件夹上移一级来扩展我的 Git 存储库的范围。

scripts
|-- kronos
|   |-- org_maps
|   |   |-- attach_departments.ahk
|   |   `-- attach_jobs.ahk
|   |-- org_sets
|   |   `-- create_org_sets.ahk
|   `-- labor_level_sets
|       `-- create_labor_sets.ahk
`-- peoplesoft
    `-- kronos
        `-- add_elig_departments.ahk

我已阅读How can I move the root of my git repository?,但最重要的答案建议rewriting history,我想避免。

如何在不重新定位现有文件和子文件夹的情况下将 git 存储库的根目录上移一级?

【问题讨论】:

  • git mv 有什么问题(这是做你想做的事情的正确方法)?
  • @Leon git mv 不也移动我所有的子文件夹吗?我正在尝试从U:\Documents\Scripts\Kronos\ 移动到U:\Documents\Scripts\
  • 它移动你告诉它的东西。如果您需要移动所有子文件夹,那有什么问题?
  • 您只需要正确地执行此操作 - 在您当前的根目录中创建一个 kronos 子目录,并在其中创建一个 git mv 所有预先存在的子目录。然后将peoplesoft 移动到根目录kronosgit add 中。然后将顶层kronos重命名为scripts并上移一级(替换原来的scripts目录)。
  • @Leon - 你只是从 repo 的角度来看这个。 OP 似乎正试图在他们不想打扰的现有目录结构中扩展 repo 的范围。

标签: git directory


【解决方案1】:

认为我了解您想要做什么,主要基于您的目录树图。听起来您有一个现有的目录结构,您不想在其中重新定位任何文件;但是你想让 git 查看它现在拥有的文件,以及你现在拥有的文件上方的目录。

我强烈建议在执行此操作之前进行备份,但我相信这是一个可行的程序(并且在我的测试中没问题),只要您不做任何奇怪的事情:

cd .../scripts
mv kronos/.git .
git add .

现在,如果您执行git status,它应该表明您已经“重命名”了存储库中的所有内容,将每个内容移动到kronos/ 目录下,并添加了来自scripts 的其他文件。如果看起来像,您可以提交。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
  • 2020-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多