Melihat komitmen Git yang tidak dicuri

1752

Bagaimana saya bisa melihat komit lokal yang saya buat, yang belum didorong ke repositori jarak jauh? Kadang-kadang, git statusakan mencetak bahwa cabang saya adalah X melakukan di depan origin/master, tetapi tidak selalu.

Apakah ini bug dengan instalasi Git saya, atau apakah saya kehilangan sesuatu?

Josh Buhler
sumber
18
Dimulai dengan Git 2.5+ (Q2 2015), jawaban yang sebenarnya adalah git log @{push}... Lihat pintasan baru itu @{push}(merujuk cabang pelacak jarak jauh yang Anda dorong) dalam jawaban saya
VonC
59
@Torek - tugas sederhana lain yang dibuat sulit oleh Git. Setiap kali pertanyaan Git muncul dengan ratusan atau ribuan peningkatan dan jutaan tampilan, maka seseorang harus berpikir: Wow, kami benar-benar mengacaukan alur kerja itu. Sayangnya, dev Git telah menghilangkan langkah umpan balik dalam siklus hidup pengembangan, sehingga umpan balik tidak dimasukkan. Sebaliknya, mereka terus membuat kesalahan yang sama berulang kali. Untuk pertanyaan ini, git status --allseharusnya muncul pada 2010; atau git status -vharus benar-benar memberikan output verbal yang mencakup informasi tambahan.
jww
4
Saya tidak setuju bahwa "git status -v" harus memberikan informasi ini karena ini dimaksudkan untuk memberikan status tentang pohon yang berfungsi, karena hanya berkaitan dengan cabang yang diperiksa saja. Namun, lihat jawaban di bawah ini tentang "git branch -v", yang saya yakin harus menjadi jawaban yang diterima
JoelFan
13
Pertanyaan StackOverflow khusus ini memiliki jumlah jawaban benar yang paling tinggi yang semuanya berfungsi namun tidak masuk akal.
Pete Alvin
@ josh-buhler Maaf, saya memilih secara tidak sengaja ... ketika saya mencoba mengklik 'STAR'. Mencoba ulang untuk memilih, tetapi tidak berhasil!
RafiAlhamd

Jawaban:

1828
git log origin/master..HEAD

Anda juga dapat melihat diff menggunakan sintaks yang sama

git diff origin/master..HEAD
Peter B
sumber
3
Ini melakukannya untuk saya - untuk beberapa alasan asal git log .. dengan sendirinya melemparkan kesalahan. Sepertinya saya juga punya masalah dengan cara cabang lokal saya dikonfigurasi - begitu saya membuat perubahan yang saya temukan di sini: wincent.com/blog/ ... ... masalahnya telah teratasi, dan saya bisa menggunakan status git lagi untuk melihat apa yang saya inginkan .
Josh Buhler
6
Tak ternilai: Begitu banyak yang saya lakukan git config --global alias.ahead "log origin/master..HEAD --oneline"sehingga saya dapat dengan cepat mengetahui di mana saya berada. Bahkan lebih banyak permen:for i in *; do echo $i && git ahead 2>/dev/null; done
Jamie
15
git log --stat origin/master..HEADuntuk sedikit kedahsyatan ekstra
Cory Danielson
141
Ini bukan solusi terbaik. Asal / master tidak selalu cabang hulu. Solusi yang lebih baik adalah menggunakan @ {u} alih-alih "origin / master" untuk mengindikasikan cabang upstream. Karena KEPALA tersirat secara default, seseorang dapat meninggalkan itu juga. Lihat jawaban @Ben Ling. Perubahan yang keluar: git log @ {u} .. Perubahan yang masuk: git log .. @ {u}
PlagueHammer
12
@Nocturne Saya hanya ingin menunjukkan bahwa ketika jawaban ini diposting, @{u}sintaks belum tersedia, hanya tersedia pada 12 Februari 2010 . Juga, @{u}tidak akan berfungsi jika cabang lokal tidak dikonfigurasikan dengan upstream. Akhirnya, @{u}saat ini tidak memiliki dukungan penyelesaian tab, <remote>/<branch>dengan penyelesaian tab tetap menjadi salah satu cara tercepat untuk mendapatkan informasi ini, dan itu akan berfungsi apakah upstream dikonfigurasi atau tidak.
703

Jika Anda ingin melihat semua komit di semua cabang yang belum didorong, Anda mungkin mencari sesuatu seperti ini:

git log --branches --not --remotes

