Bagikan melalui


Memperbarui kode dengan mengambil, menggabungkan, dan menarik

Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Visual Studio 2019 | Visual Studio 2022

Ketika ada beberapa kontributor proyek, jaga agar repositori Git lokal Anda tetap diperbarui dengan mengunduh dan mengintegrasikan pekerjaan yang diunggah orang lain ke repositori jarak jauh proyek. Perintah Git ini memperbarui repositori lokal Anda:

  • Git fetch mengunduh komit baru yang diunggah orang lain ke repositori jarak jauh. Cabang pelacakan jarak jauh di cache repositori lokal diperbarui—cabang lokal tetap tidak berubah.
  • Git menggabungkan mengintegrasikan penerapan dari satu atau beberapa cabang sumber ke dalam cabang target.
  • Git rebase mengintegrasikan commit dari cabang sumber ke cabang target, tetapi mengikuti strategi yang berbeda dari Git merge.
  • Git pull melakukan fetch dan kemudian menggabungkan atau me-rebase untuk mengintegrasikan commit yang diambil ke dalam cabang lokal Anda saat ini.

Visual Studio menggunakan subset perintah Git tersebut saat Anda menyinkronkan repositori lokal Anda dengan repositori jarak jauh.

Untuk gambaran umum alur kerja Git, lihat tutorial Azure Repos Git.

Artikel ini menyediakan prosedur untuk tugas-tugas berikut:

  • Unduh perubahan dengan memuat
  • Memperbarui cabang dengan menggabungkan atau rebase
  • Unduh perubahan dan perbarui branch dengan pull

Mengunduh perubahan dengan fetch

Git mengambil unduhan penerapan cabang jarak jauh dan objek file yang direferensikan yang tidak ada di repositori lokal Anda dan memperbarui cabang pelacakan jarak jauh di cache repo lokal. Cabang pelacakan jarak jauh adalah salinan baca-saja yang di-cache secara lokal dari cabang jarak jauh dan bukan cabang lokal Anda. Perintah fetch Git tidak memperbarui cabang lokal Anda. Misalnya, jika repositori jarak jauh yang ditunjuk oleh origin memiliki cabang bugfix3, pengambilan Git akan memperbarui cabang pelacakan jarak jauh bernama origin/bugfix3 dan bukan cabang bugfix3 lokal Anda. Anda dapat menggunakan cabang pelacakan jarak jauh untuk:

  • Bandingkan cabang pelacakan jarak jauh dengan cabang lokal untuk meninjau perubahan yang diambil.
  • Gabungkan cabang pelacakan jarak jauh ke cabang lokal.
  • Buat cabang lokal baru dari cabang pelacakan jarak jauh.

Visual Studio 2022 menyediakan pengalaman kontrol versi Git dengan menggunakan menu Git, Perubahan Git, dan melalui menu konteks di Penjelajah Solusi. Visual Studio 2019 versi 16.8 juga menawarkan antarmuka pengguna Team Explorer Git. Untuk informasi selengkapnya, lihat tab Visual Studio 2019 - Team Explorer .

  1. Di jendela Perubahan Git, pilih Ambil. Kemudian pilih keluar/masuk untuk membuka jendela Repositori Git.

    Cuplikan layar tombol Ambil dan tautan Masuk di jendela Perubahan Git Visual Studio 2019.

    Anda juga dapat memilih Ambil dari menu Git.

    Cuplikan layar dari opsi Ambil di menu Git pada Visual Studio 2019.

  2. Di jendela Repositori Git, commit yang diambil muncul di bagian Masuk. Pilih commit yang sudah diambil untuk melihat daftar file yang diubah dalam commit tersebut. Pilih file yang diubah untuk melihat tampilan diff konten yang diubah.

    Cuplikan layar menu Repositori Git di Visual Studio 2019.

Petunjuk / Saran

Fetch tidak menghapus cabang pelacak jarak jauh di cache repo lokal Anda yang tidak lagi memiliki pasangan jarak jauh. Untuk mengonfigurasi Visual Studio agar memangkas cabang pelacakan jarak jauh kedaluarsa selama Fetch:

  • Pilih Alat >Opsi>Kontrol Sumber>Pengaturan Global Git.
  • Atur opsi Pangkas cabang jarak jauh selama pengambilan ke True.

Setelah melakukan 'fetch' pada Git, Anda dapat membandingkan cabang lokal dengan cabang pelacakan jarak jauh yang bersesuaian untuk melihat apa yang berubah di cabang jarak jauh. Jika Anda memutuskan untuk memperbarui cabang lokal Anda saat ini dengan perubahan yang telah diambil, Anda dapat melakukan merge Git atau rebase . Atau, Anda dapat menjalankan Git pull, yang menggabungkan Git fetch dengan Git merge atau rebase. Git merge dan Git rebase memperbarui cabang target dengan menerapkan commit dari cabang sumber kepadanya. Namun, Git merge dan Git rebase menggunakan strategi yang berbeda. Untuk informasi selengkapnya, lihat Memperbarui cabang dengan penggabungan atau rebase dan Kapan harus melakukan rebase dibandingkan penggabungan.

