Saya ingin menemukan perbedaan antara file yang saya miliki di repo lokal saya dengan apa yang ada di origin master
.
Saya tahu ada git diff
, namun saya hanya ingin mengisolasinya ke file yang satu ini.
Untuk kesederhanaan katakanlah file tersebut dinamai file1.txt
dan memiliki path file lokal = [local_path]
dan dalam asal memiliki filepath = [remote-path]
.
Apa perintah git yang harus saya ketik?
EDIT: Terima kasih semua atas masukan Anda, ini sangat mendalam. Bagi mereka yang menggunakan Eclipse (yang saya dan saya harus katakan sebelumnya) Saya baru tahu bahwa Anda bisa klik kanan -> Bandingkan Dengan -> Cabang, Tag atau Referensi -> pilih versi yang sesuai dan mulai sekarang.
Jawaban:
Jika
[remote-path]
dan[local-path]
sama, Anda bisa melakukannyaCatatan 1: Perintah kedua di atas akan dibandingkan dengan cabang pelacakan jarak jauh yang disimpan secara lokal. Perintah ambil diperlukan untuk memperbarui cabang pelacakan jarak jauh agar sinkron dengan konten server jarak jauh. Atau, Anda bisa melakukannya
Catatan 2:
master
dapat diganti dalam contoh di atas dengan nama cabang apa punsumber
git diff master:README.md -- README.md
git diff origin/master -- README.md
git fetch master
menggunakannya sebagai gantinyagit fetch .
(asal / master tidak bekerja baik) Tapi sisanya bekerja dengan baik.git fetch **origin**
.Untuk melihat perbedaan dari file jarak jauh ke file lokal:
Untuk melihat perbedaan ke arah lain:
Pada dasarnya Anda dapat membedakan dua file di mana saja menggunakan notasi ini:
Seperti biasa,
ref1
danref2
bisa berupa nama cabang, nama remot / nama cabang, komit SHA, dll.sumber
Untuk membandingkan repositori lokal dengan repositori jarak jauh, cukup gunakan sintaks di bawah ini:
sumber
Untuk itu saya menulis skrip bash:
Dalam skrip di atas, saya mengambil cabang utama jarak jauh (tidak perlu cabang master cabang APA PUN)
FETCH_HEAD
, kemudian membuat daftar file yang dimodifikasi saja dan membandingkan file yang dimodifikasigit difftool
.Ada banyak yang
difftool
didukung oleh git, saya mengkonfigurasiMeld Diff Viewer
perbandingan GUI yang baik.Dari skrip di atas, saya memiliki pengetahuan sebelumnya tentang perubahan apa yang dilakukan oleh tim lain dalam file yang sama, sebelum saya mengikuti tahap git
untrack-->staged-->commit
yang membantu saya untuk menghindari penyelesaian konflik penggabungan yang tidak perlu dengan tim jarak jauh atau membuat cabang lokal baru dan membandingkan dan menggabungkan cabang utama.sumber
Saya mencoba beberapa solusi tapi saya kira cara mudah seperti ini (Anda berada di folder lokal):
Kemudian Anda membandingkan nomor komit terakhir git lokal dan git jarak jauh ....
sumber
Jawaban lengkap untuk pertanyaan awal yang berbicara tentang kemungkinan jalur berbeda di lokal dan jarak jauh ada di bawah ini
git fetch origin
git diff master -- [local-path] origin/master -- [remote-path]
Dengan asumsi path lokal adalah docs / file1.txt dan path jarak jauh adalah docs2 / file1.txt, gunakan
git diff master -- docs/file1.txt origin/master -- docs2/file1.txt
Ini diadaptasi dari halaman bantuan GitHub di sini dan jawaban Code-Apprentice di atas
sumber