Dan jika Anda hanya ingin melihat komit terbaru di setiap cabang, dan nama-nama cabang, ini:

git log --branches --not --remotes --simplify-by-decoration --decorate --oneline
cxreg
sumber
8
Ini luar biasa. Dalam skenario terkait, saya memiliki dua cabang lokal dengan dua cabang hulu, dan satu tangan lokal digabungkan ke yang lain. Saya ingin tahu komit mana yang aman untuk rebase, tetapi normal git log master..HEADtidak akan berhasil karena ada beberapa upstreams. Posting ini mengarahkan saya untuk git log MyBranch --not --remotesmenunjukkan semua komitmen yang belum didorong ke hulu dalam satu cabang.
pavon
Ini sangat berguna saya alias di konfigurasi zsh saya. Terima kasih.
Scotty C.
Saya mengerti bahwa perintah kedua Anda juga mendaftar komit yang belum didorong, hanya menunjukkan satu per cabang.
Stephane
--decoratemenunjukkan cabang juga. --graphmembuatnya lebih jelas.
Ray
Perhatikan bahwa daftar perintah ini hanya melakukan yang belum didorong di cabang apa pun . Contoh: katakanlah Anda memiliki cabang berkembang dengan cabang feat-NewThing. Anda membuat perubahan secara lokal untuk feat-NewThing. (Log memiliki perubahan.) Anda kemudian mendorong feat-newThing ke cabang jarak jauh itu. (Log kosong). Anda menggabungkan fitur baru untuk dikembangkan secara lokal. Dengan asumsi fast-forward, log masih tidak memiliki perubahan.
Patrick W
325

Anda dapat menunjukkan semua komit yang Anda miliki secara lokal tetapi tidak di hulu

git log @{u}..

@{u}atau @{upstream}berarti cabang hulu dari cabang saat ini (lihat git rev-parse --helpatau git help revisionsuntuk detail).

Ben Lings
sumber
17
Di Windows, saya perlu menyertakan argumen terakhir dalam tanda kutip, seperti: git log "@ {u} .."
Jon Schneider
git log @{u}.. -p Salah satu opsi yang paling berguna adalah -p , yang menunjukkan perbedaan yang diperkenalkan pada setiap konfirmasi.
mQuiroz
Mungkin lebih baik git log @ {push} .., lihat jawaban lain .
Hans-Peter Störr
183

Ini bekerja untuk saya:

git cherry -v 

Seperti yang ditunjukkan di Git: Lihat semua komitmen atau komitmen yang tidak dicemari yang tidak ada di cabang lain .

Christian Vielma
sumber
21
Saya pikir ini harus menjadi jawaban utama karena ini memberikan lebih banyak daftar commit daripada, sulit dibaca, perbedaan nyata dalam semua file !!
ViFI
1
git-cherry - "Temukan komitmen yang belum diterapkan ke hulu", tampaknya memberikan apa yang diminta OP, tetapi hanya dengan subjek komit daripada seluruh pesan komit.
Eido95
2
Perlu dicatat bahwa ini hanya akan memberi tahu Anda jika ada komitmen yang tidak dicopot pada cabang yang saat ini Anda periksa. Ini tidak akan memberi tahu Anda jika Anda memiliki cabang lokal (saat ini tidak dicentang) dengan komitmen yang tidak dicentang.
Dave Yarwood
66

Anda dapat melakukan ini dengan git log:

git log origin..

Anggap itu originadalah nama hulu Anda, tinggalkan nama revisi apa pun setelah ..menyiratkan HEAD, yang mencantumkan komit baru yang belum didorong.

Greg Hewgill
sumber
1
Setiap kali saya melihat jawaban dengan git logdan "2-dots-not-3", selalu mengingatkan saya pada stackoverflow.com/questions/53569/… ;)
VonC
1
Hanya dengan menambahkannya ke jawaban - jika tidak ada pengaturan hulu perintah ini menghasilkan mengatakan tidak ada pengaturan hulu. Jalankan git branch --set-upstream master origin/<branch>untuk menyiapkan upstream jika Anda cenderung menggunakan perintah ini untuk melihat komit yang dipentaskan.
asyncunggu
Ini akan dibandingkan dengan cabang default dalam asal, bukan cabang jarak jauh saat ini.
greuze
43

Semua jawaban lain berbicara tentang "hulu" (cabang tempat Anda menarik).
Tetapi cabang lokal dapat mendorong ke cabang yang berbeda dari cabang yang ditariknya.

