这是我的 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 也可以吗?
我应该使用另一个程序吗?
答案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 可以在不克隆存储库的情况下重命名目录。我不知道有任何实施。