Git はファイル名の大文字と小文字を無視し、修正する
転載先 http://blog.csdn.net/xx326664162/article/details/51523358 記事引用元 雪泉のブログ
また、私の他の類似の記事もご覧ください!こちらも参考になると思います。
普段の開発では、ファイル名の大文字・小文字を変更することがありますが、変更した後、Gitでは何も反応がありません。git statusを使用しているとき、以下のような状況に遭遇したら、それはGITが以下のように大文字と小文字を区別しないことを意味します。
[rock@ROCK-PC]$ /d/WampServer/www/hexu.org/code (dev)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Nothing to commit, working directory clean
git はファイル内で大文字と小文字を区別する
Git がファイル名の大きさに無頓着なのを修正するには?
オプション1:大文字と小文字を区別するように設定する(推奨されません)。
$ git config core.ignorecase false
この方法を使用すると、問題が発生します。
<テーブル ブランチ ファイル名 B TEST.txt A test.txt
Bブランチでは
$ git config core.ignorecase false
コマンドを実行し、手動でファイル名をTEST.txtに変更してから、Aブランチに戻ろうとすると、以下のエラーが発生します。
he@he-PC MINGW64 /f/StudioProjects/artandroidclient (B)
$ git checkout A
error: The following untracked working tree files would be overwritten by checkout:
artandroidclient/src/main/java/cn/hdnc/artandroidclient/test.txt
Please move or remove them before you can switch branches.
Aborting
意味:Aブランチのtest.txtは、Bブランチのファイルを書き換える
いろいろ探した結果、両者のいいとこ取りのような
http://stackoverflow.com/questions/4858047/the-following-untracked-working-tree-files-would-be-overwritten-by-checkout
オプション2:ファイル名を変更する(推奨)。
最初の方法(推奨)。
git mv A B Rename A to B
名前を直接大文字から小文字に変更しても、この時点ではgitが大文字小文字を区別しないため、変更されることはありません。以下のようになります。
he@XueXuan-PC MINGW64 /f/StudioProjects/artandroidclient (master)
$ git mv artsdk/src/main/java/cn/hdnc/ArtSDK artsdk/src/main/java/cn/hdnc/artsdk
Rename from 'artsdk/src/main/java/cn/hdnc/ArtSDK' to 'artsdk/src/main/java/cn/hdnc/artsdk/ArtSDK' failed. Should I try again? (y/n) n
fatal: renaming 'artsdk/src/main/java/cn/hdnc/ArtSDK' failed: Permission denied
まずファイル名を他のものに変更し、次に指定したファイル名に変更します。これを以下に示します。
he@XueXuan-PC MINGW64 /f/StudioProjects/artandroidclient (master)
$ git mv artsdk/src/main/java/cn/hdnc/ArtSDK artsdk/src/main/java/cn/hdnc/art
he@XueXuan-PC MINGW64 /f/StudioProjects/artandroidclient (master)
$ git mv artsdk/src/main/java/cn/hdnc/ArtSDK artsdk/src/main/java/cn/hdnc/artsdk
fatal: bad source, source=artsdk/src/main/java/cn/hdnc/ArtSDK, destination=artsdk/src/main/java/cn/hdnc/artsdk
he@XueXuan-PC MINGW64 /f/StudioProjects/artandroidclient (master)
$ git mv artsdk/src/main/java/cn/hdnc/art artsdk/src/main/java/cn/hdnc/artsdk
2つ目の方法
git mvを実行することは、以下の3つのコマンドを実行することと同じです( 詳細 ).
$ mv README.md README
$ git rm README.md
$ git add README
ですから、自分でこれらのコマンドを実行して、git mv にアクセスすることもできます。
git rmコマンドを使うときは、まずデータのバックアップをしましょう!!!!
$ git rm ; git add ; git commit -m "rename file"
レポジトリをみんなと共有しているので、私が使ったオプション2で解決しました。
$ git rm code/library/BuildTag*.php; git status
On branch dev
Changes to be committed:
(use "git reset HEAD ... " to unstage)
deleted: code/library/BuildTagAfc.php
deleted: code/library/BuildTagAfs.php
rock@ROCK-PC /d/WampServer/www/hexu.org/code (dev)
$ git add code/library/BuildTag*.php; git status
On branch dev
Changes to be committed:
(use "git reset HEAD ... " to unstage)
renamed: code/library/BuildTagAfc.php -> code/library/BuildTagafc.php
renamed: code/library/BuildTagAfs.php -> code/library/BuildTagafs.php
参考 http://ju.outofmemory.cn/entry/95443
技術について簡単に理解し、より多くを学ぶために、私の公開ウェブサイトで私をフォローしてください。
関連
-
[git push] 解決策: ! [リモート拒否] master -> master (受信前のフックは拒否されました)
-
解決策 このリポジトリでは、別の git プロセスが実行されているようです。たとえば、「git commit」によって開かれたエディタなどです。
-
undefinedGitのプッシュコードには、! [rejected] master -> master (fetch first) 問題があります。
-
解决[email protected]。パーミッションが拒否されました (publickey)。リモートリポジトリから読み取れませんでした
-
エラーが発生しました。マージされていないファイルがあるため、プリングはできません
-
Git Bashが致命的に表示される:この操作は作業ツリーで実行する必要がある
-
git commit コマンドで追跡した新規ファイルをコミットすると、プロンプト *** Please tell me who you are が表示されます。
-
Gitのエラーについて覚えておく-すべて最新にする
-
hint: 現在のブランチの先端が hint: そのリモートカウントより遅れているため、更新が拒否されました。
-
Git error: cannot spawn ssh.の回避策。そのようなファイルやディレクトリはありません
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
git commit to GitHub エラー、プロンプト ! [リモート拒否] master -> master (pre-receive hook declined) エラー: 失敗しました。
-
Gitで「このリポジトリでは別のgitプロセスが実行されているようです...」と表示される問題
-
undefinedmaster -> master (non-fast-forward) と git ! [拒否] master -> master (フェッチファースト)
-
undefinedGit Git がファイルをコードクラウドにプッシュする際に報告されるエラーを解決します: ! [拒否] master -> master (最初にフェッチ)
-
git pull エラー: .git/FETCH_HEAD を開けない: パーミッションが拒否されました。
-
致命的 リモートレフマスターが見つからない
-
gpg: "xxx" をスキップ: 秘密鍵のための1つの解決策が利用できない
-
Note: Git prompts このリポジトリで別の git プロセスが実行されているようです ....
-
解決策正しいアクセス権を持っていることと、リポジトリが存在することを確認してください。
-
Git エラー: ヒント: リモートにあなたが持っていない作業が含まれているため、更新が拒否されました ヒント: あなたが持っていない作業です。