

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie um commit em AWS CodeCommit
<a name="how-to-create-commit"></a>

Ao criar o primeiro commit para um novo repositório, você usa o **put-file** comando AWS CLI and the. Isso cria a primeira confirmação e permite que você crie e especifique a ramificação padrão para seu novo repositório. Você pode usar o Git ou o AWS CLI para criar um commit em um CodeCommit repositório. Se o repositório local estiver conectado a um CodeCommit repositório, você usa o Git para enviar o commit do repositório local para o repositório. CodeCommit Para criar um commit diretamente no CodeCommit console, consulte [Criar ou adicionar um arquivo para um repositório do AWS CodeCommit](how-to-create-file.md) [Editar o conteúdo de um arquivo em um AWS CodeCommit repositório](how-to-edit-file.md) e. 

**nota**  
Como prática recomendada, recomendamos que você use as versões mais recentes suportadas do AWS CLI, do Git e de outros softwares. Se você usar o AWS CLI, verifique se você tem uma versão recente instalada para garantir que está usando uma versão que contém o `create-commit` comando.

**Topics**
+ [Crie o primeiro commit para um repositório usando o AWS CLI](#how-to-create-first-commit)
+ [Criar uma confirmação usando um cliente Git](#how-to-create-commit-git)
+ [Crie um commit usando o AWS CLI](#how-to-create-commit-cli)

## Crie o primeiro commit para um repositório usando o AWS CLI
<a name="how-to-create-first-commit"></a>

Você pode usar o `put-file` comando AWS CLI and the para criar seu primeiro commit para um repositório. Usar **put-file** cria uma primeira confirmação que adiciona um arquivo ao repositório vazio e cria uma ramificação com o nome que você especificar. Ele designa a nova ramificação como a ramificação padrão do seu repositório. 

**nota**  
Para usar AWS CLI comandos com CodeCommit, instale AWS CLI o. Para obter mais informações, consulte [Referência da linha de comando](cmd-ref.md). <a name="create-first-commit"></a>

## Para criar o primeiro commit para um repositório usando o AWS CLI


1. No seu computador local, crie o arquivo que você deseja adicionar como o primeiro arquivo ao CodeCommit repositório. Uma prática comum é criar um arquivo markdown `README.md` que explique a finalidade desse repositório para outros usuários do repositório. Se você incluir um `README.md` arquivo, o conteúdo do arquivo será exibido automaticamente na parte inferior da página de **código** do seu repositório no CodeCommit console.

1. No terminal ou na linha de comando, execute o comando **put-file**, especificando:
   + O nome do repositório no qual você deseja adicionar o primeiro arquivo.
   + O nome da ramificação que você deseja criar como a ramificação padrão.
   + A localização atual do arquivo. A sintaxe usada para essa localização varia, dependendo do seu sistema operacional local.
   + O nome do arquivo que você deseja adicionar, incluindo o caminho onde o arquivo atualizado está armazenado no repositório.
   + O nome de usuário e e-mail a serem associados a este arquivo.
   + Uma mensagem de confirmação explicando por que você adicionou este arquivo.

   O nome de usuário, endereço de e-mail e a mensagem de confirmação são opcionais, mas podem ajudar outros usuários a saber quem fez a alteração e por quê. Se você não fornecer um nome de usuário, o CodeCommit padrão é usar seu nome de usuário do IAM ou uma derivação do login do console como nome do autor.

   Por exemplo, para adicionar um arquivo chamado {{README.md}} com um exemplo de conteúdo de arquivo codificado na base 6 a um repositório com o nome de uma ramificação chamada{{MyDemoRepo}}: {{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.}}"
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

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

## Criar uma confirmação usando um cliente Git
<a name="how-to-create-commit-git"></a>

Você pode criar commits usando um cliente Git instalado no seu computador local e, em seguida, enviar esses commits para o seu repositório. CodeCommit 

1. Conclua os pré-requisitos, incluindo [Configurando ](setting-up.md).
**Importante**  
Se você não concluiu a configuração, não poderá se conectar ou enviar confirmações ao repositório usando o Git.

1. Verifique se você está criando uma confirmação na ramificação correta. Para ver uma lista de ramificações disponíveis e descobrir qual delas está configurada para seu uso no momento, execute **git branch**. Todas as ramificações são exibidas. Um asterisco (`*`) aparece ao lado de sua ramificação atual. Para trocar para uma ramificação diferente, execute **git checkout {{branch-name}}**. Se for sua primeira confirmação, execute o comando **git config ** para configurar seu cliente Git para criar uma ramificação inicial com o nome que você deseja usar para essa ramificação. Por exemplo, se você quiser que sua ramificação padrão tenha o nome{{development}}:

   ```
   git config --local init.defaultBranch {{development}}
   ```
**dica**  
Esse comando só está disponível na Git versão 2.28 e posterior.  
Você também pode executar esse comando para definir o nome da ramificação padrão como **development** para todos os repositórios recém-criados:  

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

1. Faça uma alteração na ramificação (como adicionar, modificar ou excluir um arquivo).

   Por exemplo, no repositório local, crie um arquivo chamado `bird.txt` com o seguinte texto:

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

1. Execute **git status**, que indicará que `bird.txt` ainda não foi incluído em nenhuma confirmação pendente:

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

1. Execute **git add bird.txt** para incluir o novo arquivo na confirmação pendente.

1. Se você executar **git status** novamente, visualizará uma saída semelhante à seguinte. Isso indica que `bird.txt` agora faz parte da confirmação pendente ou está preparado para a confirmação:

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

1. Para finalizar a confirmação, execute **git commit** com a opção `-m` (por exemplo, ** git commit -m "{{Adding bird.txt to the repository.}}"**) A opção `-m` cria a mensagem de confirmação. 

1. Se você executar **git status** novamente, visualizará uma saída semelhante à seguinte. Isso indica que o commit está pronto para ser enviado do repositório local para o CodeCommit repositório:

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

1. Antes de enviar a confirmação finalizada do repositório local para o CodeCommit repositório, você pode ver o que está enviando executando**git diff --stat {{remote-name}}/{{branch-name}}**, onde {{remote-name}} está o apelido que o repositório local usa para o CodeCommit repositório e o nome da ramificação a ser {{branch-name}} comparada.
**dica**  
Para obter o apelido, execute **git remote**. Para obter uma lista de nomes de ramificação, execute **git branch**. Um asterisco (`*`) aparece ao lado da ramificação atual. Você também pode executar **git status** para obter o nome da ramificação atual.
**nota**  
Se você clonou o repositório, do ponto de vista do repositório local, não {{remote-name}} é o nome do repositório. CodeCommit Quando você clona um repositório, {{remote-name}} é definido automaticamente como. `origin` 

   Por exemplo, **git diff --stat origin/main** exibiria uma saída semelhante à seguinte:

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

   A saída pressupõe que você já tenha conectado o repositório local ao CodeCommit repositório. (Para obter instruções, consulte [Conexão a um repositório](how-to-connect.md).)

1. Quando você estiver pronto para enviar o commit do repositório local para o CodeCommit repositório, execute**git push {{remote-name}} {{branch-name}}**, onde {{remote-name}} está o apelido que o repositório local usa para o CodeCommit repositório e o nome da ramificação {{branch-name}} a ser enviada para o repositório. CodeCommit 

   Por exemplo, executar **git push origin main** exibiria uma saída semelhante à seguinte:

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

   Para o 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
   ```
**dica**  
Se você adicionar a opção `-u` para **git push** (por exemplo, **git push -u origin main**), você só precisará executar **git push** no futuro, porque as informações de rastreamento de upstream foram definidas. Para obter as informações de rastreamento upstream, execute **git remote show {{remote-name}}** (por exemplo, **git remote show origin**).

Para obter mais opções, consulte a documentação do Git.

## Crie um commit usando o AWS CLI
<a name="how-to-create-commit-cli"></a>

Você pode usar o `create-commit` comando AWS CLI and the para criar um commit para um repositório na ponta de uma ramificação especificada. Também é possível criar uma confirmação de mesclagem sem referência para representar os resultados da mesclagem de dois especificadores de confirmação. Para obter mais informações, consulte [Criar uma confirmação sem referência](how-to-resolve-conflict-pull-request.md#create-unreferenced-merge-commit).

**nota**  
Para usar AWS CLI comandos com CodeCommit, instale AWS CLI o. Para obter mais informações, consulte [Referência da linha de comando](cmd-ref.md). <a name="create-commit"></a>

**Para criar uma confirmação**

1. No computador local, faça as alterações que você deseja que sejam confirmadas no repositório do CodeCommit.

1. No terminal ou na linha de comando, execute o comando **create-commit**, especificando:
   + O repositório no qual você deseja confirmar as alterações.
   + A ramificação na qual você deseja confirmar as alterações.
   + O ID de confirmação completo da confirmação mais recente feita nessa ramificação, também conhecido como a confirmação de ponta ou cabeça ou o ID de confirmação pai.
   + Se deseja manter pastas vazias, caso as alterações feitas excluam o conteúdo dessas pastas. Por padrão, esse valor é false (falso).
   + As informações sobre os arquivos que você deseja adicionar, alterar ou excluir.
   + O nome de usuário e o e-mail a serem associados a essas alterações.
   + Uma mensagem de confirmação que explica por que as alterações foram feitas.

   O nome de usuário, o endereço de e-mail e a mensagem de confirmação são opcionais, mas ajudam outros usuários a saber quem fez as alterações e por que. Se você não fornecer um nome de usuário, o CodeCommit padrão é usar seu nome de usuário do IAM ou uma derivação do login do console como nome do autor.

   Por exemplo, para criar um commit para um repositório que adiciona um `README.md` arquivo a um repositório nomeado {{MyDemoRepo}} na {{main}} ramificação. O conteúdo do arquivo está em Base64 e diz “Boas-vindas ao repositório da nossa equipe\!”:

   ```
   aws codecommit create-commit --repository-name {{MyDemoRepo}} --branch-name main --parent-commit-id {{4c925148EXAMPLE}} --put-files "filePath=README.md,fileContent=V2VsY29tZSB0byBvdXIgdGVhbSByZXBvc2l0b3J5IQo="
   ```
**dica**  
Para obter o ID da confirmação principal, execute o comando [get-branch](how-to-view-branch-details.md#how-to-view-branch-details-cli-details).

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

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

   Para criar um commit que faz alterações em arquivos chamados {{file1.py}} e{{file2.txt}}, renomeia um arquivo de {{picture.png}} para {{image1.png}} e o move de um diretório nomeado {{pictures}} para um diretório chamado,{{images}}, e exclui um arquivo nomeado {{ExampleSolution.py}} em um repositório chamado {{MyDemoRepo}} em uma ramificação chamada {{MyFeatureBranch}} cujo commit mais recente tem uma ID de: {{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}}"
   ```
**nota**  
A sintaxe para o segmento **--put-files** varia dependendo do seu sistema operacional. O exemplo acima é otimizado para usuários Linux, macOS, Unix e usuários do Windows com um emulador de Bash. Os usuários do Windows na linha de comando ou no Powershell devem usar uma sintaxe adequada para esses sistemas.

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

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