my-feature-branch
にマージされた場合my-main-branch
、どのコミットがからマージされたかを確認するにはどうすればよいmy-feature-branch
ですか?
3 に答える
git log abc123^..abc123
は、merge-commitにマージされたコミットを示していabc123
ます。
簡単に再利用できるようにgit
エイリアスを作成します。log-merge
$ git config --global alias.log-merge \
'!f() { git log --stat "$1^..$1"; }; f'
$ git log-merge abc123
1行バージョンの場合:
$ git config --global alias.log-merge-short \
'!f() { git log --pretty=oneline "$1^..$1"; }; f'
最後のマージでマージされたすべてのコミットを確認したい場合は、次のことを試すことができます。
git log $(git merge-base --octopus \
$(git log -1 --merges --pretty=format:%P)).. --boundary
これが私の現在のログの例です:
$ git log --graph --pretty=oneline --abbrev-commit
* 44899b9 pouf
* 8f49f9c Merge branch 'test'
|\
| * 3db39ca test
* | 69f431c pif
* | df1f51c lala
|/
* 8fae178 pif2
* 20f8ba6 init
最後のマージに関連するコミットのみが必要な場合は、使用git log -1 --merges --pretty=format:%P
可能な最初のマージの親を取得するために使用する必要があります。
$ git log -1 --merges --pretty=format:%P
69f431cec7859b61d33c7503c9431ceea2aaf3e0 3db39ca3ab1e8f70462db23d94590628b5e7ad7b
追跡する必要のある親がわかったので、それらを介して取得できる共通ベースが必要ですgit merge-base --octopus
(-念のためタコがあります):
$ git merge-base --octopus \
$(git log -1 --merges \
--pretty=format:%P)
8fae178666e34a480b22e40f858efd9e7c66c3ca
これでgit log
、ベースから現在までのすべてのコミットを検索できますHEAD
。
$ git log $(git merge-base --octopus \
$(git log -1 --merges --pretty=format:%P)).. \
--boundary --graph --pretty=oneline --abbrev-commit
* 44899b9 pouf
* 8f49f9c Merge branch 'test'
|\
| * 3db39ca test
* | 69f431c pif
* | df1f51c lala
|/
o 8fae178 pif2
あなたが少し完璧主義者なら、あなたもこれを行うことができます:
$ git log
$(git merge-base --octopus \
$(git log -1 \
--merges --pretty=format:%P))..$(git log -1 --merges --pretty=format:%H) \
--boundary --graph --pretty=oneline --abbrev-commit
* 8f49f9c Merge branch 'test'
|\
| * 3db39ca test
* | 69f431c pif
* | df1f51c lala
|/
o 8fae178 pif2
今、私はこれをエイリアスとして保持すると思います:)
--graph --pretty=oneline --abbrev-commit
オプションはオプションです。
資力 :
マージコミット(たとえばa2345
)があり、と言うとgit log -1 a2345
、親の名前(つまり、このコミットでマージされたコミット)が表示されます。それはあなたが探しているものですか?