Jika Anda melakukannya git log --patch -- path/to/file
, Anda akan mendapatkan riwayat file bersama dengan diff dari semua perubahan yang dibuat dengan setiap komit, seperti ini:
$ git log --patch -- git-rebase.sh
commit 20351bb06bf4d32ef3d1a6849d01636f6593339f
Author: Ramkumar Ramachandra <[email protected]>
Date: Sat Jun 15 18:43:26 2013 +0530
rebase: use 'git stash store' to simplify logic
rebase has no reason to know about the implementation of the stash. In
the case when applying the autostash results in conflicts, replace the
relevant code in finish_rebase () to simply call 'git stash store'.
Signed-off-by: Ramkumar Ramachandra <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
diff --git a/git-rebase.sh b/git-rebase.sh
index d0c11a9..17be392 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -153,11 +153,8 @@ finish_rebase () {
then
echo "$(gettext 'Applied autostash.')"
else
- ref_stash=refs/stash &&
- >>"$GIT_DIR/logs/$ref_stash" &&
- git update-ref -m "autostash" $ref_stash $stash_sha1 ||
- die "$(eval_gettext 'Cannot store $stash_sha1')"
-
+ git stash store -m "autostash" -q $stash_sha1 ||
+ die "$(eval_gettext "Cannot store \$stash_sha1")"
gettext 'Applying autostash resulted in conflicts.
Your changes are safe in the stash.
You can run "git stash pop" or "git stash drop" it at any time.
commit 2e6e276decde2a9f04fc29bce734a49d3ba8f484
Author: Ramkumar Ramachandra <[email protected]>
Date: Fri Jun 14 18:47:52 2013 +0530
rebase: use peel_committish() where appropriate
The revisions specified on the command-line as <onto> and <upstream>
arguments could be of the form :/quuxery; so, use peel_committish() to
resolve them. The failing tests in t/rebase and t/rebase-interactive
now pass.
Signed-off-by: Ramkumar Ramachandra <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
diff --git a/git-rebase.sh b/git-rebase.sh
index d0c11a9..6987b9b 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -434,7 +434,7 @@ then
shift
;;
esac
- upstream=`git rev-parse --verify "${upstream_name}^0"` ||
+ upstream=$(peel_committish "${upstream_name}") ||
die "$(eval_gettext "invalid upstream \$upstream_name")"
upstream_arg="$upstream_name"
else
@@ -470,7 +470,7 @@ case "$onto_name" in
fi
;;
*)
- onto=$(git rev-parse --verify "${onto_name}^0") ||
+ onto=$(peel_committish "$onto_name") ||
die "$(eval_gettext "Does not point to a valid commit: \$onto_name")"
;;
esac
Saya ingin bisa mendapatkan format yang sama menggunakan antarmuka web GitHub (bukan baris perintah) , dan saya ingin tautan dikirim ke orang lain tanpa kode.
git
version-control
github
ma11hew28
sumber
sumber
Jawaban:
URL berikut akan menampilkan semua komit untuk satu file dalam format yang mirip dengan
git log -p
:http://github.com/<username>/<project>/commits/<branch>/<path/to/file>
...dimana:
<username>
adalah nama pengguna dari orang yang memiliki repo<project>
adalah nama repo<branch>
bisa menjadi 'master' atau cabang lainnya<path/to/file>
mudah-mudahan sudah cukup jelasMemilih (agak) acak, berikut adalah contoh dari repo vim-fugitive .
sumber
git log --patch -- path/to/file
yang diminta OP.Berdasarkan jawaban di atas dan upaya saya sendiri untuk menemukan fitur yang tepat ini, tampaknya jawaban yang benar untuk pertanyaan ini adalah tidak .
Sunting: sebelum Anda turun suara, mungkin coba dan buktikan saya salah. Terkadang jawaban yang benar bukanlah yang ingin Anda dengar.
sumber
Alternatif untuk jawaban URL langsung (yang BTW benar sekali) menggunakan antarmuka GitHub adalah:
sumber
git log -p -- file
. Apa yang Anda tunjukkan hanyalah log untuk file tertentu, sepertigit log -- file
, tanpa patch diff.Jika Anda menggunakan Linux, instal TIG sebagai:
lalu,
Ini akan menunjukkan kepada Anda semua komit dan perubahannya masing-masing
Talat Parwez
sumber