4

github を使用してローカル マシンにコードの最新バージョンのコピーを作成しています。プッシュ リクエストはしたくありません。プル リクエストを作成して、ローカル マシンでいくつかのファイルを変更したいだけです。 github を使用して、一部のファイルを無視し、他のファイルを更新します。

次のコマンドを使用して、「config.inc.php」という名前のファイルを無視します。

git rm /home/escogit/www/inc/config.inc.php

次に、リモート github リポジトリ内の他のファイルに変更を加えました。コマンド「git pull」で新しい変更を取得しようとすると、次のエラーが発生します。

リモート: オブジェクトのカウント: 9、完了。
remote: オブジェクトの圧縮: 100% (1/1)、完了。
リモート: 合計 5 (デルタ 4)、再利用 5 (デルタ 4)
オブジェクトの開梱: 100% (5/5)、完了。
github.com から:Visooal/Colegios
   e724ba3..a624059 マスター -> オリジン/マスター
e724ba3..a624059 を更新しています
エラー: 次のファイルに対するローカルの変更は、マージによって上書きされます:
www/inc/config.inc.php
マージする前に、変更をコミットするか、隠しておいてください。
中止しています

注:コマンド git commit -m ".config.inc.php ignore" でコミットしても、そのエラーが発生します

4

3 に答える 3

1

まず、git rmファイルを無視しません。ファイルをローカルおよびインデックスから削除します。ファイルを削除する前にコミットした場合、現在のインデックスになくても、常にツリーに残ります。別の人が誤って簡単に再追加できます。その後、そのファイルの .gitignore エントリをセットアップする必要がありますgit rm。手動で .gitignore をバイパスすることはできますが、ファイルはgit statusUI ツールに表示されなくなります。

あなたはそれが言うことをする必要があります。git commit -a -m "My Commit Comment"あなたがする前にgit pull

より明確な図を示すために、既にgit rmそのファイルを編集したと仮定してこれらのコマンドを実行してください。

echo 'config.inc.php' > .gitignore
git add .gitignore
git commit -a -m "Removed uneeded file"
git pull
// Fix any merge issues
git commit -a -m "Merge"
git push
于 2012-04-10T23:58:02.093 に答える
0

Git では、コミットされていない変更をプルすることはできません。git がファイルを無視するようにするには、通常、.gitignoreファイルを作成しますが、変更になるため、ここではできません。ただし、ファイル名を に追加できますrepo/.git/info/exclude。このファイルは .gitignore と同じ構文を使用しますが、git インデックスによってコミットまたは表示されません。したがって、あなたの例では、次の行を追加します

www/inc/config.inc.php

escogit/.git/info/exclude

これらの無視されたファイルの 1 つをリモートで変更してから、その変更をプルすると、まだ問題が発生する可能性があります。したがって、最善の方法は、ローカルの変更をコミットすることです。とにかくプッシュされることはないので、問題ありません。この実行を行うには

git commit -a -m "a message explaining commit"

その後、プルすると、git が自動的に変更をマージします。ローカルをクリーンな状態に戻す必要がある場合は、これを行うことができますgit checkout .

于 2012-04-11T00:08:36.060 に答える
0

ファイルを無視してから、.gitignore の下の変更を無視できます。

ファイルを.gitignoreに追加します。

echo '/home/escogit/www/inc/config.inc.php' >> .gitignore

次にgitignoreの変更を無視します:

git update-index --assume-unchanged .gitignore

そして、それはDONEです!!

警告: .gitignore のすべてのローカル変更は、このアクションを元に戻すために省略され、必要な機能を使用して再度元に戻されます: git update-index --no-assume-unchanged .gitignore

于 2014-09-30T16:15:44.420 に答える