Bagikan melalui


Konsep dasar dalam integrasi Git

Artikel ini menjelaskan konsep Git dasar dan proses mengintegrasikan Git dengan ruang kerja Microsoft Fabric Anda.

Izin

  • Administrator organisasi Anda harus mengaktifkan integrasi Git.
  • Pengelola penyewa harus mengaktifkan ekspor lintas geo jika ruang kerja dan repositori Azure berada di dua wilayah yang berbeda. Pembatasan ini tidak berlaku untuk GitHub.
  • Izin yang Anda miliki di ruang kerja dan Git, seperti yang tercantum di bagian berikutnya, menentukan tindakan yang dapat Anda ambil.

Daftar berikut menunjukkan apa yang dapat dilakukan peran ruang kerja yang berbeda tergantung pada izin mereka di repositori Git mereka:

  • Admin: Dapat melakukan operasi apa pun di ruang kerja, hanya dibatasi oleh peran Git mereka.
  • Anggota/Kontributor: Setelah tersambung ke ruang kerja, anggota/kontributor dapat menerapkan dan memperbarui perubahan, tergantung pada peran Git mereka. Untuk tindakan yang terkait dengan koneksi ruang kerja (misalnya, menyambungkan, memutuskan sambungan, atau beralih cabang) cari bantuan dari Admin.
  • Penampil: Tidak dapat melakukan tindakan apa pun. Penampil tidak dapat melihat informasi terkait Git apa pun di ruang kerja.

Peran ruang kerja

Tabel berikut menjelaskan izin yang diperlukan di ruang kerja Fabric untuk melakukan berbagai operasi umum:

Operasi Peran ruang kerja
Menyambungkan ruang kerja ke repositori Git Administrator
Menyinkronkan ruang kerja dengan repositori Git Administrator
Putuskan sambungan ruang kerja dari repositori Git Administrator
Ganti cabang pada ruang kerja (atau perubahan apa pun pada pengaturan koneksi) Administrator
Lihat detail koneksi Git Admin, Anggota, Kontributor
Lihat ruang kerja 'Status Git' Admin, Anggota, Kontributor
Pembaruan dari Git Semua peran berikut:

Kontributor di ruang kerja (izin menulis pada semua item)

Pemilik barang (jika sakelar penyewa memblokir pembaharuan bagi non-pemilik)

MEMBANGUN pada dependensi eksternal (jika berlaku)
Menerapkan perubahan ruang kerja ke Git Semua peran berikut:

Kontributor di ruang kerja (izin menulis pada semua item)

Pemilik barang (jika sakelar penyewa memblokir pembaharuan bagi non-pemilik)

MEMBANGUN pada dependensi eksternal (jika berlaku)
Membuat cabang Git baru dari dalam Fabric Administrator
Beralih ke ruang kerja lain Admin, Anggota, Kontributor

Peran Git

Tabel berikut ini menjelaskan izin Git yang diperlukan untuk melakukan berbagai operasi umum:

Operasi Hak Akses Git
Menyambungkan ruang kerja ke repositori Git Baca=Izinkan
Menyinkronkan ruang kerja dengan repositori Git Baca=Izinkan
Putuskan sambungan ruang kerja dari repositori Git Tidak ada izin yang diperlukan
Ganti cabang pada ruang kerja (atau perubahan apa pun pada pengaturan koneksi) Baca=Izinkan (dalam repositori/direktori/cabang sasaran)
Lihat detail koneksi Git Baca atau Kosong
Lihat ruang kerja 'Status Git' Baca=Izinkan
Pembaruan dari Git Baca=Izinkan
Menerapkan perubahan ruang kerja ke Git Baca=Izinkan
Kontribusi=Mengizinkan
Aturan cabang seharusnya mengizinkan komitmen secara langsung.
Membuat cabang Git baru dari dalam Fabric Peran: Menulis
Buat cabang=Izinkan
Beralih ke ruang kerja lain Baca=Izinkan
Buat cabang=Izinkan

Menyambungkan dan menyinkronkan

