直接从本地 Linux Git 远程更改 Github 存储库中的目录名称?

直接从本地 Linux Git 远程更改 Github 存储库中的目录名称?

这是我的 Git 存储库:

https://github.com/benqzq/ulcwe

它有一个名为的目录local,我想将其名称更改为另一个名称(例如, from localto 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 也可以吗?

我应该使用另一个程序吗?

答案1

致命错误消息表明您正在工作的地方不是 git 存储库的克隆。因此,让我们首先克隆 git 存储库:

git clone https://github.com/benqzq/ulcwe.git

然后输入:

cd ulcwe

并重命名目录:

git mv local xyz

为了使更改可共享,您需要提交它:

git commit -m "Rename local to xyz"

现在您可以将其推送到远程 git 存储库:

git push

您将在 GitHub 界面中看到变化。

答案2

不,由于 git 的结构方式,无法直接执行此操作。

git 的工作方式是将整个存储库(包括所有历史记录)的副本存储到每个位置。

Github、Bitbucket 或任何其他托管提供商本质上只是 git 存储库的另一个副本,顶部有一个漂亮的 Web 界面,在大多数工作流程中被视为中心事实来源,但 git 实用程序并不知道这一点。

更改作为提交进行跟踪。我猜direct operation你所说的 是指一种在不创建提交的情况下更改文件夹名称的方法。虽然可以通过重写历史来实现这一点,但我不建议这样做,特别是如果有多个人/机器拥有 git 存储库的副本,因为这可能会导致不一致。

重命名 git 存储库中的文件夹的最简单方法是将其克隆到本地

git clone [url]
cd [git-folder]

如果您已经拥有该存储库的本地副本,请将其拉​​出以确保您是最新的远程存储库

git pull

在本地进行您需要的更改

git mv local xyz

github 应该会自动将其添加到暂存区。然后您应该提交并推送这些更改。

git commit -m 'Renamed local to xyz'
git push

这会将更改提交到本地存储库,然后将这些更改推送到存储库的远程副本,在本例中为 Github。

答案3

使用 GitHub API 可以在不克隆存储库的情况下重命名目录。我不知道有任何实施。

来源:https://stackoverflow.com/a/31567094/370786

相关内容