mastermungkin tidak mendorong ke cabang pelacakan jarak jauh " origin/master".
The hulu cabang untuk mastermungkin origin/master, tetapi bisa mendorong ke cabang pelacakan terpencil origin/xxxatau bahkan anotherUpstreamRepo/yyy.
Mereka ditetapkan oleh branch.*.pushremoteuntuk cabang saat ini bersama dengan global remote.pushDefaultnilai.

Hal ini yang cabang terpencil-pelacakan jumlah yang ketika mencari komit unpushed: salah satu yang trek branch at the remotedi mana cabang lokal akan mendorong untuk.
The branch at the remotebisa, sekali lagi, origin/xxxatau bahkan anotherUpstreamRepo/yyy.

Git 2.5+ (Q2 2015) memperkenalkan pintasan baru untuk itu: <branch>@{push}

Lihat komit 29bc885 , komit 3dbe9db , komit adfe5d0 , komit 48c5847 , komit a1ad0eb , komit e291c75 , komit 979cb24 , komit 1ca41a1 , komit 3a429d0 , komit a9f9f8c , komit 8770e6f , komit da66b27 , komit f052154 , komit 9e3751d , berkomitmen ee2499f [semua 21 Mei 2015], dan melakukan e41bf35 [01 Mei 2015] oleh Jeff King ( peff) .
(Digabung oleh Junio ​​C Hamano - gitster-dalam komit c4a8354 , 05 Jun 2015)

Commit adfe5d0 menjelaskan:

sha1_name: menerapkan @{push}steno

Dalam alur kerja segitiga, masing-masing cabang mungkin memiliki dua tempat menarik: @{upstream}yang biasanya Anda tarik, dan tujuan yang biasanya Anda dorong. Tidak ada singkatan untuk yang terakhir, tetapi berguna untuk memilikinya.

Misalnya, Anda mungkin ingin tahu komitmen mana yang belum Anda dorong :

git log @{push}..

Atau sebagai contoh yang lebih rumit, bayangkan bahwa Anda biasanya menarik perubahan dari origin/master(yang Anda tetapkan sebagai Anda @{upstream}), dan mendorong perubahan ke garpu pribadi Anda sendiri (misalnya, sebagai myfork/topic).
Anda dapat mendorong ke fork Anda dari beberapa mesin, mengharuskan Anda untuk mengintegrasikan perubahan dari tujuan dorong, daripada hulu .
Dengan tambalan ini, Anda bisa melakukan:

git rebase @{push}

daripada mengetik nama lengkap.

Commit 29bc885 menambahkan:

for-each-ref: terima %(push)format " "

Sama seperti kita " %(upstream)" harus melaporkan " @{upstream}" untuk setiap referensi, tambalan ini menambahkan " %(push)" untuk mencocokkan " @{push}".
Ini mendukung pengubah format pelacakan yang sama dengan upstream (karena Anda mungkin ingin tahu, misalnya, cabang mana yang berkomitmen untuk mendorong ).

Jika Anda ingin melihat berapa banyak komit cabang lokal Anda di depan / belakang dibandingkan dengan cabang yang Anda dorong untuk:

git for-each-ref --format="%(refname:short) %(push:track)" refs/heads
VONC
sumber
42

Alias ​​git praktis untuk mencari komitmen yang tidak dicabut di cabang saat ini :

alias unpushed = !GIT_CURRENT_BRANCH=$(git name-rev --name-only HEAD) && git log origin/$GIT_CURRENT_BRANCH..$GIT_CURRENT_BRANCH --oneline

Apa yang dilakukan dasarnya:

git log origin/branch..branch

tetapi juga menentukan nama cabang saat ini.

takeshin
sumber
8
Ini luar biasa! Bagi mereka yang tidak terbiasa dengan alias, tambahkan saja ke file ~ / .gitconfig Anda di bawah bagian [alias].
Gary Haran
1
Salin / tempel di bash tidak berfungsi, tetapi skrip ini cukup berguna dan dapat dimengerti
greuze
Ini bukan alias bash, seperti yang ditunjukkan oleh @GaryHaran. Ada perintah git untuk menambahkan alias: git alias <alias-name> <command>Dalam hal ini, perintah harus dikelilingi oleh tanda kutip tunggal, untuk menghindari karakter khusus dari shell.
Dag Høidahl
4
Itu akan menjadi:git config --global alias.unpushed '!GIT_CURRENT_BRANCH=$(git name-rev --name-only HEAD) && git log origin/$GIT_CURRENT_BRANCH..$GIT_CURRENT_BRANCH --oneline'
Ricky Levi
Tampaknya pada dasarnya sama dengan git log @ {u} .., meskipun - lihat jawaban lain .
Hans-Peter Störr
35

