コミット中の各ファイルのファイル内容を表示するにはどうすればよいですか?Git - コミットの各ファイルのファイル内容を表示するにはどうすればいいですか?
たとえば、コミットに20個のファイルが変更されたとします。今は、ファイルごとにgit show *commit*:*file_path*
を20回使用しています。
この情報をすべて1つのgitコマンドで取得する方法はありますか?
コミット中の各ファイルのファイル内容を表示するにはどうすればよいですか?Git - コミットの各ファイルのファイル内容を表示するにはどうすればいいですか?
たとえば、コミットに20個のファイルが変更されたとします。今は、ファイルごとにgit show *commit*:*file_path*
を20回使用しています。
この情報をすべて1つのgitコマンドで取得する方法はありますか?
最も簡単な方法は、コミットをチェックアウトしてから、それらのファイルを見て(他のファイルは無視する)ことです。あなたがgit worktree add
使用して、例えば、異なる作業ツリーにチェックアウトすることができますことに注意してください(Gitのバージョン2.5以降で利用可能に、ほとんどの2.6.xのように信頼性の高い、しかし、最高のは、おそらく2.8+になります):
$ git worktree add /tmp/tmpbranch HEAD~3
Preparing /tmp/tmpbranch (identifier tmpbranch)
HEAD is now at ...
$ ... work with files in /tmp/tmpbranch ...
ますあなたが持っているものを見ることができます。
$ git worktree list
/home/torek/[path] d22d10a [master]
/tmp/tmpbranch b6fc8a3 (detached HEAD)
と、次のようにクリーンアップ:あなたはどこにでも新しい作業ツリーを配置することができますが、私は現在の仕事のうちのどこかにそれを置くでしょう
$ rm -rf /tmp/tmpbranch
$ git worktree prune
注意~are私自身の混乱を避けるために(これは/ tmpのように)
(私はそれがないと、GitはHEAD
が新しいブランチ名tmpbranch
の下にコミットチェックアウトしているだろう。commit-と支店名を与える。このtmpbranch
と呼ばれますが、コミット指定子としてHEAD~3
を使用すると、それが外れなった原因あなたがデタッチされたHEADを取得するために--detach
を追加しない限り、新しい作業ツリーのそのブランチをチェックアウトします。未処理のコミットハッシュを使用すると、毎回デタッチされたHEADが得られます)。
コミットを対話的にリベースして、それらをスカッシュすることができます。次に、その1つのコミットハッシュについてgit showを実行します。たとえば、次のように設定できます。
git rebase -i HEAD~20
# your terminal will display either nano editor or vim. The format will be as such
# pick *commit_hash* *commit_message*
# pick *commit_hash* *commit_message*
# pick *commit_hash* *commit_message*
# pick *commit_hash* *commit_message*
#change all of your 'pick' to 's' (s means squash). Start from the bottom and go up
#Save your changes on which ever editor you are using. Git will prompt you to name your squash commit
# Then just do git show *commit_hash*
次に、git reflog – gkalikapersaud
を見て変更を元に戻すことができます。これは良い考えです。私はそんなことは考えていませんでした。やってみます。ありがとう。 – ab2231ss
質問があれば教えてください – gkalikapersaud
変更されたファイルの* *または変更されたファイルのリスト*? –
変更されたファイルの内容。私はすでに 'git diff --name-only commit'を使って変更されたファイルのリストを取得しています。 – ab2231ss