

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Créez un commit dans AWS CodeCommit
<a name="how-to-create-commit"></a>

Lorsque vous créez le premier commit pour un nouveau dépôt, vous utilisez la AWS CLI **put-file** commande and. Cela crée le premier commit et vous permet de créer et de spécifier la branche par défaut pour votre nouveau dépôt. Vous pouvez utiliser Git ou le AWS CLI pour créer un commit dans un CodeCommit dépôt. Si le dépôt local est connecté à un CodeCommit dépôt, vous utilisez Git pour transférer le commit du dépôt local vers le CodeCommit dépôt. Pour créer un commit directement dans la CodeCommit console, reportez-vous aux sections [Création ou ajout d'un fichier dans un AWS CodeCommit référentiel](how-to-create-file.md) et[Modifier le contenu d'un fichier dans un AWS CodeCommit référentiel](how-to-edit-file.md). 

**Note**  
En tant que bonne pratique, nous vous recommandons d'utiliser les dernières versions prises en charge de AWS CLI Git et d'autres logiciels. Si vous utilisez le AWS CLI, assurez-vous qu'une version récente est installée pour vous assurer que vous utilisez une version contenant la `create-commit` commande.

**Topics**
+ [Créez le premier commit pour un dépôt à l'aide du AWS CLI](#how-to-create-first-commit)
+ [Création d'un commit à l'aide d'un client Git](#how-to-create-commit-git)
+ [Créez un commit à l'aide du AWS CLI](#how-to-create-commit-cli)

## Créez le premier commit pour un dépôt à l'aide du AWS CLI
<a name="how-to-create-first-commit"></a>

Vous pouvez utiliser la AWS CLI `put-file` commande and pour créer votre premier commit pour un dépôt. L'utilisation **put-file** crée un premier commit qui ajoute un fichier à votre dépôt vide et crée une branche portant le nom que vous spécifiez. Il désigne la nouvelle branche comme branche par défaut de votre dépôt. 

**Note**  
Pour utiliser AWS CLI des commandes avec CodeCommit, installez le AWS CLI. Pour de plus amples informations, veuillez consulter [Référence des commandes en ligne](cmd-ref.md). <a name="create-first-commit"></a>

## Pour créer le premier commit pour un dépôt à l'aide du AWS CLI


1. Sur votre ordinateur local, créez le fichier que vous souhaitez ajouter en tant que premier fichier au CodeCommit référentiel. Une pratique courante consiste à créer un fichier `README.md` Markdown qui explique l'objectif de ce dépôt aux autres utilisateurs du référentiel. Si vous incluez un `README.md` fichier, son contenu s'affiche automatiquement en bas de la page de **code** de votre référentiel dans la CodeCommit console.

1. Depuis le terminal ou la ligne de commande, exécutez la commande **put-file**, en spécifiant :
   + Nom du référentiel dans lequel vous souhaitez ajouter le premier fichier.
   + Nom de la branche que vous souhaitez créer comme branche par défaut.
   + L'emplacement local du fichier. La syntaxe utilisée pour cet emplacement varie en fonction de votre système d'exploitation local.
   + Le nom du fichier que vous souhaitez ajouter, y compris le chemin où le fichier mis à jour est stocké dans le référentiel.
   + Nom d'utilisateur et e-mail que vous souhaitez associer à ce fichier.
   + Un message de validation qui explique pourquoi vous avez ajouté ce fichier.

   Le nom d'utilisateur, l'adresse e-mail et le message de validation sont facultatifs, mais peuvent aider les autres utilisateurs à savoir qui a effectué la modification et pourquoi. Si vous ne fournissez pas de nom d'utilisateur, utilisez CodeCommit par défaut votre nom d'utilisateur IAM ou une dérivation de votre identifiant de connexion à la console comme nom d'auteur.

   Par exemple, pour ajouter un fichier nommé *README.md* avec un exemple de contenu de fichier codé en base 6 à un référentiel nommé *MyDemoRepo* d'après une branche nommée *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."
   ```

   Si elle aboutit, cette commande renvoie une sortie similaire à ce qui suit :

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

## Création d'un commit à l'aide d'un client Git
<a name="how-to-create-commit-git"></a>

Vous pouvez créer des validations à l'aide d'un client Git installé sur votre ordinateur local, puis transférer ces validations vers votre CodeCommit dépôt.

1. Remplissez les prérequis, y compris [Configuration ](setting-up.md).
**Important**  
Si vous n'avez pas terminé la configuration, vous ne pouvez pas vous connecter au référentiel ou valider dans celui-ci à l'aide de Git.

1. Veillez à créer une validation dans la branche correcte. Pour afficher la liste des branches disponibles et déterminer quelle branche vous utilisez actuellement, exécutez **git branch**. Toutes les branches sont affichées. Un astérisque (`*`) apparaît à côté de votre branche actuelle. Pour basculer vers une autre branche, exécutez **git checkout *branch-name***. S'il s'agit de votre premier commit, exécutez la **git config ** commande pour configurer votre client Git afin de créer une branche initiale portant le nom que vous souhaitez utiliser pour cette branche. Par exemple, si vous souhaitez que votre branche par défaut porte le nom suivant *development* :

   ```
   git config --local init.defaultBranch development
   ```
**Astuce**  
Cette commande n'est disponible que dans Git v.2.28 et versions ultérieures.  
Vous pouvez également exécuter cette commande pour définir le nom de votre branche par défaut **development** pour tous les référentiels nouvellement créés :  

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

1. Apportez une modification à la branche (par exemple, ajoutez, modifiez ou supprimez un fichier).

   Par exemple, dans le dépôt local, créez un fichier nommé `bird.txt` avec le texte suivant :

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

1. Exécutez **git status** qui doit indiquer que `bird.txt` n'a pas encore été inclus dans une validation en attente :

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

1. Exécutez **git add bird.txt** pour inclure le nouveau fichier dans la validation en attente.

1. Si vous exécutez à nouveau **git status**, vous devez voir une sortie similaire à ce qui suit. Elle indique que `bird.txt` fait désormais partie de la validation en attente ou a fait l'objet d'une copie intermédiaire pour validation :

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

1. Pour finaliser la validation, exécutez **git commit** avec l'option `-m` (par exemple, ** git commit -m "*Adding bird.txt to the repository.*"**). L'option `-m` crée le message de validation. 

1. Si vous exécutez à nouveau **git status**, vous devez voir une sortie similaire à ce qui suit. Cela indique que le commit est prêt à être transféré du dépôt local vers le CodeCommit référentiel :

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

1. Avant de transférer le commit finalisé du dépôt local vers le CodeCommit dépôt, vous pouvez voir ce que vous envoyez en exécutant**git diff --stat *remote-name*/*branch-name***, où *remote-name* est le surnom que le dépôt local utilise pour le CodeCommit dépôt et *branch-name* le nom de la branche à comparer.
**Astuce**  
Pour obtenir le pseudonyme, exécutez **git remote**. Pour obtenir une liste de noms de branche, exécutez **git branch**. Un astérisque (`*`) apparaît à côté de la branche actuelle. Vous pouvez également exécuter **git status** pour obtenir le nom de la branche actuelle.
**Note**  
Si vous avez cloné le dépôt, du point de vue du dépôt local, ce n'*remote-name*est pas le nom du CodeCommit dépôt. Lorsque vous clonez un dépôt, *remote-name* il est automatiquement défini sur`origin`. 

   Par exemple, **git diff --stat origin/main** affiche une sortie similaire à ce qui suit :

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

   La sortie suppose que vous avez déjà connecté le dépôt local au CodeCommit référentiel. (Pour obtenir des instructions, consultez [Connexion à un référentiel](how-to-connect.md).)

1. Lorsque vous êtes prêt à transférer le commit du dépôt local vers le CodeCommit dépôt, exécutez**git push *remote-name* *branch-name***, où *remote-name* est le surnom que le dépôt local utilise pour le CodeCommit dépôt et *branch-name* le nom de la branche à transférer vers le CodeCommit référentiel.

   Par exemple, exécuter **git push origin main** affiche une sortie similaire à ce qui suit :

   Pour 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
   ```

   Pour 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
   ```
**Astuce**  
Si vous ajoutez l'option `-u` à **git push** (par exemple, **git push -u origin main**), vous devez ensuite uniquement exécuter **git push** à l'avenir, car les informations de suivi en amont ont été configurées. Pour obtenir des informations de suivi en amont, exécutez **git remote show *remote-name*** (par exemple, **git remote show origin**).

Pour plus d'options, consultez votre documentation Git.

## Créez un commit à l'aide du AWS CLI
<a name="how-to-create-commit-cli"></a>

Vous pouvez utiliser la AWS CLI `create-commit` commande and pour créer un commit pour un dépôt situé à l'extrémité d'une branche spécifiée. Vous pouvez également créer une validation de fusion non référencée pour représenter les résultats de la fusion de deux spécificateurs de validation. Pour plus d'informations, consultez [Créer une validation non référencée](how-to-resolve-conflict-pull-request.md#create-unreferenced-merge-commit).

**Note**  
Pour utiliser AWS CLI des commandes avec CodeCommit, installez le AWS CLI. Pour de plus amples informations, veuillez consulter [Référence des commandes en ligne](cmd-ref.md). <a name="create-commit"></a>

**Pour créer une validation**

1. Sur votre ordinateur local, apportez les modifications que vous souhaitez valider dans le référentiel CodeCommit.

1. Depuis le terminal ou la ligne de commande, exécutez la commande **create-commit**, en spécifiant :
   + Le référentiel dans lequel vous souhaitez valider les modifications.
   + La branchez où vous souhaitez valider les modifications.
   + L'ID de validation complet de la validation la plus récente effectuée dans cette branche, également connu comme la pointe ou la validation de tête ou l'ID de validation parent.
   + Conserver ou non des dossiers vides si les modifications que vous avez effectuées suppriment le contenu de ces dossiers. Par défaut, la valeur est false (fausse).
   + Les informations sur les fichiers que vous souhaitez ajouter, modifier ou supprimer.
   + Le nom d'utilisateur et l'adresse e-mail que vous souhaitez associer à ces modifications.
   + Un message de validation qui explique pourquoi vous avez apporté ces modifications.

   Le nom d'utilisateur, l'adresse e-mail et le message de validation sont facultatifs mais aident les autres utilisateurs à savoir qui a effectué les modifications et pourquoi. Si vous ne fournissez pas de nom d'utilisateur, utilisez CodeCommit par défaut votre nom d'utilisateur IAM ou une dérivation de votre identifiant de connexion à la console comme nom d'auteur.

   Par exemple, pour créer un commit pour un dépôt qui ajoute un `README.md` fichier à un dépôt nommé *MyDemoRepo* dans la *main* branche. Le contenu du fichier est en Base64 et se lit comme suit : « Bienvenue dans le référentiel de notre équipe \$1 » :

   ```
   aws codecommit create-commit --repository-name MyDemoRepo --branch-name main --parent-commit-id 4c925148EXAMPLE --put-files "filePath=README.md,fileContent=V2VsY29tZSB0byBvdXIgdGVhbSByZXBvc2l0b3J5IQo="
   ```
**Astuce**  
Pour obtenir l'ID de validation parent, exécutez la commande [get-branch](how-to-view-branch-details.md#how-to-view-branch-details-cli-details).

   Si elle aboutit, cette commande renvoie une sortie similaire à ce qui suit :

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

   Pour créer un commit qui apporte des modifications aux fichiers nommés *file1.py* et*file2.txt*, renomme un fichier de *picture.png* à *image1.png* et le déplace d'un répertoire nommé *pictures* vers un répertoire nommé*images*, et supprime un fichier nommé *ExampleSolution.py* dans un référentiel nommé *MyDemoRepo* sur une branche nommée *MyFeatureBranch* dont le dernier commit a l'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"
   ```
**Note**  
La syntaxe du **--put-files** segment varie en fonction de votre système d'exploitation. L'exemple ci-dessus est optimisé pour les utilisateurs de Linux, macOS ou Unix et les utilisateurs de Windows utilisant un émulateur Bash. Les utilisateurs Windows en ligne de commande ou dans Powershell doivent utiliser une syntaxe approprié pour ces systèmes.

   Si elle aboutit, cette commande renvoie une sortie similaire à ce qui suit :

   ```
   {
      "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"
           }
       ]
   }
   ```