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


10

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

https://github.com/benqzq/ulcwe

これは、名前のディレクトリを持っているlocalと私は別の名前(から、言うに社名を変更したいlocalxyz)。

各ファイルのディレクトリ名を個別に変更する必要があるため、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でも可能ですか?

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


2
いいえ、Gitでは直接リモート操作はできません。プロジェクトを複製(ダウンロード)して変更し、ホスティングプロバイダーにプッシュバックする必要があります。しかし、コンピューターにプロジェクトがない状態でGithubをどのように使用していますか?すべての変更をGithub Web UIから行っていますか?これは非常に便利でも効率的でもありません。
user253751 2018

この特定の場合、UIを使用することは通常私にとって非常に便利で効率的です。主な
見落とし

回答:


28

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


14
つまり、Gitリポジトリ内のファイルに対する他の操作と同じです。
オービットのライトネスレース

2
@LightnessRacesinOrbitアスカーは、これまでのすべての変更にWeb UIを使用していたようです。
user253751

5

いいえ、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)にプッシュされます。


8
いいえ、履歴はコミット間の変更として保存されません。各コミットは自己サポート型です。コミット間の変更は、必要になるたびに要求に応じて再計算されます。
スティーブンキット2018

3
「すべての履歴がすべての場所にダウンロードされます」 -なしgit clone --depth
user11153

2
これには履歴の書き換えは必要ありません-GitHubはそれを行うコミットを生成するだけで済みます。(Webサイトで直接ファイルを編集するときと同じように。)
user1686

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.