2016-10-03 9 views
0

最近、私は新しいブランチを作成し、コミットして古いブランチに戻しました。.DS_Store Gitの問題が発生しました

私は新しいブランチをチェックアウトしようとしたが、私はこのエラーました:だから

error: The following untracked working tree files would be overwritten by checkout: 
client/.DS_Store 

を、私はいくつかのグーグルをした、そしてこれらは私の.gitignoreにされている必要があることを学びました。だから私はグローバルな.gitignoreにこの問題を未然に防ぐために追加しました。しかし、それは次のエラーを投げ、私は私が提案し見てきたように、エラーを修正するには、このコマンドを使用する場合、それが動作しないということであると、本に私の問題が解決しない:

git rm --cached client/.DS_Store 
fatal: pathspec 'client/.DS_Store' did not match any files 

私は本当に私の他の支店に戻る必要があります!この時点で私はどのようにそれを行うのですか?

EDIT:私の新しいグローバル.gitignore:

# Compiled source # 
################### 
*.com 
*.class 
*.dll 
*.exe 
*.o 
*.so 

# Packages # 
############ 
# it's better to unpack these files and commit the raw source 
# git has its own built in compression methods 
*.7z 
*.dmg 
*.gz 
*.iso 
*.jar 
*.rar 
*.tar 
*.zip 

# Logs and databases # 
###################### 
*.log 
*.sql 
*.sqlite 

# OS generated files # 
###################### 
.DS_Store 
.DS_Store? 
._* 
.Spotlight-V100 
.Trashes 
ehthumbs.db 
Thumbs.db 
+2

git addを試すことができます。 && git stashを実行し、もう一方のブランチに切り替えます。また、gitignoreをコピー&ペーストできますか?私がgitignoreに追加するたびに、変更が反映されます。私はあなたの上記のコマンドを削除するキャッシュに似た何かを使用しなければならなかったが、問題のフォルダを指定する必要はなかった。 – adpro

+0

それはうまくいった。私は他の支店に切り替えることができました。ありがとうございました! – DJG

+0

問題ありません - 私の答えも見てください – adpro

答えて

1

そのフォルダのためのあなたのgitignoreが正しくないようです。

は、私はそれが動作するはずと信じてこの

# OS generated files # 
###################### 
client/.DS_Store 
## This one might be better 
# **/.DS_Store 

を試してみてください。

それとも、他の枝にあなたを取得する必要

git add . && git stash 

を試すことができますが、あなたはおそらく、あなたの.gitignoreを修正したいと思います。

+0

グローバルな.gitignoreを.DS_Storeとすると、gitはreposのサブフォルダ内の.DS_Storeファイルを無視しませんか? – DJG

+0

@DJG:一度ファイルが追跡されると、それは遅すぎます:無視するエントリは効果がありません。これには、以前の自分のような他のばかげた馬鹿が偶然、ずっと前にファイルを置いた場合も含まれます。 – torek

+0

これでファイルが入ったので、このリポジトリは.gitignoreに行った変更にかかわらず、そのままになっていますか? – DJG

0

一般的に、ブランチの変更を止めるファイルがあると、一時的に隠してから再びポップアップすることができます。隠しブランチは緊急用に使用できますが、ポップしないことを忘れないでくださいそれらからあなたのgitのワークフローにもっと混乱を招く可能性があります。

スタッシュはファイルを追加しているだけなので、これは私が行うことです。

  1. gitのステータス

  2. gitの追加(任意のファイルは人跡未踏されているかどうかを確認します)。 (人跡未踏のファイルが存在する場合のみ)

  3. のgitスタッシュは(今、あなたはあなたがブランチを変更し、あなたが

やりたいことができ、「クリーン」なレポを持っているスタッシュ枝

  • に離れてファイルを隠し

    おそらくgitのbranchwithgitignoreをマージ

    Oneをuが行うことができます行わあなたの第二のブランチに行きたいし、その後 :

    git stash pop

    などすべてがここで動作するはずです。

  • 関連する問題