Hanya admin ruang kerja yang dapat menyambungkan ruang kerja ke Git Repos, tetapi setelah tersambung, siapa pun yang memiliki izin dapat bekerja di ruang kerja. Jika Anda bukan admin, mintalah bantuan admin untuk menyambungkan.

Saat Anda menyambungkan ruang kerja ke Git, Fabric menyinkronkan antara dua lokasi sehingga mereka memiliki konten yang sama. Selama sinkronisasi awal ini, jika ruang kerja atau cabang Git kosong sementara yang lain memiliki konten, konten disalin dari lokasi yang tidak ada ke lokasi kosong. Jika ruang kerja dan cabang Git memiliki konten, Anda harus memutuskan arah mana yang harus dilalui sinkronisasi.

  • Jika Anda mengkomit ruang kerja Anda ke cabang di Git, semua konten ruang kerja yang didukung diekspor ke Git dan menggantikan konten Git yang ada.
  • Jika Anda memperbarui ruang kerja dengan konten Git, maka konten ruang kerja akan ditimpa, dan Anda kehilangan konten ruang kerja tersebut. Karena cabang Git selalu dapat dipulihkan ke tahap sebelumnya sementara ruang kerja tidak dapat, jika Anda memilih opsi ini, Anda diminta untuk mengonfirmasi.

Cuplikan layar dialog yang menanyakan arah mana yang akan disinkronkan jika Git dan ruang kerja memiliki konten.

Jika Anda tidak memilih konten mana yang akan disinkronkan, Anda tidak dapat terus bekerja.

Cuplikan layar pemberitahuan bahwa Anda tidak dapat terus bekerja hingga ruang kerja disinkronkan.

Folder

Saat tersambung dan disinkronkan, struktur ruang kerja dicerminkan di repositori Git, termasuk struktur folder. Item ruang kerja dalam folder diekspor ke folder dengan nama yang sama di repositori Git. Sebaliknya, item di folder Git diimpor ke folder dengan nama yang sama di ruang kerja.

Nota

Karena struktur folder dipertahankan, jika ruang kerja Anda memiliki folder dan folder Git yang tersambung belum memiliki subfolder, mereka dianggap berbeda. Anda mendapatkan status perubahan yang belum disimpan di panel kontrol versi dan Anda perlu meng-commit perubahan tersebut ke Git sebelum meng-update ruang kerja. Jika Anda memperbarui terlebih dahulu, struktur folder Git akan menimpa struktur folder ruang kerja. Untuk informasi selengkapnya, lihat Menangani perubahan folder dengan aman.

Cuplikan layar ruang kerja dan cabang Git terkait dengan subfolder.

  • Folder kosong tidak disalin ke Git. Saat Anda membuat atau memindahkan item ke folder, folder dibuat di Git.
  • Folder kosong di Git dihapus secara otomatis.
  • Folder kosong di ruang kerja tidak dihapus secara otomatis meskipun semua item dipindahkan ke folder yang berbeda.
  • Struktur folder dipertahankan hingga 10 tingkat kedalaman.

Menangani perubahan folder dengan aman

Jika ruang kerja Anda memiliki folder dan folder Git yang tersambung belum memiliki subfolder, folder tersebut dianggap berbeda karena struktur foldernya berbeda. Saat Anda menyambungkan ruang kerja yang memiliki folder ke Git, Anda mendapatkan status perubahan belum terkirim di panel kontrol versi dan Anda perlu mengirim perubahan ke Git sebelum memperbarui ruang kerja.

Jika Anda tidak dapat membuat perubahan langsung pada cabang yang terhubung karena kebijakan atau izin, sebaiknya gunakan opsi Checkout Cabang:

  1. Checkout Cabang Baru: Gunakan fitur checkout cabang untuk membuat cabang dengan kondisi terbaru ruang kerja Fabric Anda.
  2. Melakukan Perubahan Folder: Perubahan folder ruang kerja apa pun kemudian dapat dilakukan ke cabang baru ini.
  3. Gabungkan Perubahan: Gunakan permintaan pull reguler (PR) Anda dan gabungkan proses untuk mengintegrasikan pembaruan ini kembali ke cabang asli.

