2016-08-17 2 views
0

このような疑問がたくさんありますが、解決策が必要ではないようです。.gitignore - GitHubのファイルを保存する

githubにコミットせずにローカルファイルの変更を無視するにはどうすればよいですか?例:app/etc/local.xml

Github - 正しいlocal.xmlがありますが、これは上書きしないでください! ローカルの.gitignoreファイルに/ etc/local.xmlというアプリケーションが含まれています しかし、私がファイルを変更すると、まだコミットのために変更されているように見えます。

私が試してみました:

git rm --cached app/etc/local.xml 

をしかし、これはgithubのからファイルを削除し、しかし、それは、私がローカルファイルを編集していきましょうん、それはコミット時には表示されません。

元のファイルをgithubに保存するにはどうすればよいですか?

これは決して人々がこれをやろうnaturalyので、このような多くの質問があります

+1

'git update-index --assume-unchanged app/etc/local.xml'です。 [利用規約](https://www.git-scm.com/docs/git-update-index)が適用されます。 – Boldewyn

答えて

1

私の.gitignore内のすべてのファイルとフォルダとの一貫性はありません(つまり、リポジトリ内の環境に応じて設定ファイルを持っている)、それ働くリポジトリから構成を取り出すこと、または環境ごとに1つのファイル(異なるファイル/ディレクトリ名)とそれを指す外部のシンボリックリンク(または他のメカニズム)を持つこと以外は、このための良い解決策はありません。あなたが見つけた質問には、これに関する詳細がある可能性があります。

あなたはそれを無視してgitのソリューションを必要とすることを考えるかもしれないが、それは(すなわち、git reset --hardはまだローカルの変更を台無しになる、または上流のファイルが変更されます場合git mergeはマニュアルを負う、失敗します本当に長期的には使用ませんオーバーヘッドのすべての時間)。

2

間違った方向に検索しています。

あなたの問題の共通の解決策は、2つのファイルを作成することです:

  • app/etc/local.xml.distを - それのすべての設定のための合理的なデフォルト値を入れて、Gitリポジトリに追加します。
  • app/etc/local.xml - Gitリポジトリに追加し(それが既に存在する場合はそれを削除)して.gitignoreへのパスを追加しないでください、あなたが実際にこのファイルにあなたのコンピュータ上で使用する値を置きます。

彼らは(この目的のためにlocal.xml.distを変更していない)、ファイルのコピーを作成し、それlocal.xmlに名前を付け、それに彼らの実際の構成値を入れなければならないあなたの仲間の開発者を教えるためにlocal.xml.distにコメントを追加します。

local.xml.distのコードを書き込んで、local.xmlが存在する場合は、ロードした値をlocal.xml.distに上書きします。このようにしてlocal.xmlには、実際に設定する必要がある値のみを含めることができます。 local.xml.distが既にローカルコンピュータで使用できるデフォルト値を提供している場合は、local.xmlから逸失する可能性があります。

これは最近、多くのソフトウェアパッケージがどのように動作しているかを示しています。

関連する問題