Kamu bisa mencoba....

gitk

Saya tahu ini bukan opsi baris perintah murni tetapi jika Anda telah menginstalnya dan menggunakan sistem GUI, ini adalah cara yang bagus untuk melihat apa yang Anda cari dan lebih banyak lagi.

(Aku sebenarnya agak terkejut tidak ada yang menyebutkan sejauh ini.)

Justin Ohms
sumber
3
gitk --alluntuk melihat semua cabang.
Ray
3
tigadalah alternatif ncurses.
Ray
@ justin-ohm gitkluar biasa! Tidak pernah tahu ini ada! Berguna untuk menelusuri perubahan di UI yang bagus.
RafiAlhamd
@ray tigpaling berguna dalam situasi 'terminal saja' - di mana Anda tidak mendapatkan akses GUI desktop. Belajar tentang itu untuk pertama kalinya! MENARIK: tigadalah REVERSE dari git!
RafiAlhamd
30

git branch -v akan menunjukkan, untuk setiap cabang lokal, apakah itu "di depan" atau tidak.

Aurelien
sumber
2
Ya, jika ada komit yang tidak dicopot pada cabang devel, baris yang sesuai akan * devel 8a12fc0 [ahead 1] commit msg( *hanya akan pada baris yang sesuai dengan cabang yang diperiksa). ahead 1berarti "di depan dengan satu komit", yaitu ada satu komit yang tidak dicuri.
Aurelien
2
Bukan git branch -vv? Lih docs: "Jika diberikan dua kali, cetak nama cabang hulu, juga (lihat juga git remote show <remote>)."
Dirty Henry
Ini bukan tentang mencetak nama cabang hulu, tetapi hanya tentang mencetak behinddan / atau aheaduntuk setiap cabang lokal, yang cukup untuk menyelesaikan masalah OP (mendeteksi komitmen yang tidak dicuri). git branch -vsudah cukup untuk itu, baru diuji lagi dengan Git 2.16.2 :)
Aurelien
-Vv berguna karena dengan itu menunjukkan perbedaan antara cabang-cabang yang up-to-date dengan remote dan yang belum didorong sama sekali. (Dengan hanya satu -v, mereka muncul secara identik di layar.)
RM
30

Saya memiliki komitmen yang dilakukan sebelumnya, tidak didorong ke cabang apa pun, atau jauh atau lokal. Hanya komit. Tidak ada jawaban lain yang berfungsi untuk saya, tetapi dengan:

git reflog

Di sana saya menemukan komit saya.

Olaia
sumber
Seperti yang dinyatakan dalam tautan ini git-scm.com/docs/git-reflog , Log referensi, atau "reflog", catat ketika tip cabang dan referensi lainnya diperbarui dalam repositori lokal. Dalam kasus saya, saya mengkloning repo, membuat cabang baru, menghapus cabang, membuat yang baru, membuat komit dan mengubah komit. Semua langkah ini yang dicatat sebagai HEAD @ {0}: commit (ubah): .. HEAD @ {1}: commit: ... HEAD @ {2}: Checkout: pindah dari ... ke ... HEAD @ { 3}: Checkout: pindah dari ... ke ... HEAD @ {4}: clone: ​​from #sorry for the format SO tampaknya tidak mengizinkan multiline dalam komentar
kecepatan
ini termasuk komit asal juga, solusi terbaik akan menggunakan perintah yang disediakan oleh @ PlagueHammer ( stackoverflow.com/a/2016954/624048 )
Lincoln
20

Saya menggunakan alias berikut ini untuk mendapatkan daftar file (dan status) yang telah dikomit tapi belum didorong (untuk cabang saat ini)

git config --global alias.unpushed \
"diff origin/$(git name-rev --name-only HEAD)..HEAD --name-status"

maka lakukan saja:

git unpushed
CCC
sumber
terlihat menarik, tetapi $ (git name-rev --name-only HEAD) "tidak terdefinisi" dalam kasus saya
vak
13

Saya percaya cara paling umum untuk melakukan ini adalah menjalankan sesuatu seperti:

git cherry --abbrev=7 -v @{upstream}