Sambungkan ke ruang kerja bersama

Jika Anda mencoba menyambungkan ke ruang kerja yang sudah tersambung ke Git, Anda mungkin mendapatkan pesan berikut:

Cuplikan layar pesan kesalahan yang memberi tahu Anda untuk masuk ke akun Git.

Buka tab Akun di sisi kanan panel Kontrol sumber, pilih akun, dan sambungkan ke akun tersebut.

Cuplikan layar tab Akun dengan pengguna yang menyambungkan ke akun GitHub.

Status dari Git

Setelah Anda tersambung, ruang kerja menampilkan kolom status Git yang menunjukkan status sinkronisasi setiap item di ruang kerja sehubungan dengan item di cabang jarak jauh.

Tangkapan layar dari item di ruang kerja dengan status Git mereka ditampilkan.

Setiap item memiliki salah satu status berikut:

  • Disinkronkan (item sama di ruang kerja dan cabang Git)
  • Konflik (elemen telah diubah baik di ruang kerja maupun cabang Git)
  • Item yang tidak didukung
  • Perubahan yang tidak dikomit di ruang kerja
  • Pembaruan diperlukan dari Git
  • Item identik di kedua tempat tetapi perlu diperbarui sesuai dengan komit terakhir

Informasi sinkronisasi

Selama Anda tersambung, informasi berikut muncul di bagian bawah layar Anda:

  • Cabang tersambung
  • Waktu sinkronisasi terakhir
  • Tautan ke commit terakhir yang disinkronkan dengan ruang kerja

Cuplikan layar informasi sinkronisasi yang muncul di bagian bawah layar saat tersambung ke Git.

Panel kontrol sumber

Di atas layar ada ikon Kontrol sumber. Ini menunjukkan jumlah item yang berbeda di ruang kerja dan cabang Git. Ketika ada perubahan pada ruang kerja atau cabang Git, maka angka tersebut diperbarui. Saat ruang kerja disinkronkan dengan cabang Git, ikon Kontrol sumber menampilkan 0.

Cuplikan layar ikon kontrol sumber memperlihatkan nol item yang diubah.

Pilih ikon Kontrol sumber untuk membuka panel kontrol Sumber.

Panel kontrol sumber memiliki tiga tab di samping:

Komitmen dan pembaruan

Ketika perubahan dilakukan baik ke ruang kerja atau cabang Git, ikon kontrol sumber menunjukkan jumlah item yang berbeda. Pilih ikon kontrol sumber untuk membuka panel kontrol Sumber.

Panel Penerapan dan pembaruan memiliki dua bagian.

Perubahan menunjukkan jumlah item yang diubah di ruang kerja dan perlu diterapkan ke Git.
Pembaruan menunjukkan jumlah item yang telah dimodifikasi di cabang Git dan perlu di-update ke ruang kerja.

Di setiap bagian, item yang diubah dicantumkan dengan ikon yang menunjukkan status:

  • baru
  • dimodifikasi
  • Dihapus
  • perselisihan
  • perubahan yang sama

Tombol Refresh di atas panel memperbarui daftar perubahan dan pembaruan.

Cuplikan layar panel kontrol sumber memperlihatkan status item yang diubah.

Komitmen

  • Item di ruang kerja yang diubah tercantum di bagian Perubahan . Saat ada lebih dari satu item yang diubah, Anda dapat memilih item mana yang akan diterapkan ke cabang Git.
  • Jika ada pembaruan yang dilakukan pada cabang Git, komit akan dinonaktifkan sampai Anda memperbarui ruang kerja Anda.

Pembaruan

  • Tidak seperti commit dan batalkan, Perintah Update selalu memperbarui seluruh cabang dan menyinkronkan ke commit terbaru. Anda tidak dapat memilih item tertentu untuk diperbarui.
  • Jika perubahan dilakukan di ruang kerja dan di cabang Git pada item yang sama, pembaruan dinonaktifkan hingga konflik diselesaikan.

