git - 如何在不妨碍我的团队的情况下重命名根项目文件夹?

标签 git git-branch git-merge git-commit pull-request

我们存储库的根文件夹中有一个空间。
我想提出一个用下划线替换此空格的 pull 请求。

如您所知,git 不存储目录;只有文件名。因此,此更改将影响我们代码库中的每个源文件。

我怎样才能做出改变,同时给我的同事带来最少的问题?

我们所有的开发人员都从一个名为 dev 的分支分支出来,我的更改也需要发生在 dev 的子分支上。


这是我想要的目标和当前的限制。

目标:

  • 对其他开发者的阻碍最小。 (我们有数百个活跃的 分支,其中一些是 pull 请求)。

  • 保留历史记录。(理想情况下,我希望此更改显示为 重命名,或移动单个文件的历史记录)。

  • 最小化 merge 冲突(如果可能)

  • 避免意外的副作用(可能有一些我不知道的细节。我应该注意我们在 windows 和 linux 上都有开发人员 - 虽然这不是区分大小写的文件改变。)

限制:

  • 我无权直接更改 devmaster 分支。
  • 无法执行任何强制推送(因此我无法重写历史记录)。

最佳答案

您可以使用 git mv 命令重命名目录。这将按预期工作,并保留历史等。即使在 merge 重命名之前此目录层次结构下的文件发生其他更改,也不会导致任何问题。

首先,重命名目录:

git mv olddir newdir

然后使用git commit 提交更改。

关于git - 如何在不妨碍我的团队的情况下重命名根项目文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33835825/

相关文章:

windows - 通过 Dokan 在安装的 encfs 驱动器中使用 Git

git - 如何保护 GitHub 中的 "master"分支?

git - 如何与多个开发人员共享一个 git 功能(或主题)分支

git - 告诉 git 在特定文件上使用我们的 merge 策略

git - 是否可以使用 --ff-only 更改进行部分 merge ?

php - 推送被拒绝,未能检测到 set buildpack heroku/php

macos - 安装git时Git Bash找不到git目录

git - 使用 Travis CI 和 Capistrano 持续部署到 VPS 的良好工作流程是什么?

git - 使用 Git 将特定提交移动到新分支时出错

ios - 在 Git 上 merge 与 project.pbxproj 的冲突 - Xcode iOS