这是我的 Git 存储库:
https://github.com/benqzq/ulcwe
它有一个名为的目录local
,我想将其名称更改为另一个名称(例如 from local
to xyz
)。
通过 GitHub GUI 手动更改它是一场噩梦,因为我必须分别更改每个文件的目录名称(GitHub 尚未包含“目录重命名”功能,信不信由你)。
安装 Git 后,我尝试了以下命令:
git remote https://github.com/benqzq/ulcwe && git mv local xyz && exit
虽然我没有收到任何输入 GitHub 密码的提示,但我确实收到了以下错误:
fatal: Not a git repository (or any parent up to mount point /mnt/c)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
我知道 Git 的重点是下载项目、更改、测试,然后推送到托管服务提供商(在本例中为 GitHub),但只是更改目录,我希望直接操作。Git甚至可以吗?
我应该使用另一个程序吗?
致命错误消息表明您在某个不是 git 存储库克隆的地方工作。因此,让我们首先克隆 git 存储库:
然后输入:
并重命名目录:
为了使更改可共享,您需要提交它:
现在您可以将它推送到您的远程 git 存储库:
你会在 GitHub 界面中看到变化。
不,由于 git 的结构方式,无法将其作为直接操作来执行。
git 的工作方式是将整个存储库的副本(包括所有历史记录)存储到每个位置。
Github、Bitbucket 或任何其他托管服务提供商本质上只是您的 git 存储库的另一个副本,顶部有一个漂亮的 Web 界面,在大多数工作流程中被视为事实的中心来源,但是 git 实用程序不知道这一点。
更改作为提交进行跟踪。我猜
direct operation
你的意思是一种在不创建提交的情况下更改文件夹名称的方法。虽然这可以通过重写历史记录来实现,但我不建议这样做,特别是如果有多个人/机器拥有 git 存储库的副本,因为这可能会导致不一致。在 git repo 中重命名文件夹的最简单方法是在本地克隆它
如果您已经拥有该仓库的本地副本,请拉取它以确保您是最新的远程仓库
在本地进行所需的更改
应该由 github 自动添加到暂存区。然后你应该提交并推送这些更改。
这会将更改提交到您的本地存储库,然后将这些更改推送到存储库的远程副本,在本例中为 Github。
使用 GitHub API 可以在不克隆存储库的情况下重命名目录。我不知道任何实施。
来源:https ://stackoverflow.com/a/31567094/370786