> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/id/basis-pengetahuan/040-git-integration.md).

# Integrasi Git

**Integrasi Git Overleaf** adalah sebuah [fitur premium](/latex/id/basis-pengetahuan/120-overleaf-premium-features.md). Fitur premium Overleaf tersedia bagi peserta dalam [Overleaf Commons](https://www.overleaf.com/for/universities), anggota grup [langganan](https://www.overleaf.com/for/groups), dan pemilik akun individual [langganan](https://www.overleaf.com/user/subscription/plans). Integrasi Git tersedia di Overleaf Cloud dan Overleaf Server Pro (versi 4.0 dan yang lebih baru).

### Apa itu integrasi Git Overleaf?

Integrasi Git Overleaf memungkinkan Anda mendapatkan URL Git dari proyek Overleaf Anda dan memperlakukannya seperti repositori Git jarak jauh (repo). Anda dapat meng-klon proyek Anda ke repositori Git lokal dan bekerja pada proyek Anda secara lokal, mendorong perubahan dari mesin lokal Anda ke proyek Anda dan mengambil pembaruan yang terjadi di editor online Overleaf ke repo lokal Anda.

Ini memungkinkan Anda bekerja pada proyek Anda secara lokal saat bekerja secara online tidak memungkinkan, menggunakan editor lokal lain pilihan Anda saat mengerjakan proyek Overleaf, atau dengan mudah menambahkan keluaran dari perangkat lunak lokal lain ke proyek Overleaf Anda.

Anda dapat memperoleh URL Git dan perintah klon untuk proyek Anda dari opsi Git di menu Overleaf proyek Anda.

![Menu proyek git.png](/files/025a431c90059bafee37455e6c013151430056bb)

### Cara autentikasi saat menggunakan integrasi Git

Saat Anda melakukan operasi Git seperti clone, pull, atau push ke proyek Overleaf jarak jauh Anda, Anda akan diminta untuk melakukan autentikasi.

Untuk mengakses proyek Overleaf Anda dari Git, Anda harus menggunakan autentikasi berbasis token Overleaf. Untuk petunjuk langkah demi langkah, lihat: [Autentikasi berbasis token](/latex/id/basis-pengetahuan/042-git-integration-authentication-tokens.md).

### Meng-klon proyek Anda sebagai repositori lokal

Dari [**Menu**](/latex/id/basis-pengetahuan/148-using-the-overleaf-project-menu.md) di dalam proyek Anda, Anda dapat memilih Git dari opsi Sinkronisasi. Ini akan memunculkan dialog yang menampilkan `git clone` perintah yang digunakan saat membuat repositori lokal Anda.

![Menu proyek git.png](/files/025a431c90059bafee37455e6c013151430056bb)

Sebagai alternatif, Anda dapat menemukan URL Git dari URL proyek (URL di bilah alamat browser saat Anda berada dalam sebuah proyek).

#### Overleaf Cloud

Jika Anda menggunakan Overleaf Cloud dan URL proyek Overleaf Anda terlihat seperti:

```
https://www.overleaf.com/project/1234567
```

Maka URL Git yang digunakan untuk meng-klon proyek adalah

```
https://git.overleaf.com/1234567
```

Dan perintah yang digunakan untuk meng-klon proyek ke dalam repositori Git lokal adalah:

```
git clone https://git.overleaf.com/1234567
```

**Catatan**: Anda mungkin akan diminta nama pengguna dan kata sandi. Lihat [autentikasi kata sandi integrasi Git](/latex/id/basis-pengetahuan/043-git-integration-password-based-authentication.md)

#### Overleaf Server Pro (versi 4.0 atau yang lebih baru)

**Catatan**: Integrasi Git-bridge tidak diaktifkan secara default di Server Pro. Lihat [Integrasi Git](https://github.com/overleaf/overleaf/wiki/Git-Integration) panduan kami untuk petunjuk cara mengaktifkannya.

Jika Anda menggunakan Overleaf Server Pro dan URL Proyek Anda terlihat seperti ini:

```
https://<SHARELATEX_SITE_URL>/project/1234567
```

Maka URL Git yang digunakan saat meng-klon proyek adalah:

```
https://git@<SHARELATEX_SITE_URL>/git/1234567
```

Dan perintah yang digunakan untuk meng-klon proyek ke dalam repositori Git lokal menggunakan baris perintah Git adalah:

```
git clone git@<SHARELATEX_SITE_URL>/git/1234567
```

**Catatan**: Anda mungkin akan diminta kata sandi. Lihat: [token autentikasi integrasi Git](/latex/id/basis-pengetahuan/042-git-integration-authentication-tokens.md)

### Membuat proyek Overleaf dari repositori Git yang sudah ada

Jika Anda memiliki repositori yang sudah ada, Anda dapat menambahkan proyek Overleaf sebagai repositori jarak jauh. Ada beberapa perintah di bawah ini yang perlu Anda jalankan untuk memulai. Harap diperhatikan bahwa Overleaf hanya mendukung satu riwayat linear untuk setiap proyek. Integrasi Git menegakkan batasan ini dengan membatasi jumlah cabang menjadi satu. Cabang tersebut saat ini di-hardcode bernama `master`.

1. Pertama, kami mengasumsikan Anda memiliki repositori git di komputer Anda dalam folder bernama `my-paper`. (Repositori itu mungkin juga di-host di GitHub, GitLab, atau Bitbucket, dll., tetapi Anda juga harus memiliki salinannya yang terklon secara lokal.)
2. Buat [proyek baru](/latex/id/basis-pengetahuan/031-creating-a-document-in-overleaf.md) di Overleaf. Karena semua konten dalam proyek akan ditimpa, gunakan opsi proyek 'Blank' saat membuat proyek ini dan hapus file `main.tex` di Overleaf.
3. Temukan URL Git untuk proyek tersebut (lihat [di atas](#cloning-your-project-as-a-local-repository)).

   ![Git-bridge-url.png](/files/924099a47086d33c2152efc1162eefaadae4f42b)
4. Tambahkan URL Git proyek sebagai remote di proyek lokal Anda.

   ```
   $ cd my-paper
   $ git remote add overleaf <GIT-URL>
   ```

   (Pastikan menggunakan tautan Anda sendiri, bukan tautan contoh.)
5. Ambil konten terbaru dari proyek Overleaf dan gabungkan ke cabang master Anda.

   ```
   $ git checkout master
   $ git pull overleaf master --allow-unrelated-histories --rebase=false
   ```
6. Push proyek Anda ke Overleaf.

   ```
   $ git push overleaf master --set-upstream
   ```

   Jika Anda ingin menggunakan nama cabang yang berbeda secara lokal, misalnya `my-branch`, Anda dapat mendorong perubahan Anda dengan alias:

   ```
   $ git push overleaf my-branch:master
   ```
7. Kunjungi proyek di Overleaf. Perubahan Anda seharusnya ada di sana. (Anda mungkin perlu membuka menu Proyek Overleaf untuk menemukan file mana yang telah ditetapkan sebagai file dokumen utama, dan mungkin mengubah pilihan awal ini.)

### Commit Git dan integrasi Git Overleaf

Overleaf memiliki [sistem Riwayat](/latex/id/topik-lainnya/49-using-the-history-feature.md) internal yang memungkinkan kolaborasi simultan di dalam proyek Overleaf. Ini bukan Git, jadi integrasi Git Overleaf pada dasarnya adalah terjemahan dari mekanisme riwayat dan versi Overleaf ke Git. Ini memungkinkan banyak kasus penggunaan yang didukung Git, tetapi tidak memungkinkan Anda bekerja di dalam Overleaf seolah-olah itu adalah implementasi Git yang lengkap.

#### Kapan commit dibuat?

Saat Anda menjalankan `pull` atau `fetch` perintah, jika tidak ada commit untuk status proyek saat ini, commit baru akan dibuat secara dinamis. Saat Anda `push` file dari repositori lokal Anda ke remote Overleaf, commit juga akan dibuat saat itu, yang akan terlihat dalam clone apa pun di masa mendatang yang Anda buat dari proyek Overleaf. Saat Anda atau orang lain sedang mengedit di Overleaf, commit tidak akan dibuat secara otomatis sampai diperlukan.

#### Memaksa commit

Jika Anda ingin memaksa pembuatan commit pada titik tertentu dalam riwayat Overleaf, Anda dapat melakukannya dengan [memberi label pada versi](/latex/id/topik-lainnya/49-using-the-history-feature.md) di riwayat Overleaf. Versi yang diberi label akan mendapatkan hash commit-nya sendiri meskipun Anda tidak langsung melakukan git pull. Commit hanya akan dibuat dari sebuah label jika tidak ada commit lain yang dibuat lebih baru daripada titik riwayat Overleaf yang diberi label.

#### Melacak kepengarangan

Sifat commit dari integrasi Git Overleaf yang dibuat tepat saat diperlukan berarti bahwa jika ada beberapa perubahan di sisi Overleaf sebelum commit dibuat, penulis dari perubahan paling baru akan dicantumkan sebagai penulis commit.

Saat bekerja dengan rekan penulis, ada baiknya membuat label (yang menghasilkan commit) setelah setiap kolaborator menyelesaikan pembaruan penting - ini menciptakan urutan commit yang terlihat di Git yang paling mencerminkan perubahan yang terjadi di Overleaf.

### Menyinkronkan dengan remote lain

Integrasi Git Overleaf memungkinkan proyek Overleaf Anda bertindak sebagai repositori jarak jauh bagi repositori lokal. Namun, Anda mungkin ingin menyinkronkan proyek Overleaf Anda dengan remote lain, yang di-host di GitHub, GitLab, atau layanan hosting Git lainnya.

Jika Anda menyinkronkan proyek Anda dengan repositori yang di-host di GitHub (<https://github.com/>), Anda mungkin ingin menggunakan sinkronisasi [GitHub langsung](/latex/id/basis-pengetahuan/044-github-synchronization.md) fitur.

Jika Anda menyinkronkan proyek Anda dengan GitLab, GitHub Enterprise, atau host lain, Anda dapat menggunakan integrasi Git Overleaf untuk menyiapkan repositori lokal perantara.

Dengan mengikuti instruksi di atas untuk [meng-klon proyek Anda](#cloning-your-project-as-a-local-repository) atau [menautkan proyek ke repositori yang sudah ada](#creating-an-overleaf-project-from-an-existing-git-repository), Anda akan memiliki repositori lokal yang dapat melakukan push/pull perubahan dari Overleaf. Anda kemudian dapat menambahkan remote kedua ke repositori ini yang mengarah ke repositori yang di-host Anda. Repositori lokal Anda perlu memiliki dua remote agar mengarah ke host Git Anda dan proyek Overleaf.

Meskipun tidak akan ada koneksi langsung antara proyek Overleaf dan repositori Git Anda, ini akan memungkinkan Anda untuk menjaganya tetap sinkron.

![Git other remote.png](/files/05b5e88c22dee46a1bd572342ccb3c696bded040)

### Tambahkan proyek Overleaf sebagai Submodul Git

Setiap proyek di Overleaf bertindak sebagai repositori Git independen, tetapi jika Anda ingin mengatur beberapa proyek seperti itu ke dalam satu repo Git, Anda dapat menambahkan repo untuk setiap proyek sebagai submodul Git dengan cara biasa. Anda kemudian dapat melakukan push dan pull ke/dari setiap repositori submodul ke Overleaf secara individual dan tetap mengumpulkannya bersama sebagai submodul ke dalam proyek yang lebih besar.

**Catatan:** Meskipun proyek Overleaf dapat menjadi submodul dalam repositori lain, proyek Overleaf itu sendiri tidak dapat berisi submodul lain.

### Batasan yang Diketahui

**Cabang**: Sistem Git Overleaf tidak mendukung pembuatan cabang.

**Symlink**: Sistem Git Overleaf tidak menangani symlink dengan baik. Sebuah symlink dapat didorong ke proyek Overleaf, tetapi akan diubah menjadi file biasa, dan akan menimpa symlink lokal pada saat proyek diambil berikutnya.

**Tag**: Sistem Git Overleaf tidak mendukung penandaan.

**Izin file**: Sistem Git Overleaf tidak mempertahankan izin eksekusi. Sebagai solusinya, Anda dapat menjalankan `git config core.fileMode false` di clone lokal repositori Anda. Kemudian Anda dapat mengatur ulang izin eksekusi pada file apa pun yang terdampak. Dengan cara ini, file-file tersebut tidak akan diubah lagi oleh operasi Git berikutnya.

**Git LFS:** Proyek Overleaf tidak mendukung Git Large File Storage.

**Submodul Git:** Proyek Overleaf dapat bertindak sebagai submodul Git di dalam repositori lain, tetapi tidak dapat berisi submodul Git lain. Untuk mereferensikan file dari proyek lain, disarankan untuk menggunakan [fitur tambah dari proyek lain](/latex/id/basis-pengetahuan/009-can-i-share-files-e.g.-.bib-and-some-graphics-across-my-projects.md).

**Mengganti nama folder**: Jika seorang pengguna mengganti nama folder, dan mendorong perubahan itu ke Overleaf, proyek akan tetap menyimpan folder kosong dengan nama lama, selain folder baru. (Misalnya, mengganti nama images/ menjadi img/ akan menyisakan dua folder di proyek: img/ berisi file gambar, dan images/, yang akan kosong. Ini dapat menyebabkan masalah ketika seorang pengguna mengganti nama folder, dan membuat file baru dengan nama yang sama seperti folder lama, dalam satu commit. Sistem Git Overleaf akan menolak commit ini. Dalam kasus ini kami merekomendasikan membagi commit menjadi dua bagian, dan menghapus folder yang tersisa.)

**Mengganti nama file dan memindahkan file:** Penggantian nama file di repositori lokal Anda menjadi operasi hapus dan buat di sisi Overleaf. Ini dapat mengakibatkan hilangnya metadata yang terkait dengan file di sisi Overleaf, sehingga menyebabkan penghapusan perubahan terlacak dan komentar. Tidak disarankan untuk memindahkan atau mengganti nama file di sisi Git yang memiliki perubahan terlacak atau komentar Overleaf.

**Perubahan Terlacak dan Komentar**: Sayangnya, push dari Git ke Overleaf dapat mengakibatkan hilangnya atau bergesernya perubahan terlacak dan komentar; oleh karena itu, kami tidak menyarankan mencampur penggunaan Git secara aktif dengan penggunaan perubahan terlacak dan/atau komentar.

### Pemecahan Masalah

#### Kesalahan repositori tidak ditemukan

Jika Anda melihat kesalahan Repository not found, kemungkinan URL yang digunakan salah. URL yang benar dapat ditemukan dengan mengeklik opsi Git di Menu di dalam proyek. Untuk Overleaf cloud, integrasi Git adalah fitur premium, jadi fitur ini hanya akan tersedia jika pemilik proyek memiliki langganan berbayar ke Overleaf atau telah diberi akses ke fitur tersebut (misalnya dengan berpartisipasi dalam pengujian beta awal).

#### Kesalahan autentikasi gagal

Lihat petunjuk pemecahan masalah untuk [token autentikasi integrasi Git](/latex/id/basis-pengetahuan/042-git-integration-authentication-tokens.md) atau [autentikasi kata sandi integrasi Git](/latex/id/basis-pengetahuan/043-git-integration-password-based-authentication.md) tergantung pada metode login yang Anda gunakan.

#### Batas laju

Pembatasan laju Git Bridge umumnya tidak terjadi saat operasi Git dijalankan secara manual. Beberapa klien Git dapat dikonfigurasi untuk mencoba memeriksa remote secara otomatis untuk perubahan, yang dapat menyebabkan kesalahan pembatasan laju dalam beberapa kasus. Secara umum, menonaktifkan pemeriksaan otomatis apa pun atau mengurangi frekuensi operasi Git harus menyelesaikan masalah ini.

#### Kegagalan push referensi

Kegagalan untuk melakukan push pada beberapa referensi ke proyek jarak jauh dapat disebabkan oleh [melampaui batas ukuran file atau jumlah file dalam sebuah proyek](/latex/id/basis-pengetahuan/119-overleaf-plan-limits.md) atau dengan menyertakan jenis file yang tidak didukung (misalnya symlink atau LFS). Silakan tinjau batasan yang diketahui yang tercantum di atas untuk mengidentifikasi file bermasalah apa pun dalam commit.

Dalam beberapa kasus, meningkatkan **postBuffer** pengaturan dapat mengatasi kegagalan untuk melakukan push referensi dari repositori lokal Anda ke proyek Overleaf.

Pertama, Anda dapat memeriksa pengaturan saat ini dengan perintah:

```
     git config http.postBuffer
```

Jika tidak ada keluaran, itu berarti nilai default 1MB digunakan.

Selanjutnya, coba perintah

```
     git config --global http.postBuffer 10485760
```

yang akan mengatur nilainya menjadi 10MB.

Sekarang Anda dapat mencoba melakukan push commit (ke proyek asli atau yang baru). Jika itu tidak berhasil, Anda dapat kembali ke pengaturan sebelumnya, atau menghapus pengaturan dengan:

```
     git config --global --unset http.postBuffer
```

#### Waktu habis

Commit Git yang menyertakan sejumlah besar perubahan berpotensi menyebabkan waktu habis. Jika Anda mengalami waktu habis, silakan coba memecah commit menjadi perubahan yang lebih kecil. Jika masalah berlanjut, pertimbangkan untuk mengatur **postBuffer** ke 10MB seperti dijelaskan di atas.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/id/basis-pengetahuan/040-git-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
