2016-06-23 4 views
4

に問題をコミットしたくない多くの地元の変更:のgit:私は

私はリポジトリをクローン化し、コンパイルしたアプリケーションの動作をカスタマイズするためにいくつかの設定ファイルがありますが、私は(約10それらのいくつかを変更しました私のニーズに合わせて今、私が何かをコミットするたびに、git status(または私の日常的に使用されているGUIの「unstaged files」)の出力で行ごとに行かなければならず、コミットしたくない10個のファイルは常にそこに、これはすぐに迷惑になります。

git statusが必要なときにgitにこれらの10個のファイルを無視させる不具合がありますか?もしあれば)?

これらのファイルを1つの大きな設定にマージすることはできません。その理由の1つは、ファイルの内容が異なり、一部の時点で本番環境で実行されているためです。

恐らく何もする必要がない場合は、私は通常、端末のgitではなく、GUI(よく見えるdiff、コミットするものの便利な制御など)を使用します。

+0

をプッシュしたくない設定ファイル

git checkout master git cherry-pick mybranch 

に変更をプッシュし、/あなたが欲しいものを選びたいしないこと、その後場合のgit隠し –

+0

を使用しない場合と変更かあなたは、gitエイリアスが動作する可能性があります端末を使用します。 '[エイリアス] st =!git status -s | grep -v -E 'path1_to _ignore | path2_to_ignore''を実行します。 – ElpieKay

+0

@PardeepPathania私は変更を保存したいので、コンパイルはそれらに依存し、隠しはPIAです。いくつかの個別のファイルを隠すことはできません( '-p'は使いにくいです) –

答えて

2

.gitignoreファイルを使用して、そこに10個のファイルへのパスを追加できます。何らかの理由であなたが.gitignoreを使用しない場合

、あなたは .git/info/excludeを試すこと - それは .gitignoreのように動作しますが、それは .gitフォルダ内にあるとして、gitの状態で示されていません。あなたはこのエイリアスを設定し、リモートで自分のブランチを更新するたびに、設定ファイルを無視することができます

+2

.gitignoreは** unstagedファイル**には影響しません。 **追跡されていないファイル**にのみ適用されます。 – Alderath

1

1つのトリックとして働く

[alias] 
    fnm = !git fetch upstream && git merge --no-log --no-ff --no-commit upstream/branch && git reset file/path/not/to/be/updated && git checkout file/path/not/to/be/updated 

詳しい説明は次のとおりです。

ます試みるかもしれない:新しい支店をチェックアウトする

git checkout -b mybranch 

unsafed chagngesがあるかどうか、これらのファイルに

git add <config-files> 
git commit -m "my safe of config files" 

チェックし、変更をコミットします。

git status 

は、今、あなたは、次の操作を行う場合

git pull origin master 

あなたはすべてのリモート変更、競合のための取得設定ファイル(存在する場合)

変更をプッシュしたいときはいつでも、あなたがしたいですか

+0

これは私が得ることができる最高だと思う、たぶん私は 'prepare_to_commit.sh'とポストコミットフックを書くべきです –

関連する問題