変更をコミットする前にローカルファイルをgitソース管理と比較できるgitの機能はありますか?
もちろんできます。
引数なしで_git diff
_ commandを使用すると、ファイルシステム内の変更された各ファイルを現在のチェックアウトブランチ(または)タグ内のファイルと比較します。
git diff <tag(or)branch name>
:を使用すると、ファイルシステム内の変更された各ファイルを、指定されたブランチ(または)タグ内のファイルと比較します。
git diff <path/to/file_name (or) path/to/folder>
:を使用すると、ファイルシステム内のフォルダー内の指定されたファイルが、現在のチェックアウトされたブランチ(または)タグと比較されます。
git diff <tag1(or)branch1 name> <tag2(or)branch2 name>
:を使用すると、2つのブランチ/タグ間で変更されたすべてのファイルが比較されます。
多くのオプションがあり、「git diff」コマンドに渡して出力をフォーマットできます。ここにいくつかをリストしました:
git diff --name-only
_:変更されたファイルの名前のみを表示し、内容は表示しません。git diff --name-status
_:変更されたファイルの名前とステータスのみを表示します。git diff --cached (or --staged)
:ステージング/インデックス付けされたファイルのみを比較します。詳細については、git bashで_git diff --help
_を実行してください。
参考:_git diff
_はコマンドラインで出力を生成します。ビジュアルツールで出力を表示する場合は、_git difftool
_を使用します。
_git difftool
_を使用:diff/mergeツールを使用してファイルを比較するようにgitを構成できます。このリンクをチェックアウトしてください: Git内でWinmergeを使用してファイルdiffを作成
すべての_git diff
_引数とオプションを_git difftool
_に渡すこともできます。
使用したい
git status
変更されたファイルと追跡しているものが表示されます。次に使用できます
git diff
またはよりGUIに優しい
gitk
差分を表示するには。
私はこの方法を使用することを好みます。
比較のためのスクリプト
#!/bin/sh
( # execute in a subshell so you can continue
# working in the current Shell
set -o xtrace # bash setting that echos each command before it's executed
> /tmp/auto_bcompare_log # truncate existing log file
BCOMP_PATH=/usr/bin/bcompare
BRANCH="$1" # get branch argument from command line
TEMPDIR=`mktemp -d` # get a temp directory
CWD=`pwd` # remember the current directory
git clone $CWD $TEMPDIR
cd $TEMPDIR
git checkout $BRANCH
cd $CWD
$BCOMP_PATH $CWD $TEMPDIR
rm -rf $TEMPDIR
) >> /tmp/auto_bcompare_log 2>&1 < /dev/null & # background and redirect
# stdout/stderr/stdin
上記のスクリプトは間違いなく _not_によって書かれました。私はネットからそれを取りましたが、ソースはわかりません。これをレポジトリにcompare.shとして保存します。 bcompareファイルの正しいパスを指定してください。
コミット前の比較用。
./compare.sh <branch_you_want_to_compare>
このスクリプトは基本的に、一時ディレクトリへのパラメーターとして指定したブランチをチェックアウトし、pwdとの比較のために開きます。これにより、コミットする前に変更を確認できます。これがあなたの望むものであることを願っています。