Namun, saya pribadi lebih suka menjalankan:

git log --graph --decorate --pretty=oneline --abbrev-commit --all @{upstream}^..

yang memperlihatkan komit dari semua cabang yang tidak digabung hulu, ditambah komit terakhir di hulu (yang ditampilkan sebagai simpul akar untuk semua komit lainnya). Saya sering menggunakannya sehingga saya telah membuat alias noupuntuk itu.

git config --global alias.noup \
'log --graph --decorate --pretty=oneline --abbrev-commit --all @{upstream}^..'
Giorgos Kylafas
sumber
11

Saya sarankan Anda melihat skrip https://github.com/badele/gitcheck , saya telah mengkodekan skrip ini untuk memeriksa dalam satu pass semua repositori git Anda, dan itu menunjukkan siapa yang belum berkomitmen dan siapa yang tidak mendorong / menarik.

Di sini hasil sampel masukkan deskripsi gambar di sini

Bruno Adelé
sumber
1
Bisakah Anda menjelaskan cara agar plugin ini berfungsi di mesin Windows? Saya mencoba menjalankan pip, tetapi perintahnya tidak ada di baris perintah. Saya menginstal Python, tetapi saya tidak yakin apakah itu cukup.
Konrad Szałwiński
@ KonradSzałwiński Saya belum memiliki mesin windows, tetapi dalam topik ini ( stackoverflow.com/questions/4750806/… ), pengguna tampaknya menjawab pertanyaan Anda :). Tetapi saya belum menguji di windows dan saya tidak yakin itu berhasil.
Bruno Adelé
@ KonradSzałwiński, kontributor github ChristianTremblay telah menambahkan dukungan windows. Sekarang gitcheck berfungsi di windows. Anda dapat mengunduhnya di github.com/badele/gitcheck
Bruno Adelé
Sekarang, Anda juga dapat menggunakan gitcheck langsung dari wadah buruh pelabuhan (dengan file Anda di host Anda) Untuk informasi lebih lanjut lihat proyek githeck github
Bruno Adelé
Terima kasih telah memposting ini, sepertinya sangat berguna. Saya mencoba menginstal tetapi setelah instalasi saya tidak dapat menemukan lokasi skrip untuk menjalankannya. $ pip install git + git: //github.com/badele/gitcheck.git Mengumpulkan git + git: //github.com/badele/gitcheck.git Kloning git: //github.com/badele/gitcheck.git ke c : \ users \ u6041501 \ appdata \ local \ temp \ pip-bxt472z_-build Menginstal paket yang dikumpulkan: gitcheck Menjalankan setup.py install untuk gitcheck: mulai Menjalankan setup.py install untuk gitcheck: selesai dengan status 'selesai' Berhasil menginstal gitcheck-0.3 .22
Lauren Fitch
9

Itu bukan bug. Yang mungkin Anda lihat adalah status git setelah penggabungan otomatis yang gagal saat perubahan dari jarak jauh diambil tetapi belum digabungkan.

Untuk melihat komit antara repo lokal dan jarak jauh lakukan ini:

git fetch

Ini 100% aman dan tidak akan membuat tiruan copy pekerjaan Anda. Jika ada perubahan, git statusakan ditampilkan X commits ahead of origin/master.

Anda sekarang dapat menampilkan log komit yang ada di remote tetapi tidak di lokal:

git log HEAD..origin
Igor Zevaka
sumber
8

Ini bekerja lebih baik untuk saya:

git log --oneline @{upstream}..

atau:

git log --oneline origin/(remotebranch)..
VaTo
sumber
2
Untuk orang lain yang bertanya-tanya, @{upstream} itu literal ( upstreamadalah kata ajaib), sementara remotebranchitu hanya nama cabang Anda.
Steve Bennett
7

Ada alat bernama unpushed yang memindai semua repositori Git, Mercurial, dan Subversion di direktori kerja yang ditentukan dan memperlihatkan daftar file yang ucommited dan commit yang tidak di -ush. Instalasi sederhana di Linux:

$ easy_install --user unpushed

atau

$ sudo easy_install unpushed

untuk menginstal seluruh sistem.

Penggunaannya juga sederhana:

$ unpushed ~/workspace
* /home/nailgun/workspace/unpushed uncommitted (Git)
* /home/nailgun/workspace/unpushed:master unpushed (Git)
* /home/nailgun/workspace/python:new-syntax unpushed (Git)

