如何重命名git根文件夹?

Posted

技术标签:

【中文标题】如何重命名git根文件夹?【英文标题】:How to rename git root folder? 【发布时间】:2011-11-04 04:57:49 【问题描述】:

我刚刚开始在 Vista 中使用 git,我的存储库位于 /path/to/project/git repo 下。

我现在发现在 git bash 中工作时文件夹名称中的空格是一个小麻烦。

我可以将文件夹重命名为/path/to/project/gitrepo 吗? git config 中的所有内容都是相对的,还是有任何明确引用父文件夹的内容?

我尝试只获取主文件夹的 Windows 副本,然后在其上运行 git bash,“git log”会显示我之前所做的更改。所以我认为重命名主文件夹是可以的,但在我继续之前我想确定一下。

【问题讨论】:

【参考方案1】:

是的,重命名包含 Git 存储库的文件夹是安全的。 Git 存储库中的所有路径都是相对的。

【讨论】:

【参考方案2】:

稍微修改Greg的answer,是的,所有带有git repo的东西都是相对于.git父目录的,但是:

(这可能不会直接影响您,为了完整起见,我在这里仅提及这些原因。):

repo 本身的路径可能会被您计算机上运行的其他服务引用(Apache、ssh、另一个 repo 将您的 repo 声明为远程,使用完整文件路径、gitolite 层在某个特定位置声明您的 repos路径,...) 一些操作使用repo的完整路径(例如GIT_INDEX_FILEfilter-branch命令中使用,参见this thread),因此,显然,在执行复杂操作时不要重命名根目录在您的仓库中。

另外,“windows 副本”(而不是 git clone)将复制包括钩子在内的所有内容,如果您对它们进行了编辑并进行了此类修改,则可能在其脚本中包含绝对路径。

【讨论】:

因此,如果有人有切实可行的明确步骤来确保这样做,那将是非常可行的。 @gwho 除了重命名 repo 文件夹还有什么步骤?【参考方案3】:

请先检查 cmets...

在我看来,最好的办法是使用git工作流程,尤其是当你使用git服务器(远程主存储库)时,这意味着:

让旧目录与你的 git 服务器同步(git pullgit push 和最后git status 看看是否一切正常) git clone <former directory> <new directory>

(因为我也是 GIT 新手,所以这可能不是完整、正确的答案。我和 Mick 有同样的问题,为了学习目的,我尝试用 git 方式做:)谢谢你的线索, 冯C!如果需要,请纠正我:)

【讨论】:

如果您是git clone <former directory> <new directory>,则无需先创建<new directory>git clone 将为您创建它。 我认为这不能满足您的要求。这会将<new directory> 的原点设置为<old directory>。所以git remote -v 中的<new directory> 将显示origin C:/old/directory 我同意@kvu787,这听起来不像是要求的,并且可能会导致大量问题。 @kvu787 @alkanen,有帮助吗,用户的建议:git remote rm origin - 删除旧目录作为新代表的来源 - cd .. and rm -rf <former directory> 删除旧目录 @PythoNic,如果旧仓库有一个名为“origin”的遥控器,那么不,这不行,因为你的新仓库将不再有那个遥控器。否则,这很好,但重命名文件夹会更简单。【参考方案4】:

是的,您可以更改它。你的 repo 仍然直接指向你的 git .. 只是不要删除/编辑 .git fo 的名称

【讨论】:

以上是关于如何重命名git根文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

在 git 文件重命名后使 Xcode 5 跟随历史

如何重命名 .git 目录?

在git下提交文件时如何控制重命名阈值?

如何对移动/重命名的文件进行 git diff?

git:重命名文件并更改文件内容

如何重命名本地 Git 分支?