2012-01-24 15 views
3

GITでローカルブランチを切り替えようとしていますが、自動生成され、無視されているコミットされていないファイルがあります。これらのファイルを使ってブランチを切り替えることを妨げない方法はありますか?コミットされていない自動生成の変更でGITのブランチを切り替える

私は共通のワークフローを持っています。私はソースからローカルに生成するいくつかの.classファイルを持つ開発ブランチを持っています。 .classファイルはレポにはなく、無視されます。ローカル開発ブランチを更新すると、すべてのクラスファイルが生成されます。すべてが良いです。

私がブランチを切り替えようとすると、これらのクラスファイルのコミットされていないすべての変更について警告が表示されます。私は強制スイッチでコマンドラインからブランチを切り替えることでこれを回避することができますが、これはばかげているようです。 GITに、これらのファイル/フォルダに関係するべきではないことを知らせる方法はありますか?

私のチームはEclipseとEGitを使用しています。どんな助けもありがとう。

おかげで、 デビッド・R

+0

追跡されていないファイルは、他のブランチの追跡されたファイルと一致しない限り、ブランチを変更できないようにしてはいけません。 –

+0

これは問題の根本原因でした。私は、私がしていなかったときに私が切り替えていたブランチでこれらのファイルをuntracked/deletedと思った。これは古いユーザーエラーです。私はこれが私自身の問題だったという点を結びつけていないでしょう。ありがとう! –

答えて

3

あなたの他の分岐は、おそらくそれらをコミットしていると、これらはあなたがあなたの作業ディレクトリに持っているものと衝突します。あなたが本当にこれらのファイルをコミットしたくない場合は、

git clean -xdf # to get rid of the untracked files and then you can switch 

または

git clone this-repo # to another place 
git checkout -t origin/other-branch 
# clean up the files that should be ignored 
git add -A && git commit -m "fixed ignored files" && git push -f 
# go back to the original repo 
git checkout other-branch # should work now 
+0

ありがとうございます。これが問題だった –

0

ローカル.gitignoreファイルに追加する:あなたは、2つのことのいずれかを実行することができます。 Pythonプロジェクトで

、これは私の.gitignoreは、この次のようになります。

.*~ 
*~ 
*.py[co] 

# Unit test/coverage reports 
.coverage 
.tox 

#Translations 
*.mo 

様々なプログラミング言語とenviromentsに人気の.gitignoreファイルのgit treeもあります。

あなたの仕事を保持したいが、おそらく別のブランチにホップしたい場合は、 git stash があなたのフレンドです。

git stash save "meaningful message" 

は離れスタッシュを保存し、枝に

git stash list 

を切り替えることができますさまざまなスタッシュ

git shash pop <stash id> 

がコミットされていないものをあるスタッシュ

0

注意が復元されます一覧表示されますファイルは引き続き問題ですが、recent EGit2.0は現在supports stashです。

Egit stash

と分岐結果ダイアログで新しいスタッシュオプションがあります。
は、ブランチがチェックアウトされないようにする競合する変更をすぐに隠すことができます。

関連する問題