web-dev-qa-db-ja.com

ローカルのLinux Gitから直接、Githubリポジトリのディレクトリ名をリモートで変更しますか?

これは私のGitリポジトリです:

https://github.com/benqzq/ulcwe

localという名前のディレクトリがあり、その名前を別の名前に変更したい(たとえば、localから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).

プロジェクトのダウンロード、変更、テスト、ホスティングプロバイダー(この場合はGitHub)へのプッシュがGitの全体的なポイントであることはわかっていますが、ディレクトリを変更するだけの場合は、直接的な操作が必要です。 Gitでも可能ですか?

多分別のプログラムを使うべきですか?

10
user9303970

致命的なエラーメッセージは、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インターフェースの変更が表示されます。

28
Stephen Kitt

いいえ、gitが構造化されているため、これを直接操作として実行する方法はありません。

Gitが機能する方法は、すべての履歴を含むリポジトリ全体のコピーをすべての場所に保存することです。

Github、Bitbucket、またはその他のホスティングプロバイダーは、本質的にはgitリポジトリの別のコピーであり、かなりのWebインターフェイスが上にあり、ほとんどのワークフローで真の中心的なソースとして扱われますが、gitユーティリティはこれを知りません。

変更はコミットとして追跡されます。 direct operationは、コミットを作成せずにフォルダの名前を変更する方法を意味していると思います。これは履歴を書き換えることで可能ですが、特にgit repoのコピーを持つ複数の人/マシンが存在する場合は不整合が生じる可能性があるため、お勧めしません。

Gitリポジトリ内のフォルダの名前を変更する最も簡単な方法は、ローカルでクローンすることです。

git clone [url]
cd [git-folder]

すでにリポジトリのローカルコピーがある場合は、それをプルして、リモートリポジトリの最新版であることを確認します。

git pull

ローカルで必要な変更を行います

git mv local xyz

Githubによってステージング領域に自動的に追加されます。次に、これらの変更をコミットしてプッシュする必要があります。

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

これにより、変更がローカルリポジトリにコミットされ、これらの変更がリポジトリのリモートコピー(この場合はGithub)にプッシュされます。

5
Matt

GitHub APIを使用すると、リポジトリを複製せずにディレクトリの名前を変更できます。私はどんな実装も知りません。

ソース: https://stackoverflow.com/a/31567094/370786

0
Rolf