問題タブ [git-diff]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - これらの git diff コマンドの違いは何ですか?
次の git コマンドの違いは何ですか?
git diff HEAD
git diff HEAD^
git diff --cached
または同義語git diff --staged
git diff
git - git diff - 行末の変更を表示しますか?
エディタがソース ファイルの行末を変更しています。するとgit diff
、同じ行が 2 回表示されます。1 回目-
と 1 回+
目です。目に見える違いはありません。
git diff
この変更が実際にどのようなものであったかを示すにはどうすればよいですか?
git - ローカル リポジトリ上の 1 人の開発者の Git ワークフロー
個人的な git ワークフローを、もう少し扱いやすいものに改良しようとしています。
この投稿の目的で git をどのように使用しているかの背景を次に示します。
リポジトリで作業する唯一の開発者。
ローカル マシンに格納されているリポジトリの単一のコピー。
ブランチは「dev」と「master」の 2 つだけです。
すべての作業は「dev」で行われます。
私が達成しようとしているのは、「マスター」ブランチに対して行われたコミットのみが、確認済みの安定した「開発」コードに基づく実稼働バージョンであるという点に到達することです。
事実上、私がやろうとしていることは次のとおりです。
「dev」のすべてがテストされ、準備が整ったら、「master」を「dev」ブランチ ファイル ツリーの正確なクローンに更新します。
バージョン番号などを更新するために「マスター」にマイナーな変更を加えます...
更新された「マスター」ブランチにコミットします。
「master」ブランチから新しいタグを作成します。
私が最初のステップに近づいている方法は、「マスター」ブランチをチェックアウトしてから実行することです。
私が理解していることから、これは「マスター」のすべてを効果的に吹き飛ばし、ツリー全体を「開発」の内容に置き換えます。「git status」を実行すると、これが上記の #1 に基づいて期待されていることを示しているように見えます。
では、最初の質問:それは正しいですか?
「マスター」ブランチがこれらの更新を受け取った後、スクリプトを実行してファイルのバージョン番号を更新します。次に、標準の「git add」を実行します。そして「git commit -a」ですべての変更を追加します。最後に、新しいタグを作成し、「dev」ブランチに戻ってコーディングを再開します。
では、もう 1 つの質問:そのプロセスで問題を引き起こすものはありますか?
更新:これを初めて入れるべきでしたが、単純にマージを使用していない理由は、マスターのバージョン番号を変更してから、dev の変更とマージしようとすると、マージの競合が発生するためです。それらが無関係であることはわかっていますが、それでもプロセスが停止します。以前に「merge -Xtheirs {branch}」を使用して対処したことがありますが、それについてもわかりません。
更新 2: ここでは、動作しないことがわかっているものをいくつか示します。Mac OSX で動作する bash スクリプトをまとめました。最初のものはマージを使用しようとします:
これを試したもう 1 つの方法は、-Xtheirs を使用することでした。これは、最初は機能しているように見えますが、すべてが更新されるわけではありません。これを確認するには、上記の BREAK の後の最後の数行を削除して、次のように置き換えます。
競合はありませんが、「output-master-test1-c.txt」には、必要な「VERSION-XXX」ではなく「VERSION-2.0」が表示されます。これは、ファイルに変更がなかったために発生したようです。「output-master-test2-c.txt」ファイルには、予想される「VERSION-XXX」文字列が含まれています。もちろん、問題は、バージョン 3.0 に更新しようとした検索と置換が test1-c で失敗することです。これは、VERSION 文字列の 2.0 部分が認識されないためです。
git - 2 つの異なるブランチのファイルを比較する方法
あるブランチでは正常に動作し、別のブランチでは壊れているスクリプトがあります。2 つのバージョンを並べて見て、違いを確認したいと思います。これを行う方法はありますか?
明確にするために、私は比較ツールを探していません (私はBeyond Compareを使用しています)。マスター バージョンと現在のブランチ バージョンを比較して変更点を確認できる Git diff コマンドを探しています。私は合併などの最中ではありません。みたいなことを言いたいだけ
git - GUI で git-diff 出力を調べますか?
git-diff コマンドの出力を GUI で調べることができるプログラムはありますか?
私が探しているのは、SmartGit が作業コピーと HEAD の違いを表示する方法に似たものです。HEADとは異なる各ファイルが表示され、フォーカスされたファイルの差分が表示される場所。
SmartGit に「git diff」コマンドの出力を表示させることが可能かどうかはわかりません。
git - Git Diff - 行の移動を示す
ファイルに移動しただけの行を「除外」できるように、git diff で使用するスクリプトを開発しています。Visual Studio 2008 は、Designer ファイルを操作する際に苦労しました。ファイル全体を別の順序で書き換えることを主張しているように見えることがあります。これにより、ファイルへの実際の変更を確認することが難しくなります。git diff をスクリプトにパイプして、git diff の出力を微調整しています。出力から行を削除するか、移動を示すために +/- を別の記号に置き換えることができますが、どの記号を使用すればよいかわかりません。
vim - Vim:分割ウィンドウを終了するときにバッファを削除する
私の.vimrcにはこの非常に便利な関数があります:
基本的には、現在作業中のファイルをリポジトリから垂直分割ウィンドウで開き、それと比較します。元のファイルへの変更を簡単に比較できるため、これは非常に便利です。
ただし、問題があります。比較が終了したら、:qと入力して分割ウィンドウを削除します。ただし、これによってバッファリストからバッファが削除されることはなく、バッファリストにcompare.tmpファイルが表示されます。新しい比較を行うたびに次のメッセージが表示されるため、これは厄介です。
警告:編集を開始してから、ファイル「temp/compare.tmp」が変更されました。
垂直分割ウィンドウを閉じるだけでなく、バッファからファイルを削除する方法はありますか?
git - Git のフォルダー構造で変更および追加されたファイルのみをエクスポートする
特定のコミットで変更および追加されたファイルのリストを取得して、それらをエクスポートしてファイル構造のパッケージを生成できるようにしたいと考えています。
アイデアは、パッケージを取得してサーバー上で抽出することです。多くの理由で、レポを自動的にプルするためのフックを作成できません。サーバーを最新の状態に保つ最も簡単な方法は、このパッケージを生成することです。
git - GIT:特定の拡張子を持つ変更されたファイル名
変更したファイルのリストを取得したい場合は、次のコマンドを使用します。
しかし、多くの場合、私は今気にしない多くのファイルを取得します。たとえば、PHPサーバーにアップロードする場合、通常は.phpファイルのリストが必要です。私はこれを試しました:
ただし、残念ながら、最初のサブディレクトリにあるファイルしか表示されません。したがって、二重星を再帰的に解釈していないように見えます。
何か案が?
git - git: git diff で違いが表示されないのはなぜですか?
レポで「git status」を実行すると、次のようになります。
ただし、「git diff myfile」を実行しても違いはありません。これは、変更を加えて削除したため、元に戻ったためですか?
「git checkout myfile」を実行してクリアする必要がありますか?