Baca selengkapnya tentang cara menerapkan dan memperbarui. Baca selengkapnya tentang proses pembaruan dan cara mengatasi konflik.

Cabang

Tab Cabang dari panel Kontrol sumber memungkinkan Anda mengelola cabang dan melakukan tindakan terkait cabang. Ini memiliki dua bagian utama:

  • Tindakan yang dapat Anda ambil pada cabang saat ini:

    • Melebarkan ke ruang kerja lain (kontributor ke atas): Menciptakan ruang kerja baru, atau beralih ke ruang kerja yang sudah ada berdasarkan komit terakhir ke ruang kerja saat ini. Kemudian, sistem akan menghubungkan ke ruang kerja dan cabang yang ditargetkan.
    • Memeriksa cabang baru (harus menjadi admin ruang kerja): Membuat cabang baru berdasarkan penerapan terakhir yang disinkronkan di ruang kerja dan mengubah koneksi Git di ruang kerja saat ini. Ini tidak mengubah konten ruang kerja.
    • Beralih cabang (harus menjadi admin ruang kerja): Menyinkronkan ruang kerja dengan cabang baru atau yang sudah ada lainnya dan menggantikan semua item di ruang kerja dengan konten dari cabang yang dipilih.

    Cuplikan layar tab cabang di panel kontrol sumber.

  • Cabang terkait.
    Tab Cabang juga memiliki daftar ruang kerja terkait yang dapat Anda pilih dan alihkan. Ruang kerja terkait adalah ruang kerja dengan properti koneksi yang sama dengan cabang saat ini, seperti organisasi, proyek, repositori, dan folder git yang sama.
    Fitur ini memungkinkan Anda menavigasi ke ruang kerja yang terhubung ke cabang lain yang terkait dengan konteks pekerjaan Anda saat ini, tanpa harus mencarinya di daftar ruang kerja Fabric Anda.
    Untuk membuka ruang kerja yang relevan, pilih item dalam daftar.

    Cuplikan layar memperlihatkan daftar cabang terkait yang dapat dialihkan pengguna.

Untuk informasi selengkapnya, lihat batasan pencabangan.

Detail akun

Tab Detail akun memperlihatkan detail akun GitHub yang tersambung dengan pengguna. Ini memiliki dua bagian. Bagian atas menunjukkan penyedia Git dan nama akun. Bagian bawah menunjukkan repositori dan cabang tempat ruang kerja tersambung. Saat ini, tab ini hanya tersedia untuk ruang kerja yang terhubung ke GitHub.

Detail akun GitHub meliputi:

  • Detail akun Git

    • Penyedia
    • Nama akun
  • Repositori Git

  • Cabang

Cuplikan layar tab akun di panel Kontrol sumber memperlihatkan detail Git dan repositori dan nama cabang.

Pertimbangan dan batasan

Batasan Umum Integrasi Git

  • Metode autentikasi dalam Fabric harus setidaknya sekuat metode autentikasi untuk Git. Misalnya, jika Git memerlukan autentikasi multifaktor, Fabric juga perlu memerlukan autentikasi multifaktor.
  • Himpunan Data Power BI yang tersambung ke Analysis Services saat ini tidak didukung.
  • Jika Anda menggunakan identitas ruang kerja dalam satu artefak dan menerapkannya ke Git, identitas tersebut dapat diperbarui (kembali ke ruang kerja fabric) hanya di ruang kerja yang terhubung ke identitas yang sama. Hati-hati, karena ini juga mempengaruhi fitur seperti cabang keluar.
  • Submodul tidak didukung.
  • Sovereign cloud tidak didukung.
  • Jika ruang kerja Anda berisi ratusan item, pertimbangkan untuk membaginya menjadi set artefak yang lebih kecil. Setiap set harus ditempatkan di ruang kerja terpisah dan ditautkan ke cabang Git yang berbeda, atau terhubung ke satu cabang yang diatur ke dalam folder yang berbeda.
  • Azure DevOps tidak didukung jika Mengaktifkan validasi kebijakan Akses Kondisional IP diaktifkan.
  • Jika ruang kerja dan repositori Git berada di dua wilayah geografis yang berbeda, admin penyewa harus mengaktifkan ekspor lintas geo.
  • Jika organisasi Anda mengonfigurasi akses bersyarat, pastikan Layanan Power BI memiliki kondisi yang sama yang diatur agar autentikasi berfungsi seperti yang diharapkan.
  • Batas ukuran commit berikut diterapkan:
    • 25 MB menggunakan konektor Azure DevOps dengan Service Principal.
    • 125 MB menggunakan akun Microsoft Entra ID SSO bawaan dan konektor Azure DevOps dengan Prinsipal Pengguna.

