Mulai 24 Mei 2020, Anda sekarang dapat menggunakan alat pihak ketiga git diffn
(pengungkapan penuh: Saya menulisnya) untuk tujuan ini. Ini adalah pembungkus ringan git diff
, ditulis dalam awk
bahasa pemrograman berbasis pola / tindakan. Berikut adalah contoh keluaran dari menjalankan git diffn
:
Berikut demo nya:
1/3: Demo git diffn
:
Buat file ini:
hello_world.c:
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
Lakukan:
git add hello_world.c
git commit -m "add hello_world.c"
Ubah ke ini dan simpan file:
hello_world.c:
// Basic hello world example
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Hello Gabriel\n");
int i = 700;
printf("i = %i\n", i);
return 0;
}
Sekarang jalankan:
git diff
Inilah keluaran git diff
pertama untuk tujuan perbandingan:
$ git diff
diff --git a/hello_world.c b/hello_world.c
index e01704a..e971b73 100644
--- a/hello_world.c
+++ b/hello_world.c
@@ -1,8 +1,12 @@
+// Basic hello world example
+
#include <stdio.h>
-int main()
+int main(int argc, char *argv[])
{
- printf("Hello World\n");
-
+ printf("Hello Gabriel\n");
+
+ int i = 700;
+ printf("i = %i\n", i);
return 0;
-}
\ No newline at end of file
+}
Dan screenshot untuk menunjukkan warnanya. Perhatikan bahwa bagian yang disorot merah hanya menampilkan spasi kosong (dalam hal ini spasi) yang dapat dihapus:
Sekarang, inilah hasil dari git diffn
. Perhatikan itu menunjukkan semua nomor baris dengan sempurna!
- Nomor baris untuk baris yang dihapus ada di sebelah kiri, dan tunjukkan
-
tanda di paling kiri DAN di sebelah kanan :
untuk membantu Anda melihat dengan lebih baik - apakah mata Anda suka melihat ke bawah ke kanan dari titik dua atau ke bawah di ujung kiri layar.
- Nomor baris untuk baris yang ditambahkan lebih jauh ke kanan, dan menunjukkan
+
tanda di paling kiri DAN di kanan :
.
- Nomor baris untuk baris tidak berubah yang ditampilkan untuk konteks ditampilkan untuk kiri (file lama) DAN kanan (file baru), dipisahkan oleh a
,
.
Hasil dari git diffn
:
$ git diffn
diff --git a/hello_world.c b/hello_world.c
index e01704a..e971b73 100644
--- a/hello_world.c
+++ b/hello_world.c
@@ -1,8 +1,12 @@
+ 1:+// Basic hello world example
+ 2:+
1, 3: #include <stdio.h>
2, 4:
- 3 :-int main()
+ 5:+int main(int argc, char *argv[])
4, 6: {
- 5 :- printf("Hello World\n");
- 6 :-
+ 7:+ printf("Hello Gabriel\n");
+ 8:+
+ 9:+ int i = 700;
+ 10:+ printf("i = %i\n", i);
7, 11: return 0;
- 8 :-}
\ No newline at end of file
+ 12:+}
Dan screenshot untuk menunjukkan warnanya. Perhatikan bahwa titik dua TIDAK diwarnai atau diatur gaya agar sesuai dengan teks di sekitarnya di kiri dan kanan. Ini adalah perilaku yang disengaja dan dirancang untuk bertindak sebagai pemisah visual antara nomor baris yang ditambahkan di kiri dan git diff
keluaran asli di kanan.
2/3: Apa itu?
Dari atasgit-diffn.sh
:
DESKRIPSI:
git-diffn.sh
pengganti drop-in git diff
yang juga menunjukkan baris 'n'umbers! Gunakan persis seperti itu git diff
, kecuali Anda akan melihat nomor baris yang indah ini juga untuk membantu Anda memahami perubahan Anda.
karena ini hanya pembungkus berbasis bahasa awk yang ringan git diff
, ia menerima SEMUA opsi dan parameter yang git diff
menerima. Contoh:
git diffn HEAD~
git diffn HEAD~3..HEAD~2
berfungsi dengan git diff
pengaturan warna Anda , bahkan jika Anda menggunakan warna kustom
Lihat jawaban saya di sini untuk cara mengatur warna diff khusus, serta untuk melihat tangkapan layar dari keluaran warna khusus dari git diffn
: Bagaimana Anda menyesuaikan warna header diff di git diff?
Berikut adalah beberapa contoh git config
perintah dari jawaban saya di atas untuk mengatur git diff
warna dan atribut khusus (pemformatan teks):
git config --global color.diff.meta "blue"
git config --global color.diff.old "black red strike"
git config --global color.diff.new "black green italic"
git config --global color.diff.context "yellow bold"
di git diffn
, keluaran warna AKTIF secara default; jika Anda ingin menonaktifkan warna keluaran, Anda harus menggunakan --no-color
atau --color=never
. Lihat man git diff
untuk detailnya. Contoh:
git diffn --color=never HEAD~
git diffn --no-color HEAD~3..HEAD~2
3/3: Instalasi
- Windows (belum teruji): ini dapat bekerja di dalam terminal bash yang disertakan dengan Git untuk Windows , tetapi belum teruji. Instal Git untuk Windows. Buka terminal bash yang menyertainya, dan coba ikuti instruksi di bawah ini. Saya memerlukan beberapa penguji yang akan menguji ini di Git untuk Windows. Silakan lihat dan jawab di sini: https://github.com/git-for-windows/git/issues/2635 .
- Mac (belum teruji): gunakan terminal dan ikuti instruksi di bawah ini. Anda mungkin perlu menginstal
gawk
. Jika demikian, coba ini : brew install gawk
.
- Linux (diuji pada Ubuntu 18.04 dan berfungsi dengan sempurna): ikuti petunjuk terminal di bawah ini.
Opsi 1 (rekomendasi saya): unduh seluruh repo dan kemudian buat symlink ke program sehingga Anda dapat dengan mudah menerima pembaruan dengan melakukan a git pull
dari repo kapan pun Anda mau.
Pertama, cd
ke mana pun Anda ingin menginstal ini. Lalu lari:
git clone https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles.git
cd eRCaGuy_dotfiles/useful_scripts
mkdir -p ~/bin
ln -si "${PWD}/git-diffn.sh" ~/bin/git-diffn
Selesai! Sekarang lakukan saja langkah terakhir di bawah ini!
Opsi 2 (bagi yang hanya menginginkan 1 file): unduh satu file sekali saja.
mkdir -p ~/bin
cd ~/bin
wget https://raw.githubusercontent.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/master/useful_scripts/git-diffn.sh
chmod +x git-diffn.sh
mv git-diffn.sh git-diffn
Selesai! Sekarang lakukan saja langkah terakhir di bawah ini!
Langkah terakhir:
Sekarang tutup dan buka kembali terminal Anda, atau sumber kembali dengan . ~/.bashrc
, dan Anda selesai!
git diffn
sekarang akan berfungsi sebagai pengganti mampir yang tepat untuk git diff
!
git diff --unified=0 | grep -Po '^\+\+\+ ./\K.*|^@@ -[0-9]+(,[0-9]+)? \+\K[0-9]+(,[0-9]+)?(?= @@)'