[解決済み] Git のコミット範囲におけるダブルドット "..." とトリプルドット "..." の違いは何ですか?
質問
Git のコマンドの中には、コミット範囲を指定するものがあります。
..
また、別の構文では3つのドットを使用します。
...
.
両者の違いは何でしょうか?
どのように解決するのですか?
を使用しているかどうかによります。
log
コマンドか
diff
コマンドを使用します。には
log
の場合、それは
man git-rev-parse
のドキュメントを参照してください。
あるコミットから到達可能なコミットを除外するためには、接頭辞 ^ の表記を用います。例:^r1 r2 は r2 から到達可能なコミットを意味しますが、r1 から到達可能なコミットは除外されます。
このセット操作は非常に頻繁に登場します。 という略記があります。このような場合 2 つのコミット r1 と r2 がある場合 (名前は、(1) で説明した構文にしたがっています)。 リビジョンの指定) をすると 到達可能なコミットを要求する を除く、r2からの r1 からは "^r1 r2" で到達可能であり、これは は "r1..r2" のように書くことができます。
同様の表記で "r1...r2" もあります。 の対称差分といいます。 r2 は次のように定義されます。 $(git merge-base --all r1 r2)" です。これは であるコミットの集合です。 r1またはr2のどちらか一方から到達可能な の両方からではありません。
つまり、基本的には、2つのブランチのどちらかにあるコミットはすべて取得できますが、両方にあるコミットは取得できないということです。
において
diff
の場合、それは
man git-diff
のドキュメントを参照してください。
git diff [--options] <commit>...<commit> [--] [<path>...] This form is to view the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>. "git diff A...B" is equivalent to "git diff $(git-merge-base A B) B". You can omit any one of <commit>, which has the same effect as using HEAD instead.
というのは少し曖昧ですね。基本的には、そのブランチと別のブランチの差分のみを表示するということです。あなたが最初に指定したコミッティと最後に共通するコミットを探し、そこに二番目のコミッティを差分として表示するのです。このブランチだけの変更を意識することなく、このブランチと比較してそのブランチでどのような変更が行われたのかを簡単に確認できる方法です。
は
..
はやや単純です。
git-diff
の場合、それは
git diff A B
で、AをBに対して差分するだけです。
log
の場合、B にあって A にないコミットがすべて表示されます。
関連
-
[解決済み] Git作者不明
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] git rebase の取り消し
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] ステージングされた変更を表示するにはどうしたらいいですか?
-
[解決済み] .gitignoreと.gitkeepの違いは何ですか?
-
[解決済み] Git で現在のコミットのハッシュを取得する方法は?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Git, fatal: リモートエンドが予期せずハングアップしました。
-
[解決済み】マージ後のコミットでGitエラー - fatal: マージ中に部分コミットができない
-
[解決済み】未マージファイルがあるため、Gitマージができない
-
[解決済み】git push >> fatal: 設定されたプッシュ先がありません。
-
[解決済み] git initを2回実行すると、リポジトリが初期化されますか?それとも既存のリポジトリを再初期化しますか?
-
[解決済み] Git 二つのブランチの直近の共通祖先を見つける
-
[解決済み】gitブランチで変更されたすべてのファイルを取得する
-
[解決済み】Git diffのコミット範囲にあるダブルドット「...」とトリプルドット「...」の違いは何ですか?重複] [重複] [重複] [重複] [重複] [重複
-
[解決済み】git のブランチ間の視覚的な差分
-
[解決済み] マージコミットで、変更されたすべてのファイルが親のいずれかと一致する場合でも、差分出力を組み合わせて "git show" するにはどうすればよいですか?