Batasan GitHub Enterprise

Beberapa versi dan pengaturan GitHub Enterprise tidak didukung. Contohnya:

  • GitHub Enterprise Cloud dengan lokasi penyimpanan data (ghe.com)
  • GitHub Enterprise Server dengan domain kustom tidak didukung, bahkan jika instans dapat diakses secara publik
  • Github Enterprise Server yang dihosting di jaringan privat
  • daftar IP yang diizinkan

Pertimbangan migrasi Azure DevOps ke GitHub Enterprise

Jika tim Anda menggunakan Integrasi Fabric Git dan mengevaluasi migrasi dari Azure DevOps ke GitHub Enterprise, disarankan untuk menjalankan pengujian validasi untuk memastikan fungsionalitas Integrasi Git tetap tidak terpengaruh. Integrasi Fabric Git bergantung pada API penyedia Git yang mendasar, yang berbeda dalam kemampuan dan batasan antara Azure DevOps dan GitHub Enterprise, seperti yang dijelaskan di atas.

Batasan ruang kerja

  • Hanya admin ruang kerja yang dapat mengelola koneksi ke Git Repo seperti menyambungkan, memutuskan sambungan, atau menambahkan cabang.
    Setelah tersambung, siapa pun dengan izin dapat bekerja di ruang kerja.
  • Ruang kerja dengan aplikasi templat yang diinstal tidak dapat disambungkan ke Git.
  • MyWorkspace tidak dapat tersambung ke penyedia Git.

Batasan cabang dan folder

  • Panjang maksimum nama cabang adalah 244 karakter.
  • Panjang maksimum jalur lengkap untuk nama file adalah 250 karakter. Nama yang lebih panjang gagal.
  • Ukuran file maksimum adalah 25 MB.
  • Struktur folder dipertahankan hingga 10 tingkat kedalaman.
  • Mengunduh laporan/himpunan data sebagai .pbix dari layanan setelah menyebarkannya dengan integrasi Git tidak disarankan, karena hasilnya tidak dapat diandalkan. Sebaiknya gunakan PowerBI Desktop untuk mengunduh laporan/himpunan data sebagai .pbix.
  • Jika nama tampilan item memiliki salah satu karakteristik ini, folder Git diganti namanya menjadi ID logis (Guid) dan jenis:
    • Memiliki lebih dari 256 karakter
    • Berakhir dengan . atau spasi
    • Berisi karakter terlarang seperti yang dijelaskan dalam batasan nama direktori
  • Saat Anda menyambungkan ruang kerja yang memiliki folder ke Git, Anda perlu menerapkan perubahan pada repositori Git jika struktur folder tersebut berbeda.

Batasan nama direktori

  • Nama direktori yang terhubung ke repositori Git memiliki batasan penamaan berikut:

    • Nama direktori tidak dapat dimulai atau diakhapi dengan spasi atau tab.
    • Nama direktori tidak boleh berisi salah satu karakter berikut: "/:<>\*?|
  • Folder item (folder yang berisi file item) tidak boleh berisi karakter berikut: ":<>\*?|. Jika Anda mengganti nama folder menjadi sesuatu yang menyertakan salah satu karakter ini, Git tidak dapat menyambungkan atau menyinkronkan dengan ruang kerja dan terjadi kesalahan.