Memperbarui cabang dengan merge atau rebase

Git merge dan Git rebase mengintegrasikan komit dari cabang sumber ke cabang lokal Anda saat ini (cabang target). Penggabungan Git melakukan penggabungan fast-forward atau penggabungan no-fast-forward. Penggabungan tanpa penerusan cepat juga dikenal sebagai penggabungan tiga arah atau penggabungan sejati. Git rebase adalah jenis penggabungan lain. Jenis penggabungan ini diperlihatkan dalam diagram berikut.

Diagram menunjukkan commit sebelum dan sesudah saat menggunakan merge dan rebase.

Git merge dan Git rebase yang digunakan secara luas dalam alur kerja Git . Saat mengerjakan fitur lokal atau cabang perbaikan bug, merupakan praktik yang umum untuk:

  1. Jaga cabang main lokal Anda tetap terkini dengan rekan jauhnya dengan secara berkala pull untuk mengambil dan menggabungkan commit jarak jauh.
  2. Integrasikan pembaruan cabang lokal main ke cabang fitur lokal Anda dengan menggunakan rebase atau merge.
  3. Backup pekerjaan Anda di cabang fitur lokal dengan mengirim ke cabang jarak jauh yang sesuai.
  4. Setelah fitur selesai, buat pull request untuk menggabungkan cabang fitur remote Anda ke cabang remote main.

Pendekatan ini membantu Anda:

  • Perhatikan pekerjaan terbaru oleh orang lain yang mungkin memengaruhi pekerjaan Anda.
  • Segera atasi konflik apa pun antara pekerjaan Anda dan yang lain.
  • Terapkan fitur baru Anda di atas konten proyek up-to-date.
  • Minta tinjauan permintaan pull untuk pekerjaan Anda.

Penggabungan

Untuk penggabungan Git, jika ujung cabang target ada di dalam cabang sumber, jenis penggabungan default akan menjadi penggabungan maju cepat. Jika tidak, jenis penggabungan default akan menjadi penggabungan tanpa penerusan cepat.

penggabungan Git cepat tidak akan pernah memiliki konflik penggabungan karena Git tidak akan menerapkan penggabungan maju cepat jika ujung cabang target telah berbeda dari cabang sumber. Secara default, Git menggunakan penggabungan maju cepat jika memungkinkan. Misalnya, Git akan menerapkan penggabungan maju cepat pada cabang lokal yang hanya Anda perbarui dengan menarik dari cabang mitra jarak jauhnya.

Penggabungan Git tanpa fast-forward menghasilkan "commit penggabungan" cabang target baru yang mengintegrasikan perubahan cabang sumber dengan perubahan cabang target. Perubahan yang berlaku adalah yang dilakukan setelah commit terakhir yang sama untuk kedua cabang. Dalam diagram sebelumnya, penerapan C adalah penerapan umum terakhir di kedua cabang. Jika ada perubahan cabang sumber yang bertentangan dengan perubahan cabang target, maka Git akan meminta Anda untuk mengatasi konflik penggabungan. Komit penggabungan (L) berisi perubahan yang terintegrasi dari cabang sumber dan cabang target. Ujung cabang sumber dan target (K dan E) adalah induk dari commit penggabungan. Dalam riwayat commit cabang Anda , merge commit adalah penanda yang berguna untuk operasi penggabungan, dan dengan jelas menunjukkan cabang mana yang digabungkan.

Penggabungan Git hanya memodifikasi cabang target—cabang sumber tetap tidak berubah. Ketika Anda mengalami satu atau beberapa konflik penggabungan, Anda harus mengatasinya untuk menyelesaikan penggabungan. Atau, Anda dapat membatalkan operasi penggabungan dan mengembalikan cabang target ke status sebelumnya.

Untuk informasi selengkapnya tentang opsi dan strategi penggabungan, lihat manual referensi Git dan strategi penggabungan Git .

Petunjuk / Saran

Jika cabang sumber adalah cabang remote-tracking, pastikan cabang tersebut up-to-date dengan menjalankan Git fetch sebelum merge.

  1. Pilih Git > Kelola Cabang dari bilah menu guna membuka jendela Repositori Git.

    Cuplikan layar opsi Kelola Cabang di menu Git Visual Studio 2019.

  2. Di jendela Repositori Git , klik kanan cabang target dan memilih Checkout.

    Cuplikan layar opsi Checkout di jendela Repositori Git Visual Studio 2019.

  3. Klik kanan cabang sumber, dan pilih Gabungkan <cabang sumber> ke <cabang target>.

    Cuplikan layar opsi Gabungkan di jendela Repositori Git Visual Studio 2019.

  4. Visual Studio akan menampilkan pesan konfirmasi setelah penggabungan berhasil.

    Cuplikan layar pesan konfirmasi penggabungan di jendela Repositori Git Visual Studio 2019.

    Jika penggabungan dihentikan karena konflik penggabungan, Visual Studio akan memberi tahu Anda. Anda dapat mengatasi konflik, atau membatalkan penggabungan dan kembali ke status pra-penggabungan.

    Cuplikan layar pesan konflik penggabungan di jendela Repositori Git Visual Studio 2019.

