

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Buat komit di AWS CodeCommit
<a name="how-to-create-commit"></a>

Saat Anda membuat komit pertama untuk repositori baru, Anda menggunakan perintah AWS CLI dan perintah. **put-file** Ini membuat commit pertama dan memungkinkan Anda untuk membuat dan menentukan cabang default untuk repositori baru Anda. Anda dapat menggunakan Git atau AWS CLI untuk membuat komit dalam CodeCommit repositori. Jika repo lokal terhubung ke CodeCommit repositori, Anda menggunakan Git untuk mendorong komit dari repo lokal ke repositori. CodeCommit Untuk membuat komit langsung di CodeCommit konsol, lihat [Membuat atau menambahkan file ke AWS CodeCommit repositori](how-to-create-file.md) dan[Mengedit isi file dalam AWS CodeCommit repositori](how-to-edit-file.md). 

**catatan**  
Sebagai praktik terbaik, kami menyarankan Anda menggunakan versi terbaru yang didukung dari AWS CLI, Git, dan perangkat lunak lainnya. Jika Anda menggunakan AWS CLI, pastikan Anda memiliki versi terbaru yang diinstal untuk memastikan bahwa Anda menggunakan versi yang berisi `create-commit` perintah.

**Topics**
+ [Buat komit pertama untuk repositori menggunakan AWS CLI](#how-to-create-first-commit)
+ [Buatlah sebuah commit menggunakan klien Git](#how-to-create-commit-git)
+ [Buat komit menggunakan AWS CLI](#how-to-create-commit-cli)

## Buat komit pertama untuk repositori menggunakan AWS CLI
<a name="how-to-create-first-commit"></a>

Anda dapat menggunakan `put-file` perintah AWS CLI dan untuk membuat komit pertama Anda untuk repositori. Menggunakan **put-file** membuat commit pertama yang menambahkan file ke repositori kosong Anda, dan membuat cabang dengan nama yang Anda tentukan. Ini menunjuk cabang baru sebagai cabang default untuk repositori Anda. 

**catatan**  
Untuk menggunakan AWS CLI perintah dengan CodeCommit, instal file AWS CLI. Untuk informasi selengkapnya, lihat [Referensi baris perintah](cmd-ref.md). <a name="create-first-commit"></a>

## Untuk membuat komit pertama untuk repositori menggunakan AWS CLI


1. Di komputer lokal Anda, buat file yang ingin Anda tambahkan sebagai file pertama ke CodeCommit repositori. Praktik yang umum adalah untuk menciptakan sebuah file markdown `README.md` yang menjelaskan tujuan dari repositori ini untuk pengguna repositori lainnya. Jika Anda menyertakan `README.md` file, konten file ditampilkan secara otomatis di bagian bawah halaman **Kode** untuk repositori Anda di CodeCommit konsol.

1. Pada terminal atau baris perintah, jalankan perintah **put-file**, dengan menentukan:
   + Nama repositori tempat Anda ingin menambahkan file pertama.
   + Nama cabang yang ingin Anda buat sebagai cabang default.
   + Lokasi lokal dari file tersebut. Sintaks yang digunakan untuk lokasi ini bervariasi, tergantung pada sistem operasi lokal Anda.
   + Nama file yang ingin Anda tambahkan, termasuk jalur di mana file yang diperbarui disimpan dalam repositori.
   + Nama pengguna dan email yang ingin Anda kaitkan dengan file ini.
   + Sebuah pesan commit yang menjelaskan mengapa Anda menambahkan file ini.

   Nama pengguna, alamat email, dan pesan commit bersifat opsional, tetapi dapat membantu pengguna lain mengetahui siapa yang membuat perubahan dan mengapa. Jika Anda tidak memberikan nama pengguna, CodeCommit default menggunakan nama pengguna IAM Anda atau turunan dari login konsol Anda sebagai nama penulis.

   Misalnya, untuk menambahkan file bernama *README.md* dengan contoh basis 6 konten file yang dikodekan ke repositori bernama *MyDemoRepo* ke cabang bernama: *development*

   ```
   aws codecommit put-file --repository-name MyDemoRepo --branch-name development --file-path README.md --file-content "EXAMPLE0123456789example0123456789EXAMPLE1" --name "Mary Major" --email "mary_major@example.com" --commit-message "I added a quick readme for our new team repository."
   ```

   Jika berhasil, perintah ini mengembalikan output yang serupa dengan yang berikut:

   ```
   {
       "commitId": "724caa36EXAMPLE",
       "blobId": "a8a94062EXAMPLE",
       "treeId": "08b2fc73EXAMPLE"
   }
   ```

## Buatlah sebuah commit menggunakan klien Git
<a name="how-to-create-commit-git"></a>

Anda dapat membuat commit menggunakan klien Git yang diinstal pada komputer lokal Anda, dan kemudian mendorong commit tersebut ke repositori Anda CodeCommit .

1. Lengkapi prasyaratnya, termasuk [Pengaturan ](setting-up.md).
**penting**  
Jika Anda belum menyelesaikan penyiapan, Anda tidak dapat menghubungkan atau melakukan commit ke repositori menggunakan Git.

1. Pastikan Anda membuat sebuah commit di cabang yang benar. Untuk menampilkan daftar cabang yang tersedia dan mencari tahu cabang mana yang sedang Anda atur untuk digunakan, jalankan **git branch**. Semua cabang ditampilkan. Tanda bintang (`*`) muncul di sebelah cabang Anda saat ini. Untuk beralih ke cabang lain, jalankan **git checkout *branch-name***. Jika ini adalah commit pertama Anda, jalankan perintah **git config ** untuk mengkonfigurasi klien Git Anda untuk membuat cabang awal dengan nama yang ingin Anda gunakan untuk cabang itu. Misalnya, jika Anda ingin cabang default Anda memiliki nama*development*:

   ```
   git config --local init.defaultBranch development
   ```
**Tip**  
Perintah ini hanya tersedia di Git v.2.28 dan lebih baru.  
Anda juga dapat menjalankan perintah ini untuk mengatur nama cabang default Anda untuk **development** untuk semua repositori yang baru dibuat:  

   ```
   git config --global init.defaultBranch development
   ```

1. Buatlah sebuah perubahan pada cabang (seperti menambahkan, memodifikasi, atau menghapus file).

   Misalnya, dalam repo lokal, buatlah sebuah file dengan nama `bird.txt` dengan teks berikut:

   ```
   bird.txt
   --------
   Birds (class Aves or clade Avialae) are feathered, winged, two-legged, warm-blooded, egg-laying vertebrates.
   ```

1. Jalankan **git status**, yang seharusnya menunjukkan bahwa `bird.txt` belum dimasukkan dalam commit yang tertunda apa pun:

   ```
   ...        
   Untracked files:
     (use "git add <file>..." to include in what will be committed)
           
           bird.txt
   ```

1. Jalankan **git add bird.txt** untuk menyertakan file baru dalam commit yang tertunda.

1. Saat Anda menjalankan **git status** lagi, Anda akan melihat output yang serupa dengan yang berikut. Ini menunjukkan bahwa `bird.txt` sekarang menjadi bagian dari commit yang tertunda atau yang diadakan untuk commit:

   ```
   ...
   Changes to be committed:
     (use "git reset HEAD <file>..." to unstage)
       
           new file:   bird.txt
   ```

1. Untuk menyelesaikan commit tersebut, jalankan **git commit** dengan opsi `-m` (misalnya, ** git commit -m "*Adding bird.txt to the repository.*"**) Opsi `-m` membuat pesan commit. 

1. Saat Anda menjalankan **git status** lagi, Anda akan melihat output yang serupa dengan yang berikut. Ini menunjukkan bahwa komit siap didorong dari repo lokal ke CodeCommit repositori:

   ```
   ...    
   nothing to commit, working directory clean
   ```

1. Sebelum Anda mendorong komit yang telah diselesaikan dari repo lokal ke CodeCommit repositori, Anda dapat melihat apa yang Anda dorong dengan menjalankan**git diff --stat *remote-name*/*branch-name***, di mana nama panggilan yang *remote-name* digunakan repo lokal untuk CodeCommit repositori dan *branch-name* merupakan nama cabang untuk dibandingkan.
**Tip**  
Untuk mendapatkan julukan, jalankan **git remote**. Untuk mendapatkan daftar nama cabang, jalankan **git branch**. Tanda bintang (`*`) muncul di sebelah cabang saat ini. Anda juga dapat menjalankan **git status** untuk mendapatkan nama cabang saat ini.
**catatan**  
Jika Anda mengkloning repositori, dari perspektif repo lokal, *remote-name* bukan nama repositori. CodeCommit Ketika Anda mengkloning repositori, diatur *remote-name* secara otomatis ke. `origin` 

   Misalnya, **git diff --stat origin/main** akan menampilkan output yang serupa dengan berikut ini:

   ```
   bird.txt | 1 +
   1 file changed, 1 insertion(+)
   ```

   Outputnya mengasumsikan Anda telah menghubungkan repo lokal ke repositori. CodeCommit (Untuk instruksi, lihat [Connect ke sebuah repositori](how-to-connect.md).)

1. Saat Anda siap untuk mendorong komit dari repo lokal ke CodeCommit repositori, jalankan**git push *remote-name* *branch-name***, di mana *remote-name* nama panggilan yang digunakan repo lokal untuk CodeCommit repositori dan *branch-name* merupakan nama cabang untuk mendorong ke repositori. CodeCommit 

   Sebagai contoh, menjalankan **git push origin main** akan menampilkan output yang serupa dengan berikut ini:

   Untuk HTTPS:

   ```
   Counting objects: 7, done.
   Delta compression using up to 4 threads.
   Compressing objects: 100% (4/4), done.
   Writing objects: 100% (5/5), 516 bytes | 0 bytes/s, done.
   Total 5 (delta 2), reused 0 (delta 0)
   remote:
   To https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo
       b9e7aa6..3dbf4dd main -> main
   ```

   Untuk SSH:

   ```
   Counting objects: 7, done.
   Delta compression using up to 4 threads.
   Compressing objects: 100% (4/4), done.
   Writing objects: 100% (5/5), 516 bytes | 0 bytes/s, done.
   Total 5 (delta 2), reused 0 (delta 0)
   remote:
   To ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo
       b9e7aa6..3dbf4dd main -> main
   ```
**Tip**  
Jika Anda menambahkan opsi `-u` ke **git push** (misalnya, **git push -u origin main**), maka anda hanya perlu menjalankan **git push** di masa depan karena informasi pelacakan hulu telah ditetapkan. Untuk mendapatkan informasi pelacakan hulu, jalankan **git remote show *remote-name*** (sebagai contoh, **git remote show origin**).

Untuk opsi lainnya, lihat dokumentasi Git Anda.

## Buat komit menggunakan AWS CLI
<a name="how-to-create-commit-cli"></a>

Anda dapat menggunakan `create-commit` perintah AWS CLI dan untuk membuat komit untuk repositori di ujung cabang tertentu. Anda juga dapat membuat commit gabungan yang tidak direferensikan untuk mewakili hasil penggabungan dua penentu commit. Untuk informasi selengkapnya, lihat [Buatlah sebuah commit yang tidak direferensikan](how-to-resolve-conflict-pull-request.md#create-unreferenced-merge-commit).

**catatan**  
Untuk menggunakan AWS CLI perintah dengan CodeCommit, instal file AWS CLI. Untuk informasi selengkapnya, lihat [Referensi baris perintah](cmd-ref.md). <a name="create-commit"></a>

**Untuk membuat sebuah commit**

1. Di komputer lokal Anda, buat perubahan yang ingin Anda komit ke CodeCommit repositori.

1. Pada terminal atau baris perintah, jalankan perintah **create-commit**, dengan menentukan:
   + Repositori di mana Anda ingin melakukan perubahan tersebut.
   + Cabang di mana Anda ingin melakukan perubahan tersebut.
   + ID commit penuh dari commit terbaru dibuat ke cabang itu, yang juga dikenal sebagai commit ujung atau kepala atau ID commit induk.
   + Apakah untuk menyimpan folder kosong jika perubahan yang Anda buat hapus isi folder tersebut. Secara default, nilai ini adalah salah.
   + Informasi tentang file yang ingin ditambahkan, diubah, atau dihapus.
   + Nama pengguna dan email yang Anda ingin kaitkan dengan perubahan ini.
   + Sebuah pesan commit yang menjelaskan mengapa Anda membuat perubahan ini.

   Nama pengguna, alamat email, dan pesan commit adalah opsional, tetapi membantu pengguna lain mengetahui siapa yang membuat perubahan dan mengapa. Jika Anda tidak memberikan nama pengguna, CodeCommit default menggunakan nama pengguna IAM Anda atau turunan dari login konsol Anda sebagai nama penulis.

   Misalnya, untuk membuat komit untuk repositori yang menambahkan `README.md` file ke repositori bernama *MyDemoRepo* di cabang. *main* Isi file ada di Base64 dan berbunyi “Selamat datang di repositori tim kami\$1” :

   ```
   aws codecommit create-commit --repository-name MyDemoRepo --branch-name main --parent-commit-id 4c925148EXAMPLE --put-files "filePath=README.md,fileContent=V2VsY29tZSB0byBvdXIgdGVhbSByZXBvc2l0b3J5IQo="
   ```
**Tip**  
Untuk mendapatkan ID commit induk, jalankan perintah [get-branch](how-to-view-branch-details.md#how-to-view-branch-details-cli-details).

   Jika berhasil, perintah ini mengembalikan output yang serupa dengan yang berikut:

   ```
   {
       "commitId": "4df8b524-EXAMPLE",
       "treeId": "55b57003-EXAMPLE",
       "filesAdded": [
           {
               "blobId": "5e1c309dEXAMPLE",
               "absolutePath": "meeting.md",
               "fileMode": "NORMAL"
           }
       ],
       "filesDeleted": [],
       "filesUpdated": []
   }
   ```

   Untuk membuat komit yang membuat perubahan pada file bernama *file1.py* dan*file2.txt*, mengganti nama file dari *picture.png* ke *image1.png* dan memindahkannya dari direktori bernama *pictures* ke direktori bernama,*images*, dan menghapus file bernama *ExampleSolution.py* dalam repositori bernama *MyDemoRepo* pada cabang *MyFeatureBranch* bernama yang komit terbarunya memiliki ID: *4c925148EXAMPLE*

   ```
   aws codecommit create-commit --repository-name MyDemoRepo --branch-name MyFeatureBranch --parent-commit-id 4c925148EXAMPLE --author-name "Saanvi Sarkar"
    --email "saanvi_sarkar@example.com" --commit-message "I'm creating this commit to update a variable name in a number of files."
    --keep-empty-folders false  --put-files '{"filePath": "file1.py", "fileMode": "EXECUTABLE", "fileContent": "bucket_name = sys.argv[1] region = sys.argv[2]"}'
   '{"filePath": "file2.txt", "fileMode": "NORMAL", "fileContent": "//Adding a comment to explain the variable changes in file1.py"}' '{"filePath": "images/image1.png",
   "fileMode": "NORMAL", "sourceFile": {"filePath": "pictures/picture.png", "isMove": true}}' --delete-files filePath="ExampleSolution.py"
   ```
**catatan**  
Sintaks untuk segmen **--put-files** bervariasi tergantung pada sistem operasi Anda. Contoh di atas dioptimalkan untuk pengguna Linux, MacOS, atau Unix dan pengguna Windows dengan emulator Bash. Pengguna Windows pada baris perintah atau di Powershell harus menggunakan sintaks yang sesuai untuk sistem tersebut.

   Jika berhasil, perintah ini mengembalikan output yang serupa dengan yang berikut:

   ```
   {
      "commitId": "317f8570EXAMPLE",
      "treeId": "347a3408EXAMPLE",
      "filesAdded": [
           {
           "absolutePath": "images/image1.png",
           "blobId": "d68ba6ccEXAMPLE",
           "fileMode": "NORMAL"
           }
       ],
       "filesUpdated": [
           {
           "absolutePath": "file1.py",
           "blobId": "0a4d55a8EXAMPLE",
           "fileMode": "EXECUTABLE"
           },
           {
           "absolutePath": "file2.txt",
           "blobId": "915766bbEXAMPLE",
           "fileMode": "NORMAL"
           }
       ],
       "filesDeleted": [
           {
           "absolutePath": "ExampleSolution.py",
           "blobId": "4f9cebe6aEXAMPLE",
           "fileMode": "EXECUTABLE"
           },
           {
           "absolutePath": "pictures/picture.png",
           "blobId": "fb12a539EXAMPLE",
           "fileMode": "NORMAL"
           }
       ]
   }
   ```