如何重命名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_FILE
在filter-branch
命令中使用,参见this thread),因此,显然,在执行复杂操作时不要重命名根目录在您的仓库中。
另外,“windows 副本”(而不是 git clone
)将复制包括钩子在内的所有内容,如果您对它们进行了编辑并进行了此类修改,则可能在其脚本中包含绝对路径。
【讨论】:
因此,如果有人有切实可行的明确步骤来确保这样做,那将是非常可行的。 @gwho 除了重命名 repo 文件夹还有什么步骤?【参考方案3】:请先检查 cmets...
在我看来,最好的办法是使用git工作流程,尤其是当你使用git服务器(远程主存储库)时,这意味着:
让旧目录与你的 git 服务器同步(git pull
、git 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根文件夹?的主要内容,如果未能解决你的问题,请参考以下文章