Lihat unpushed --help atau deskripsi resmi untuk informasi lebih lanjut. Ini juga memiliki skrip cronjob unpushed-notifyuntuk notifikasi di layar tentang perubahan yang tidak dikomit dan yang tidak di-hapus.

pistol paku
sumber
5

Untuk mendaftar semua komit yang tidak dicopot di semua cabang dengan mudah, Anda dapat menggunakan perintah ini:

 git log --branches  @{u}..
Mohsen Kashi
sumber
4

Mirip: Untuk melihat cabang yang tidak dipindahkan:

git branch --all --no-merged

Itu bisa dicurigai tetapi saya merekomendasikan jawabannya oleh cxreg

Christophe Roussy
sumber
3

Jika jumlah komit yang belum dikeluarkan adalah angka satu digit, yang sering kali demikian, cara termudah adalah:

$ git checkout

git merespons dengan memberi tahu Anda bahwa Anda "di depan N melakukan" relatif asal Anda. Jadi sekarang ingat nomor itu saat melihat log. Jika Anda "meneruskan dengan 3 komitmen", 3 komitmen teratas dalam sejarah masih bersifat pribadi.

Kaz
sumber
2

salah satu cara melakukan hal-hal adalah dengan mendaftar komitmen yang tersedia di satu cabang tetapi tidak yang lain.

git log ^origin/master master
Alex
sumber
Apa yang dilakukan karakter '^'?
Aran Mulholland
@AranMulholland singkatan dari not here.
Alex
1

Seperti dikatakan di atas:

git beda asal / master..KEPALA

Tetapi jika Anda menggunakan git gui

Setelah membuka antarmuka gui, Pilih "Repositori" -> Di bawah itu " Visualisasikan Sejarah "

Catatan: Beberapa orang suka menggunakan CMD Prompt / Terminal sementara beberapa orang suka menggunakan Git GUI (untuk kesederhanaan)

vrnair24
sumber
memvisualisasikan opsi di git gui adalah satu-satunya.
Rajesh Kolhapure
-2

Inilah solusi portabel saya (skrip shell yang berfungsi pada Windows juga tanpa pemasangan tambahan) yang menunjukkan perbedaan dari asal untuk semua cabang: git-fetch-log

Contoh output:

==== branch [behind 1]

> commit 652b883 (origin/branch)
| Author: BimbaLaszlo <[email protected]>
| Date:   2016-03-10 09:11:11 +0100
|
|     Commit on remote
|
o commit 2304667 (branch)
  Author: BimbaLaszlo <[email protected]>
  Date:   2015-08-28 13:21:13 +0200

      Commit on local

==== master [ahead 1]

< commit 280ccf8 (master)
| Author: BimbaLaszlo <[email protected]>
| Date:   2016-03-25 21:42:55 +0100
|
|     Commit on local
|
o commit 2369465 (origin/master, origin/HEAD)
  Author: BimbaLaszlo <[email protected]>
  Date:   2016-03-10 09:02:52 +0100

      Commit on remote

==== test [ahead 1, behind 1]

< commit 83a3161 (test)
| Author: BimbaLaszlo <[email protected]>
| Date:   2016-03-25 22:50:00 +0100
|
|     Diverged from remote
|
| > commit 4aafec7 (origin/test)
|/  Author: BimbaLaszlo <[email protected]>
|   Date:   2016-03-14 10:34:28 +0100
|
|       Pushed remote
|
o commit 0fccef3
  Author: BimbaLaszlo <[email protected]>
  Date:   2015-09-03 10:33:39 +0200

      Last common commit

Parameter dilewatkan untuk log, misalnya --onelineatau --patchdapat digunakan.

bimlas
sumber
-3
git show

akan menampilkan semua perbedaan dalam komit lokal Anda.

git show --name-only

akan menampilkan id komit lokal dan nama komit.

pengguna2387567
sumber
3
git showhanya menampilkan komit terbaru, apakah itu didorong ke remote atau tidak, itu tidak akan menunjukkan semua komitmen Anda yang belum dicopot.
-6
git diff origin

Dengan asumsi cabang Anda diatur untuk melacak asal, maka itu akan menunjukkan kepada Anda perbedaannya.

git log origin

Akan memberi Anda ringkasan komitmen.

mopoke
sumber
3
git log originakan menunjukkan kepada Anda komit yang sudah didorong , tetapi itu tidak akan menunjukkan komit yang belum didorong , yang lebih sesuai dengan apa yang diminta oleh poster asli.