use*_*970 10 remote git version-control github mv
这是我的 Git 存储库:
https://github.com/benqzq/ulcwe
Run Code Online (Sandbox Code Playgroud)
它有一个名为目录local
,我想将其名称更改为另一个名称(比如,从local
到xyz
)。
通过 GitHub GUI 手动更改它是一场噩梦,因为我必须分别更改每个文件的目录名称(无论您信不信,GitHub 尚未包含“目录重命名”功能)。
安装 Git 后,我尝试了以下命令:
git remote https://github.com/benqzq/ulcwe && git mv local xyz && exit
Run Code Online (Sandbox Code Playgroud)
虽然我没有收到任何输入 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).
Run Code Online (Sandbox Code Playgroud)
我知道 Git 的重点是下载项目、更改、测试,然后推送到托管提供商(在本例中为 GitHub),但仅更改目录,我希望直接操作。Git甚至有可能吗?
我应该使用另一个程序吗?
Ste*_*itt 28
致命错误消息表明您正在工作的地方不是 git 存储库的克隆。因此,让我们首先克隆 git 存储库:
git clone https://github.com/benqzq/ulcwe.git
Run Code Online (Sandbox Code Playgroud)
然后输入:
cd ulcwe
Run Code Online (Sandbox Code Playgroud)
并重命名目录:
git mv local xyz
Run Code Online (Sandbox Code Playgroud)
为了使更改可共享,您需要提交它:
git commit -m "Rename local to xyz"
Run Code Online (Sandbox Code Playgroud)
现在您可以将其推送到远程 git 存储库:
git push
Run Code Online (Sandbox Code Playgroud)
您将在 GitHub 界面中看到更改。
不,由于 git 的结构方式,无法将其作为直接操作来执行。
git 的工作方式是将整个存储库的副本(包括所有历史记录)存储到每个位置。
Github 或 Bitbucket 或任何其他托管服务提供商本质上只是 git 存储库的另一个副本,顶部有一个漂亮的 Web 界面,在大多数工作流程中被视为真实的中心来源,但是 git 实用程序不知道这一点。
更改作为提交进行跟踪。我猜direct operation
,您的意思是一种无需创建提交即可更改文件夹名称的方法。虽然这可以通过重写历史记录来实现,但我不推荐这样做,特别是如果有多个人/机器拥有 git repo 的副本,因为这会导致不一致。
在 git repo 中重命名文件夹的最简单方法是在本地克隆它
git clone [url]
cd [git-folder]
Run Code Online (Sandbox Code Playgroud)
如果您已经拥有该存储库的本地副本,请拉取它以确保您是远程存储库的最新版本
git pull
Run Code Online (Sandbox Code Playgroud)
在本地进行您需要的更改
git mv local xyz
Run Code Online (Sandbox Code Playgroud)
应该由 github 自动添加到暂存区。然后你应该提交并推送这些更改。
git commit -m 'Renamed local to xyz'
git push
Run Code Online (Sandbox Code Playgroud)
这会将更改提交到您的本地存储库,然后将这些更改推送到存储库的远程副本,在本例中为 Github。