[解決済み】git mvで、ディレクトリの大文字と小文字だけを変更する。
質問
似たような 質問 私の問題に対する答えは見つかりませんでした。
FOOからfooにディレクトリ名を変更しようとすると
git mv FOO foo
私は得る
fatal: renaming 'FOO' failed: Invalid argument
OKです。そこで私は試してみました
git mv FOO foo2 && git mv foo2 foo
しかし、コミットしようとすると
git commit .
と表示されます。
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# foo
nothing added to commit but untracked files present (use "git add" to track)
でディレクトリを追加すると
git add foo
は何も変化せず
git commit .
というメッセージが再び表示されます。
私は何を間違えているのでしょうか?私は大文字と小文字を区別するシステム(OSX)を使用していると思ったのですが、なぜ単にディレクトリの名前を変更できないのでしょうか?
解決方法は?
大文字と小文字が区別されない環境にあります。さらに
-A
のリムーブ側をケアしてくれません。
mv
を、Git が理解できるようにします。
警告! この操作をするときに、他の変更や未追跡のファイルがないことを確認してください。
git stash -u
を実行し、その後
git stash pop
の後です。続けて これを回避するには、次のようにします。
mv foo foo2
git add -A
git commit -m "renaming"
mv foo2 FOO
git add -A
git commit --amend -m "renamed foo to FOO"
これは、作業ディレクトリを変更してコミットし、2つのコミットをまとめるという、画期的な方法です。インデックスにあるファイルを移動すればよいのですが、git に慣れていない人にとっては、何が起こっているのかがよくわからないかもしれません。短いバージョンでは
git mv foo foo2
git mv foo2 FOO
git commit -m "changed case of dir"
コメントで提案されているように、インタラクティブなリベースも可能です (
git rebase -i HEAD~5
が 5 コミット前に導入された場合) にそのケースを修正すれば、履歴のどこにも間違ったケースを表示させることはありません。この場合、それ以降のコミットハッシュは異なるものになり、他の人はそのブランチの最近の過去とリベースや再マージをしなければならなくなるので注意が必要です。
これは、ファイル名の修正に関連するものです。 git は大文字と小文字を区別しないのですか?
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「bad interpreter.NET」を解決するには?そのようなファイルやディレクトリはありません"
-
[解決済み】SSH -L 接続は成功したが、localhost のポートフォワーディングが機能しない "channel 3: open failed: connect failed: 接続が拒否されました"
-
[解決済み] SSH -L 接続は成功したが、localhost のポート転送が機能しない "channel 3: open failed: connect failed: 接続が拒否されました"
-
[解決済み] 特に更新された上流をトピックブランチにマージする場合は、このマージが必要な理由を説明するコミットメッセージを入力してください。
-
[解決済み] なぜ `source ~/.profile` を使い続けないと設定ができないのですか?
-
[解決済み] gdbが「プロセスIDのMachタスクポートが見つからない」というエラーで失敗する
-
[解決済み] Homebrewを再インストールする最も良い/安全な方法は何ですか?
-
[解決済み] OS Xターミナルでカーソルを単語単位で移動する方法
-
[解決済み] Gitのパスワードを更新する方法を教えてください。
-
[解決済み] Git でファイル名の大文字小文字を変更する