Git

直接從本地 Linux Git 遠端更改 Github 儲存庫中的目錄名稱?

  • October 9, 2018

這是我的 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甚至可以嗎?

我應該使用另一個程序嗎?

致命錯誤消息表明您在某個不是 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 界面中看到變化。

不,由於 git 的結構方式,無法將其作為直接操作來執行。

git 的工作方式是將整個儲存庫的副本(包括所有歷史記錄)儲存到每個位置。

Github、Bitbucket 或任何其他託管服務提供商本質上只是您的 git 儲存庫的另一個副本,頂部有一個漂亮的 Web 界面,在大多數工作流程中被視為事實的中心來源,但是 git 實用程序不知道這一點。

更改作為送出進行跟踪。我猜direct operation你的意思是一種在不創建送出的情況下更改文件夾名稱的方法。雖然這可以通過重寫歷史來實現,但我不建議這樣做,特別是如果有多個人/機器擁有 git 儲存庫的副本,因為這可能會導致不一致。

在 git repo 中重命名文件夾的最簡單方法是在本地複製它

git clone [url]
cd [git-folder]

如果您已經擁有該倉庫的本地副本,請拉取它以確保您是最新的遠端倉庫

git pull

在本地進行所需的更改

git mv local xyz

應該由 github 自動添加到暫存區。然後你應該送出並推送這些更改。

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

這會將更改送出到您的本地儲存庫,然後將這些更改推送到儲存庫的遠端副本,在本例中為 Github。

引用自:https://unix.stackexchange.com/questions/424130