Tanya Jawab Umum mengenai Git

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Dalam artikel ini, temukan jawaban atas tanya jawab umum tentang Git, khususnya disesuaikan untuk Azure Repos. Baik Anda ingin mengelola cabang jarak jauh, mengidentifikasi cabang Anda saat ini, atau menangani tugas Git lain yang kurang umum, panduan ini menyediakan tips dan solusi yang bermanfaat. Selaraskan bagian berikut untuk meningkatkan alur kerja Git Anda dan mengatasi masalah umum.

Bagaimana cara mengunduh cabang jarak jauh dengan mudah ke repositori lokal saya?

Pertama, pastikan Anda memiliki repositori yang origin dikonfigurasi. Anda harus memiliki ini jika Anda mengkloning repositori Anda menggunakan git clone. Ketika Anda memeriksa cabang yang tidak ada secara lokal, Git memeriksa apakah ada cabang jarak jauh dengan nama yang sama. Jika ada, Git membuat cabang lokal yang mereferensikan cabang jarak jauh. Gunakan git pull untuk mengunduh penerapan dan memperbarui riwayat cabang secara lokal.

Bagaimana cara mengetahui cabang mana yang sedang saya kerjakan?

Jalankan git branch tanpa argumen untuk menampilkan cabang lokal dan menyoroti cabang yang telah Anda cek keluar. Di Visual Studio, bilah status juga menampilkan cabang saat ini saat Anda bekerja dengan proyek yang disimpan di repositori Git lokal.

Kapan saya harus membuat penerapan Git?

Praktik terbaik adalah membuat penerapan terpisah untuk perubahan yang berbeda secara logis. Anggap penerapan sebagai entri dalam buku log. Setiap kali Anda membuat perubahan yang perlu dicatat, rekam dalam penerapan. Pendekatan populer adalah memungkinkan penerapan lokal yang sering, tetapi labu mereka melalui rebasing sebelum mendorong. Ini memberikan fleksibilitas sambil menjaga riwayat penerapan tetap efisien.

Jika setiap cabang mempertahankan riwayat penerapan penuhnya, bukankah itu membuat riwayat penerapan *main* sulit diikuti dari waktu ke waktu?

Proyek besar dengan banyak penerapan dan kontributor dapat menghasilkan main riwayat cabang yang mencerminkan pengembangan cabang topik lebih dari proyek keseluruhan. Git memungkinkan Anda untuk mengerucutkan penerapan pada cabang melalui penerapan squashing dan rebasing. Penerapan squashing membuat riwayat cabang kurang verbose, menyederhanakan riwayat penerapan pada cabang utama setelah digabungkan.

Bagaimana cara mengetahui siapa yang membuat perubahan tertentu pada file?

git blame Gunakan perintah untuk mengetahui siapa yang membuat perubahan tertentu pada file. Dari repositori lokal, Anda dapat menjalankan git blame dengan -L parameter , menentukan baris yang menarik. Blame menghasilkan output berformat yang menunjukkan penerapan yang terakhir memperbarui baris dan nama orang yang membuat penerapan.

> git blame Example_repo -L 20,+40  # show the blame output for the next 40 lines starting at line 20

215d1108 (Example User 2015-11-21 09:54:23 -0800 20) line 20 of the code
215d1108 (Example User 2015-11-21 09:54:23 -0800 21) line 21 of the code
215d1108 (Example User 2015-11-21 09:54:23 -0800 22) line 22 of the code

Blame mencari riwayat penerapan untuk Anda. Anda juga dapat meninjau riwayat file di portal web untuk menentukan siapa yang membuat perubahan dan kapan. Buka Code Explorer untuk repositori dan cabang Anda, lalu pilih file yang menarik. Azure Repos memperlihatkan riwayat penerapan lengkap untuk file tersebut di cabang saat ini.

Saya membuat perubahan pada beberapa file dan sekarang saya tidak dapat memeriksa ke cabang yang berbeda atau melakukan rebase pada pekerjaan saya.

Memeriksa ke cabang lain di Git memengaruhi status file pada sistem file Anda. Git menggunakan riwayat penerapan untuk memastikan Anda bekerja dengan file yang mewakili status cabang Anda. Jika Anda mencoba mengubah cabang saat Anda memiliki perubahan yang tidak dilakukan, perubahan tersebut akan ditimpa selama checkout. Karena Git tidak ingin Anda kehilangan perubahan anda secara tidak sengaja, hal ini mencegah terjadinya checkout. Anda memiliki dua pilihan:

Permintaan pull tidak dapat digabungkan dengan pesan ini: 'Tidak dapat menggabungkan secara otomatis: Salah satu objek git internal (blob, pohon, penerapan, atau tag) terlalu besar yang menyebabkan pengecualian TF401022. Anda dapat mencoba menggunakan LFS, membagi penggabungan atau penerapan besar Anda menjadi beberapa kecil.'