Batasan dalam melakukan ekspansi

  • Branch out memerlukan izin yang tercantum dalam tabel izin.
  • Harus ada kapasitas yang tersedia untuk tindakan ini.
  • Semua batasan penamaan ruang kerja dan cabang berlaku saat membuat ruang kerja baru.
  • Hanya item yang kompatibel dengan Git yang tersedia di ruang kerja baru.
  • Daftar cabang terkait hanya menampilkan cabang dan ruang kerja yang memiliki izin untuk dilihat.
  • Integrasi Git harus diaktifkan.
  • Ketika membuat cabang baru, cabang tersebut dibuat tanpa menyalin pengaturan dari cabang asli. Sesuaikan pengaturan atau definisi apa pun untuk memastikan bahwa yang baru memenuhi kebijakan organisasi Anda.
  • Saat beralih ke ruang kerja yang ada:
    • Ruang kerja target harus mendukung koneksi Git.
    • Pengguna harus menjadi admin ruang kerja target.
    • Ruang kerja target harus memiliki kapasitas.
    • Ruang kerja tidak dapat memiliki aplikasi templat.
  • Perhatikan bahwa saat Anda bercabang ke ruang kerja, item apa pun yang tidak disimpan ke Git bisa hilang. Kami menyarankan agar Anda mengkomit item apa pun yang ingin Anda simpan sebelum bercabang.

Batasan sinkronisasi dan pengikatan

  • Anda hanya dapat menyinkronkan satu arah pada satu waktu. Anda tidak dapat mengirim dan memperbarui bersamaan.
  • Label sensitivitas tidak didukung dan mengekspor item dengan label sensitivitas mungkin dinonaktifkan. Untuk menerapkan item yang memiliki label sensitivitas tanpa label sensitivitas, mintalah bantuan administrator Anda.
  • Bekerja dengan item terbatas. Item yang tidak didukung dalam folder diabaikan.
  • Nama duplikat tidak diperbolehkan. Bahkan jika Power BI mengizinkan duplikasi nama, tindakan pembaruan, penyimpanan, atau pengembalian akan gagal.
  • B2B tidak didukung.
  • Resolusi konflik sebagian dilakukan di Git.
  • Selama proses Penerapan ke Git, layanan Fabric menghapus file di dalam folder item yang bukan bagian dari definisi item. File yang tidak terkait yang tidak ada dalam folder item tidak dihapus.
  • Setelah menerapkan perubahan, Anda mungkin melihat beberapa perubahan tak terduga pada item yang tidak Anda buat. Perubahan ini secara semantik tidak signifikan dan dapat terjadi karena beberapa alasan. Misalnya:
    • Mengubah file definisi item secara manual. Perubahan ini valid, tetapi mungkin berbeda dari jika dilakukan melalui editor. Misalnya, jika Anda mengganti nama kolom model semantik di Git dan mengimpor perubahan ini ke ruang kerja, pada saat berikutnya Anda menerapkan perubahan pada model semantik, file bim akan tercatat sebagai perubahan dan kolom yang dimodifikasi akan dipindahkan ke bagian belakang columns array. Ini karena mesin AS yang menghasilkan file bim mendorong kolom yang diganti namanya ke akhir array. Perubahan ini tidak memengaruhi cara item beroperasi.
    • Melakukan commit terhadap file yang menggunakan pemisah baris CRLF. Layanan ini menggunakan pemisah baris LF (line feed). Jika Anda memiliki file-item di repositori Git dengan jeda baris CRLF, ketika Anda melakukan komit dari layanan, file-file ini diubah ke LF. Misalnya, jika Anda membuka laporan di desktop, simpan file proyek (.pbip) dan unggah ke Git menggunakan CRLF.
  • Merefresh model semantik menggunakan API penyegaran yang ditingkatkan menyebabkan perbedaan Git setelah setiap penyegaran.