Bagikan melalui


Memperbarui kode dengan mengambil, menggabungkan, dan menarik

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

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 mengambil unduhan penerapan baru yang diunggah orang lain ke repositori jarak jauh. Cabang pelacakan jarak jauh di cache repositori lokal diperbarui—cabang lokal tetap tidak berubah.
  • Penggabungan Git mengintegrasikan penerapan dari satu atau beberapa cabang sumber ke dalam cabang target.
  • Git rebase mengintegrasikan penerapan dari cabang sumber ke cabang target, tetapi menggunakan strategi yang berbeda dari gabungan Git.
  • Git pull melakukan pengambilan dan kemudian penggabungan atau rebase untuk mengintegrasikan penerapan yang diambil ke cabang lokal Anda saat ini.

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

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

Artikel ini menyediakan prosedur untuk tugas-tugas berikut:

  • Mengunduh perubahan dengan mengambil
  • Memperbarui cabang dengan gabungkan atau rebase
  • Mengunduh perubahan dan memperbarui cabang dengan penarikan

Mengunduh perubahan dengan mengambil

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 repositori lokal. Cabang pelacakan jarak jauh adalah salinan baca-saja yang di-cache secara lokal dari cabang jarak jauh dan bukan cabang lokal Anda. Pengambilan Git tidak memperbarui cabang lokal Anda. Misalnya, jika repositori jarak jauh yang ditunjuk oleh origin memiliki bugfix3 cabang, pengambilan Git akan memperbarui cabang pelacakan jarak jauh bernama origin/bugfix3 dan bukan cabang lokal bugfix3 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 opsi Ambil di menu Git di Visual Studio 2019.

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

    Cuplikan layar menu Repositori Git di Visual Studio 2019.

Tip

Ambil tidak akan menghapus cabang pelacakan jarak jauh di cache repo lokal Anda yang tidak lagi memiliki mitra jarak jauh. Untuk mengonfigurasi Visual Studio untuk memangkas cabang pelacakan jarak jauh kedaluarsa selama Pengambilan:

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

Setelah pengambilan Git, Anda dapat membandingkan cabang lokal dengan cabang pelacakan jarak jauh yang sesuai untuk melihat apa yang berubah di cabang jarak jauh. Jika Anda memutuskan untuk memperbarui cabang lokal Anda saat ini dengan perubahan yang diambil, Anda dapat melakukan penggabungan git atau rebase. Atau, Anda dapat menjalankan penarikan Git, yang menggabungkan pengambilan Git dengan penggabungan git atau rebase. Penggabungan Git dan rebase Git memperbarui cabang target dengan menerapkan penerapan dari cabang sumber ke dalamnya. Namun, penggabungan Git dan rebase Git menggunakan strategi yang berbeda. Untuk informasi selengkapnya, lihat Memperbarui cabang dengan gabungkan atau rebase dan Kapan harus melakukan rebase vs. penggabungan.

Memperbarui cabang dengan gabungkan atau rebase

Penggabungan Git dan rebase Git mengintegrasikan penerapan dari cabang sumber ke cabang lokal Anda saat ini (cabang target). Penggabungan Git melakukan penggabungan maju cepat atau tidak cepat. Penggabungan tanpa penerusan cepat juga dikenal sebagai penggabungan tiga arah atau penggabungan sejati . Rebase Git adalah jenis penggabungan lain. Jenis penggabungan ini diperlihatkan dalam diagram berikut.

Diagram memperlihatkan penerapan sebelum dan sesudah saat menggunakan gabungkan dan rebase.

Penggabungan Git dan rebase Git banyak digunakan dalam alur kerja Git. Saat mengerjakan fitur lokal atau cabang bugfix, ini adalah praktik umum untuk:

  1. Pertahankan cabang lokal main Anda tetap terkini dengan mitra jarak jauhnya dengan secara berkala menarik untuk mengambil dan menggabungkan penerapan jarak jauh.
  2. Integrasikan pembaruan cabang lokal main ke cabang fitur lokal Anda menggunakan rebase atau penggabungan.
  3. Cadangkan pekerjaan Anda di cabang fitur lokal dengan mendorongnya ke cabang jarak jauh yang sesuai.
  4. Pada penyelesaian fitur, buat permintaan pull untuk menggabungkan cabang fitur jarak jauh Anda ke cabang jarak jauh 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 terbaru.
  • Dapatkan tinjauan permintaan pull 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 yang maju cepat tidak pernah dapat 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 yang tidak cepat menghasilkan cabang target baru "gabungkan penerapan" yang mengintegrasikan perubahan cabang sumber dengan perubahan cabang target. Perubahan yang berlaku adalah yang dilakukan setelah penerapan terakhir yang umum 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. Penerapan penggabungan (L) berisi cabang sumber terintegrasi dan perubahan cabang target. Tips cabang sumber dan target (K dan E) adalah induk dari penerapan penggabungan. Dalam riwayat penerapan cabang Anda, penerapan penggabungan 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 panduan referensi Git dan strategi penggabungan Git.

Tip

Jika cabang sumber adalah cabang pelacakan jarak jauh, pastikan bahwa cabang sudah diperbarui dengan menjalankan pengambilan Git sebelum penggabungan.

  1. Pilih Git > Kelola Cabang dari bilah menu 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 pilih 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. Terutama, Git mengubah urutan penerapan cabang target yang ada, yang bukan kasus untuk strategi penggabungan lainnya. Dalam diagram sebelumnya, commit 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 untuk menyelesaikan rebase. Atau, Anda dapat membatalkan operasi rebase dan mengembalikan cabang target ke status sebelumnya.

Jika Anda satu-satunya orang yang mengerjakan fitur atau cabang bugfix Anda, pertimbangkan untuk menggunakan rebase Git untuk mengintegrasikan penerapan cabang baru main ke dalamnya. Jika tidak, gunakan penggabungan Git. Untuk informasi selengkapnya tentang rebase Git dan kapan menggunakannya, lihat Menerapkan perubahan dengan rebase dan Rebase vs merge.

Tip

Jika cabang sumber adalah cabang pelacakan jarak jauh, pastikan bahwa cabang sudah diperbarui dengan menjalankan pengambilan Git 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 pilih Checkout.

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

  3. Klik kanan cabang sumber, dan pilih Rebase <target-branch> 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 mengatasi konflik, atau membatalkan rebase dan kembali ke status pra-rebase.

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

Mengunduh perubahan dan memperbarui cabang dengan penarikan

Secara default, penarikan Git menggabungkan pengambilan Git dan penggabungan Git untuk memperbarui cabang lokal Anda saat ini dari rekan jarak jauhnya. Secara opsional, penarikan Git dapat melakukan rebase Git alih-alih penggabungan Git.

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

Tip

Untuk mengonfigurasi Visual Studio untuk melakukan rebase alih-alih menggabungkan saat Anda Menarik:

  1. Dari menu Git, buka Opsi>Alat>Kontrol>Sumber Git Global Pengaturan.
  2. Atur rebase cabang lokal 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 Tarik 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 penarikan di jendela Perubahan Git di Visual Studio 2019.

Catatan

Di Visual Studio, Sinkronisasi melakukan Penarikan lalu Dorong untuk menyinkronkan cabang lokal dan jarak jauh. Untuk informasi selengkapnya tentang Sinkronisasi, lihat Menggunakan pengambilan git, tarik, dorong, dan sinkronkan untuk kontrol versi di Visual Studio.

Langkah berikutnya