直接從本地 Linux Git 遠端更改 Github 儲存庫中的目錄名稱?
這是我的 Git 儲存庫:
https://github.com/benqzq/ulcwe
它有一個名為的目錄
local
,我想將其名稱更改為另一個名稱(例如 fromlocal
toxyz
)。通過 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。