Masalah ini terkait dengan konflik penggabungan dalam file biner besar. Batas saat ini untuk file adalah 100MB. Solusinya adalah mengatasi konflik penggabungan secara lokal dengan menggabungkan target ke sumber secara lokal, menyelesaikan konflik, dan mendorong perubahan.

Git LFS (Penyimpanan File Besar) direkomendasikan untuk menyimpan file biner besar, tidak hanya untuk menghindari konflik tetapi juga untuk mengelola ukuran repositori keseluruhan, yang memengaruhi waktu kloning dan pendorongan.

Saya melakukan beberapa pekerjaan tetapi perlu beralih ke sesuatu yang lain. Bagaimana cara menyimpan pekerjaan saya nanti tanpa melakukan perubahan?

Jika Anda ingin menyimpan perubahan tanpa menerapkannya, gunakan Git stash. Stash menyimpan perubahan bertahap dan tidak bertahap saat ini di cabang Anda dan mengembalikan cabang Anda ke status penerapan terakhir. Anda kemudian dapat beralih ke cabang lain, melakukan pekerjaan Anda, dan kemudian menjalankan stash apply untuk memulihkan perubahan Anda.

git stash
Saved working directory and index state WIP on feature1: be26067 updated endpoint docs
HEAD is now at be26067

Saat Anda menjalankan [git stash apply], perubahan yang terakhir disimpan diterapkan ke cabang Anda saat ini. Jika terjadi konflik, [stash] memulihkan perubahan untuk file yang tidak bertentangan dan membuat penanda konflik dalam file yang melakukannya. Anda harus menggabungkan perubahan secara manual dalam kasus ini.

Setelah selesai dengan simpanan, hapus dengan [git stash drop]. Perintah ini menghapus serangkaian perubahan terakhir yang disimpan.

Anda dapat memiliki beberapa simpanan, tetapi mengelolanya membutuhkan manipulasi yang lebih manual karena Anda harus secara eksplisit menerapkan dan menghilangkan simpanan. Pelajari lebih lanjut dari dokumentasi Git Stash.

Bagaimana cara mengubah editor default untuk alat baris perintah Git?

Secara default, Git baris perintah menggunakan editor baris perintah saat meminta pesan penerapan, melakukan rebases, dan pekerjaan lain yang memerlukan informasi tambahan untuk diselesaikan. Editor default dikonfigurasi menggunakan git config:

> git config core.editor _path_to_editor_ _options_to_editor_

Git Untuk Windows memudahkan untuk mengatur notepad sebagai editor:

> git config core.editor notepad

Perintah ini mengonfigurasi Windows Notepad untuk mengedit informasi Git sesuai kebutuhan dan meneruskan teks dengan benar dari Git ke Notepad. Anda juga dapat menentukan

> git config format.commitMessageColumns 72 

Untuk mempertahankan kolom teks dalam pesan penerapan ke 72 dan bungkus garis pilihan setelah mencapai batas karakter tersebut pada baris.

Bagaimana cara mengubah nama pengguna dan email yang ditampilkan dalam penerapan saya?

Git menempatkan informasi nama pengguna dan alamat email di dalam setiap penerapan, dan Azure Repos menggunakan informasi ini saat melihat penerapan dan saat bekerja dengan permintaan pull. Jika Anda sedang mengerjakan baris perintah, Anda dapat memperbarui nama dan informasi email yang ditampilkan menggunakan git config perintah :

> git config --global user.email "example-user@example-site.com"
> git config --global user.name "Example User"

Opsi --global mengatur email dan nama yang disertakan dalam penerapan untuk semua repositori Git pada sistem ini. Jika Anda ingin mengubah pengaturan untuk satu repositori, Anda harus mengubah ke direktori tempat repositori Git berada dan menjalankan perintah di atas tanpa --global bendera.

Anda juga dapat mengubah pengaturan nama dan email dari Visual Studio. Dari menu Git, pilih Pengaturan Dalam dialog Opsi, pilih Pengaturan Global Git atau Pengaturan>Repositori Git Umum.

Visual Studio 2019 versi 16.8 dan versi yang lebih baru memberikan pengalaman kontrol versi Git sambil mempertahankan antarmuka pengguna Team Explorer Git. Untuk menggunakan Team Explorer, hapus centang Opsi Alat>Pratinjau>Fitur>pengalaman pengguna Git Baru dari bilah menu. Anda dapat menjalankan fitur Git dari salah satu antarmuka secara bergantian.

Di Penjelajah Tim, pilih Pengaturan dan di bawah Git, pilih tautan Pengaturan Global atau Pengaturan Repositori.