如何重命名git根文件夹?


85

我刚刚开始在Vista中使用git,并将我的存储库放在/path/to/project/git repo

现在,我发现在git bash中工作时,文件夹名称中的空格有轻微刺激。

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

我已经尝试过只复制主文件夹的Windows副本,然后在其上运行git bash,并且'git log'显示了我之前所做的更改。因此,我认为重命名主文件夹是可以的,但是在继续之前,我想确定一下。

Answers:


53

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

(而且这可能不会直接影响您,出于完整性考虑,我在这里仅提及这些原因。):

  • 回购本身的路径可以由计算机上运行的其他服务(Apache,ssh,另一个将您的回购声明为远程的回购,使用完整文件路径,gitolite层在某个路径中声明您的回购来引用)... )
  • 有些操作使用存储库的完整路径(例如,GIT_INDEX_FILEfilter-branch命令中使用,请参见此线程),因此,显然,在对存储库执行复杂操作时不要重命名根目录。

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


2
因此,如果有人要采取切实可行的明确步骤来确保做到这一点,那将是非常可行的。
ahnbizcad 2014年

@gwho除了重命名repo文件夹外,还有什么步骤?
VonC

88

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


4

请先检查评论...

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

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

(由于我也是GIT的新手,这可能不是完整的正确答案。我遇到了与Mick相同的问题,出于学习目的,我尝试以git方法进行操作:)感谢您提供线索vonC!请纠正我,如果需要的话:)


1
如果是git clone <former directory> <new directory>,则不需要创建第<new directory>一个。该git clone会为您创建它。
VonC 2014年

3
我认为这不符合您的要求。这会将的原点设置<new directory><old directory>。因此git remote -vin<new directory>将显示origin C:/old/directory
kvu787

1
我同意@ kvu787,这听起来不像要求的那样,可能会引起很多问题。
alkanen

@ kvu787 @alkanen,这对用户的建议有帮助吗?git remote rm origin-删除旧目录作为新代表的来源,以及- cd .. and rm -rf <former directory>删除旧目录
PythoNic

@PythoNic,如果旧存储库有一个名为“ origin”的远程服务器,则不会,因为您的新存储库将不再具有该远程服务器,所以这将不可行。否则,那很好,但是重命名文件夹会更简单。
kvu787

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.