Saya mencoba mengakses riwayat komit cabang pada repositori jarak jauh. Saya telah melihat dokumen tetapi tidak dapat menemukan informasi penting tentang cara mengakses riwayat komit repo jarak jauh menggunakan klien git lokal saya.
Saya mencoba mengakses riwayat komit cabang pada repositori jarak jauh. Saya telah melihat dokumen tetapi tidak dapat menemukan informasi penting tentang cara mengakses riwayat komit repo jarak jauh menggunakan klien git lokal saya.
Jawaban:
git log remotename/branchname
Akan menampilkan log cabang jauh yang diberikan dalam repositori itu, tetapi hanya log yang telah Anda "ambil" dari repositori ke "salinan" pribadi dari repositori jarak jauh Anda.
Ingatlah bahwa klon repositori Anda akan memperbarui statusnya dari semua cabang jauh hanya dengan melakukan git fetch
. Anda tidak dapat terhubung langsung ke server untuk memeriksa log di sana, yang Anda lakukan adalah mengunduh status server git fetch
dan kemudian secara lokal melihat log dari cabang jauh.
Mungkin perintah lain yang bermanfaat adalah:
git log HEAD..remote/branch
yang akan menunjukkan kepada Anda komit yang ada di cabang jarak jauh, tetapi tidak di cabang Anda saat ini ( HEAD
).
git fetch
Anda perlu menggunakan --all
untuk mengambil dari remote.
NB. "origin" di bawah ini digunakan untuk mewakili hulu dari repositori hasil kloning, ganti "origin" dengan nama deskriptif untuk repo jarak jauh. "referensi jarak jauh" dapat menggunakan format yang sama dengan yang digunakan dalam perintah klon.
git remote add origin <remote reference>
git fetch
git log origin/master
git://git.somedomain.tld/some/repo
<refspec>
kapan mengambil (atau menggunakan fetch --all
) jika Anda tidak melacak cabang apa pun di remote?
Anda hanya dapat melihat log di repositori lokal, namun itu bisa menyertakan cabang yang diambil dari semua remote yang telah Anda set-up.
Jadi, jika Anda mengkloning repo ...
git clone git@gitserver:folder/repo.git
Ini akan menjadi default untuk origin/master
.
Anda dapat menambahkan remote ke repo ini, selain dari origin
mari kita tambahkan production
. Dari dalam folder klon lokal:
git remote add production git@production-server:folder/repo.git
Jika kita ingin melihat log yang production
perlu kita lakukan:
git fetch --all
Ini diambil dari SEMUA remote (pengambilan default tanpa --all
akan mengambil hanya dari origin
)
Setelah mengambil kita bisa melihat log pada production
remote, Anda harus menentukan cabang juga.
git log production/master
Semua opsi akan berfungsi seperti yang mereka lakukan dengan log on cabang lokal.
Saya tidak percaya ini mungkin. Saya percaya Anda harus mengkloning repo jarak jauh secara lokal dan melakukan git fetch
di atasnya sebelum Anda dapat mengeluarkan git log
menentangnya
Inilah yang bekerja untuk saya:
git fetch --all
git log production/master
Perhatikan bahwa ini mengambil dari SEMUA remote, yaitu berpotensi Anda "harus mengkloning objek senilai 2GB hanya untuk melihat melalui log komit" .
Saya tidak yakin kapan pemfilteran ditambahkan tetapi ini merupakan cara untuk mengecualikan gumpalan objek jika Anda hanya ingin mengambil riwayat / ref-log:
git clone --filter=blob:none --no-checkout --single-branch --branch master git://some.repo.git .
git log
Anda dapat dengan mudah mendapatkan log dari server jauh. Begini caranya:
(1) Jika menggunakan git via ssh - maka cukup login ke server jauh menggunakan git login dan kata sandi Anda - dan chdir folder jauh di mana repositori Anda ada - dan jalankan perintah "git log" di dalam repositori Anda di server jauh.
(2) Jika menggunakan git melalui protokol login standar Unix - maka cukup telnet ke server jauh Anda dan lakukan git log di sana.
Semoga ini membantu.
Inilah fungsi bash yang membuatnya mudah untuk melihat log pada remote. Dibutuhkan dua argumen opsional. Yang pertama adalah cabang , itu default untuk dikuasai . Yang kedua adalah remote , itu standar untuk pementasan .
git_log_remote() {
branch=${1:-master}
remote=${2:-staging}
git checkout $remote/$branch
git fetch
git log
git checkout -
}
contoh:
$ git_log_remote
$ git_log_remote development origin