Rebase

Git rebase mengurutkan ulang riwayat penerapan cabang target sehingga berisi semua penerapan cabang sumber, diikuti oleh semua penerapan cabang target sejak penerapan umum terakhir. Cara lain untuk melihatnya adalah bahwa Rebase Git memutar ulang perubahan di cabang target Anda di atas riwayat cabang sumber. Jika ada perubahan cabang sumber yang bertentangan dengan perubahan cabang target, maka Git akan meminta Anda untuk mengatasi konflik penggabungan. Rebase Git tidak membuat penerapan penggabungan. Perlu dicatat, Git rebase mengubah urutan commit pada cabang target yang ada, yang tidak terjadi pada strategi merge lainnya. Dalam diagram sebelumnya, penerapan K' berisi perubahan yang sama dengan K, tetapi memiliki ID penerapan baru karena menautkan kembali ke penerapan E alih-alih C.

Rebase Git hanya memodifikasi cabang target—cabang sumber tetap tidak berubah. Ketika Anda mengalami satu atau beberapa konflik penggabungan, Anda harus menyelesaikannya agar dapat menyelesaikan proses rebase. Atau, Anda dapat membatalkan operasi rebase dan mengembalikan cabang target ke status sebelumnya.

Jika Anda satu-satunya orang yang mengerjakan fitur atau cabang perbaikan bug, pertimbangkan untuk menggunakan Git rebase untuk mengintegrasikan commit pada cabang main baru. Jika tidak, gunakan Git merge. Untuk informasi selengkapnya tentang rebase Git dan kapan menggunakannya, lihat Menerapkan perubahan dengan rebase dan Rebase vs menggabungkan.

Petunjuk / Saran

Jika cabang sumber adalah cabang pelacakan jarak jauh, pastikan cabang up-to-date dengan menjalankan Git mengambil sebelum rebase.

  1. Pilih Git > Kelola Cabang untuk membuka jendela Repositori Git.

    Cuplikan layar opsi Kelola Cabang di menu Git Visual Studio 2019.

  2. Di jendela Repositori Git , klik kanan cabang target dan memilih Checkout.

    Cuplikan layar opsi Checkout di menu konteks cabang di jendela Repositori Git Visual Studio 2019.

  3. Klik kanan cabang sumber, dan pilih Rebase <cabang target> ke cabang sumber<>.

    Cuplikan layar opsi Rebase di menu konteks cabang di jendela Repositori Git Visual Studio 2019.

  4. Visual Studio akan menampilkan pesan konfirmasi setelah rebase berhasil.

    Cuplikan layar pesan konfirmasi rebase di jendela Repositori Git Visual Studio 2019.

    Jika rebase dihentikan karena konflik penggabungan, Visual Studio akan memberi tahu Anda. Anda dapat menyelesaikan konflik, atau membatalkan rebase dan kembali ke keadaan sebelum rebase.

    Cuplikan layar pesan konflik rebase di jendela Repositori Git Visual Studio 2019.

Mengambil perubahan terbaru dan memperbarui branch dengan pull

Secara default, penarikan Git menggabungkan git mengambil dan penggabungan Git untuk memperbarui cabang lokal Anda saat ini dari mitra jarak jauhnya. Secara opsional, Git pull dapat melakukan git rebase daripada Git merge.

Tidak seperti fetch Git, pull Git akan memperbarui cabang lokal Anda saat ini segera setelah mengunduh commit baru dari repositori jarak jauh. Gunakan git pull ketika Anda tahu Anda ingin memperbarui cabang lokal Anda saat ini segera setelah fetch Git.

Petunjuk / Saran

Untuk mengonfigurasi Visual Studio agar melakukan rebase daripada menggabungkan ketika Anda melakukan Pull:

  1. Dari menu Git, buka Alat>Opsi>Kontrol Sumber>Pengaturan Global Git.
  2. Atur cabang lokal Rebase saat menarik opsi ke True.
  1. Di jendela Perubahan Git, pilih Tarik.

    Cuplikan layar tombol Tarik di jendela Perubahan Git Visual Studio 2019.

    Anda juga dapat memilih Pull dari menu Git.

    Cuplikan layar opsi Pull di menu Git di Visual Studio 2019.

  2. Pesan konfirmasi ditampilkan saat operasi penarikan selesai.

    Cuplikan layar pesan konfirmasi penarikan di jendela Perubahan Git di Visual Studio 2019.

    Jika ada konflik selama bagian penggabungan operasi penarikan, Visual Studio akan memberi tahu Anda. Anda dapat mengatasi konflik, atau membatalkan penggabungan dan kembali ke status pra-penggabungan.

    Cuplikan layar pesan konflik pull di jendela Perubahan Git di Visual Studio 2019.

Nota

Di Visual Studio, Sync melakukan Pull lalu Push untuk menyinkronkan cabang lokal dan jarak jauh. Untuk informasi selengkapnya tentang Sync, lihat Menggunakan git fetch, pull, push, dan sync untuk kontrol versi di Visual Studio.

Langkah berikutnya