Git がファイルのリセット/廃棄を拒否する
質問
私は更新することができない特定の js ファイルを持つプロジェクトを持っています。私はローカルで OSX を実行し、私のリモート/ステージング サーバーは Linux (CentOS) です。
私のプロジェクトをローカルにクローンした直後に、私は git ステータスでこれらのすべてのファイルがあることに気づきました。
modified
. 私はそれらを変更したことがないので、試しに
discard changes
または
reset
を追加しても、また出てきてしまいます。修正にあるのは、すべての行を削除して、再度追加することです。
なぜこのようなことが起こるのか、また、私の git ステータスが必要なほどきれいになるように修正する方法がわかりません。
以下はgit statusからの数行です。
# modified: app/webroot/js/ckeditor/plugins/devtools/lang/el.js
# modified: app/webroot/js/ckeditor/plugins/devtools/lang/fa.js
# modified: app/webroot/js/ckeditor/plugins/devtools/lang/gu.js
UPDATE 1:
上記のファイルをコミットすることができましたが、新しい編集を引き出せないため、ステージングサーバがロックされています。
error: Your local changes to the following files would be overwritten by merge:
app/webroot/js/ckeditor/_source/lang/ar.js
app/webroot/js/ckeditor/_source/lang/bg.js
app/webroot/js/ckeditor/_source/lang/bn.js
app/webroot/js/ckeditor/_source/lang/cs.js
...
Aborting
コミット/プッシュができないのは
Updates were rejected because a pushed branch tip is behind its remote counterpart
試してみました。
git reset --hard
と
git stash
git stash drop
しかし、動作しない、何も起こらない。
UPDATE 2です。
git diff
は私に与えてくれます。
The file will have its original line endings in your working directory.
warning: CRLF will be replaced by LF in app/webroot/js/ckeditor/_source/lang/fa.js.
The file will have its original line endings in your working directory.
warning: CRLF will be replaced by LF in app/webroot/js/ckeditor/_source/lang/gu.js.
The file will have its original line endings in your working directory.
...
どのように解決するのですか?
行末を正規化する
修正にあるのは、すべての行を削除して、再度追加することです。
これはコミットされたファイルとディスク上のファイルとの間で改行が変更されているためです。
Githubでは ハンディページ に、この種の問題に対処する方法が詳しく書かれています。簡単に言うと(Linux/OSXの場合)、ステップ1はgitの設定を変更して、改行コードを整理してくれるようにすることです。
git config --global core.autocrlf input
その後、改行コードの正規化をコミットします。
git rm --cached -r .
# Remove everything from the index.
git reset --hard
# Write both the index and working directory from git's database.
git add .
# Prepare to make a commit by staging all the files that will get normalized.
# This is your chance to inspect which files were never normalized. You should
# get lots of messages like: "warning: CRLF will be replaced by LF in file."
git commit -m "Normalize line endings"
# Commit
とすれば、改行が正しく処理されるはずです。詳細は github のヘルプページか、git ドキュメントの該当箇所を参照してください。 書式設定と空白 .
linux-machineのコンフリクトを解決する
新しい編集を取り込まないため、ステージングサーバーがロックされています。
エラーメッセージには "次のファイルに対するローカルの変更は merge:" によって上書きされますとあります。ステージングサーバーの通常の使用(意図的な変更がない)と仮定すると、ローカルの変更は破棄することができます。たとえば、次のようにします。
$ git fetch origin
# Retrieve updates
$ git reset --hard origin/master
# Forcibly change the current branch to match origin/master
これは、作業コピーを更新せずにリポジトリの履歴を取得し、リポジトリの master ブランチと正確に一致するように更新します。最後のコマンドは、コミットされていない変更をすべて破棄することに注意してください。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
undefinedGit Git がファイルをコードクラウドにプッシュする際に報告されるエラーを解決します: ! [拒否] master -> master (最初にフェッチ)
-
git commit コマンドで追跡した新規ファイルをコミットすると、プロンプト *** Please tell me who you are が表示されます。
-
hint: 現在のブランチの先端が hint: そのリモートカウントより遅れているため、更新が拒否されました。
-
Git error: cannot spawn ssh.の回避策。そのようなファイルやディレクトリはありません
-
gitlabの紹介と使い方
-
[解決済み] git status は変更を表示するが、git checkout -- <file> は変更を削除しない。
-
[解決済み] キーフィンガープリントが原因でHerokuにプッシュできない
-
[解決済み] gitにもsvnのような無視コマンドはありますか?
-
[解決済み] Gitでは、これらの言葉はどのような意味ですか?リポジトリ、フォーク、ブランチ、クローン、トラック?
-
[解決済み] Git rebase が失敗しました。「次のファイルに対するローカルの変更はマージによって上書きされます。ローカルでの変更はないのですか?