에서 커밋 생성 AWS CodeCommit - AWS CodeCommit

AWS CodeCommit 는 더 이상 신규 고객이 사용할 수 없습니다. AWS CodeCommit 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세히 알아보기

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

에서 커밋 생성 AWS CodeCommit

새 리포지토리에 대한 첫 번째 커밋을 생성할 때 AWS CLI 및 put-file 명령을 사용합니다. 그러면 첫 번째 커밋이 만들어지며 이에 따라 새 리포지토리의 기본 브랜치를 생성 및 지정할 수 있습니다. Git 또는 AWS CLI 를 사용하여 CodeCommit 리포지토리에서 커밋을 생성할 수 있습니다. 로컬 리포지 CodeCommit 토리에 연결된 경우 Git을 사용하여 로컬 리포지토리에서 리 CodeCommit 포지토리로 커밋을 푸시합니다. CodeCommit 콘솔에서 직접 커밋을 생성하려면 AWS CodeCommit 리포지토리에 파일 생성 또는 추가 및 섹션을 참조하세요AWS CodeCommit 리포지토리에서 파일의 콘텐츠 편집.

참고

가장 좋은 방법은 , AWS CLI Git 및 기타 소프트웨어의 지원되는 최신 버전을 사용하는 것입니다. 를 사용하는 경우 create-commit 명령이 포함된 버전을 사용하고 있는지 확인하기 위해 최신 버전이 설치되어 있는지 AWS CLI확인합니다.

를 사용하여 리포지토리에 대한 첫 번째 커밋 생성 AWS CLI

AWS CLI 및 put-file 명령을 사용하여 리포지토리에 대한 첫 번째 커밋을 생성할 수 있습니다. put-file를 사용하면 빈 리포지토리에 파일을 추가하는 첫 번째 커밋이 생성되며, 이에 따라 사용자가 지정한 이름의 브랜치가 생성됩니다. 그러면 새 브랜치가 리포지토리의 기본 브랜치로 지정됩니다.

참고

에서 AWS CLI 명령을 사용하려면 를 CodeCommit설치합니다 AWS CLI. 자세한 내용은 명령줄 참조 단원을 참조하십시오.

를 사용하여 리포지토리에 대한 첫 번째 커밋을 생성하려면 AWS CLI

  1. 로컬 컴퓨터에서 리포지토리에 첫 번째 파일로 추가할 파일을 CodeCommit 생성합니다. 일반적인 방법은 다른 리포지토리 사용자에게 이 리포지토리의 용도를 설명하는 README.md 마크다운 파일을 만드는 것입니다. README.md 파일을 포함하면 콘솔의 리포지토리 CodeCommit에 대한 코드 페이지 하단에 파일의 콘텐츠가 자동으로 표시됩니다.

  2. 터미널 또는 명령줄에서 다음을 지정하여 put-file 명령을 실행합니다.

    • 첫 파일을 추가할 리포지토리의 이름.

    • 기본 브랜치로 생성하려는 브랜치의 이름.

    • 파일의 로컬 위치. 이 위치에 사용되는 구문은 로컬 운영 체제에 따라 달라집니다.

    • 업데이트된 파일이 리포지토리에 저장된 경로를 포함하여 추가할 파일의 이름.

    • 이 파일에 연결할 사용자 이름과 이메일.

    • 이 파일을 추가한 이유를 설명하는 커밋 메시지.

    사용자 이름, 이메일 주소 및 커밋 메시지는 선택 사항이지만, 다른 사용자에게 변경을 수행한 사용자와 변경 이유를 알려 줄 수 있습니다. 사용자 이름을 제공하지 않으면 는 CodeCommit 기본적으로 IAM 사용자 이름을 사용하거나 콘솔 로그인을 작성자 이름으로 사용합니다.

    예를 들어 라는 파일을 추가하려면 README.md 라는 리포지토리에 대한 예제 base 6 인코딩 파일 콘텐츠 포함 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."

    이 명령이 제대로 실행되면 다음과 비슷한 출력이 반환됩니다.

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

Git 클라이언트를 사용하여 커밋 생성

로컬 컴퓨터에 설치된 Git 클라이언트를 사용하여 커밋을 생성한 다음 해당 커밋을 CodeCommit 리포지토리로 푸시할 수 있습니다.

  1. 설정 을 포함한 사전 필수 단계를 완료합니다.

    중요

    설정을 완료하지 않았으면 Git를 사용하여 리포지토리에 연결하거나 커밋할 수 없습니다.

  2. 올바른 브랜치에서 커밋을 생성해야 합니다. 사용 가능한 브랜치 목록을 조회하여 현재 어떤 브랜치를 사용하도록 설정되어 있는지 확인하려면 git branch 명령을 실행합니다. 모든 브랜치가 표시됩니다. 현재 설정된 브랜치 옆에 별표(*)가 표시됩니다. 다른 브랜치로 전환하려면 git checkout branch-name 명령을 실행합니다. 커밋을 처음하는 경우에는 git config 명령을 실행하여 해당 브랜치에 사용할 이름으로 초기 브랜치를 생성하도록 Git 클라이언트를 구성합니다. 예를 들어 기본 브랜치에 이름이 포함되도록 하려면 development:

    git config --local init.defaultBranch development
    작은 정보

    이 명령은 CLI 버전 2.28 이상에서만 사용할 수 있습니다.

    이 명령을 실행하여, 새로 생성한 모든 리포지토리의 기본 브랜치 이름을 development으로 설정할 수도 있습니다.

    git config --global init.defaultBranch development
  3. 브랜치를 변경합니다(파일 추가, 수정 또는 삭제 등).

    예를 들어 로컬 리포지토리에서 다음 텍스트를 사용하여 bird.txt라는 이름의 파일을 생성합니다.

    bird.txt -------- Birds (class Aves or clade Avialae) are feathered, winged, two-legged, warm-blooded, egg-laying vertebrates.
  4. git status 명령을 실행하여 bird.txt가 대기 중인 어떤 커밋에도 포함되지 않았음을 나타내야 합니다.

    ... Untracked files: (use "git add <file>..." to include in what will be committed) bird.txt
  5. git add bird.txt 명령을 실행하여 대기 중인 커밋에 새로운 파일을 포함합니다.

  6. git status 명령을 다시 실행한 경우 다음과 비슷한 출력이 표시되어야 합니다. 이 메시지는 bird.txt가 이제 대기 중인 커밋의 일부가 되었거나 커밋에 스테이징되었음을 나타냅니다.

    ... Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: bird.txt
  7. 커밋을 완료하려면 -m 옵션으로 git commit 명령을 실행합니다(예: git commit -m "Adding bird.txt to the repository."). -m 옵션이 커밋 메시지를 생성합니다.

  8. git status 명령을 다시 실행한 경우 다음과 비슷한 출력이 표시되어야 합니다. 커밋을 로컬 리포지토리에서 CodeCommit 리포지토리로 푸시할 준비가 되었음을 나타냅니다.

    ... nothing to commit, working directory clean
  9. 완료된 커밋을 로컬 리포지토리에서 리 CodeCommit 포지토리로 푸시하기 전에 를 실행하여 푸시하는 내용을 확인할 수 있습니다git diff --stat remote-name/branch-name. 여기서 remote-name 는 로컬 리포지 CodeCommit 토리에서 사용하는 별명이며 branch-name 는 비교할 브랜치의 이름입니다.

    작은 정보

    별명을 가져오려면 git remote을 실행합니다. 브랜치 이름 목록을 가져오려면 git branch 명령을 실행합니다. 현재 설정된 브랜치 옆에 별표(*)가 표시됩니다. 또한 git status 명령을 실행해도 현재 브랜치 이름을 가져올 수 있습니다.

    참고

    로컬 리포지토리의 관점에서 리포지토리를 복제한 경우 remote-name 는 CodeCommit 리포지토리의 이름이 아닙니다. 리포지토리를 복제할 때 remote-name 는 자동으로 로 설정됩니다origin.

    예를 들어 git diff --stat origin/main 명령을 실행하면 다음과 비슷한 메시지가 출력됩니다.

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

    출력은 로컬 리포지 CodeCommit 토리에 이미 연결했다고 가정합니다. (지침은 리포지토리에 연결 단원을 참조하세요.)

  10. 로컬 리포지토리에서 리 CodeCommit 포지토리로 커밋을 푸시할 준비가 되면 를 실행합니다git push remote-name branch-name. 여기서 remote-name 는 로컬 리포지 CodeCommit 토리에서 사용하는 별명이며 branch-name 는 리 CodeCommit 포지토리로 푸시할 브랜치의 이름입니다.

    예를 들어 git push origin main 명령을 실행하면 다음과 비슷한 메시지가 출력됩니다.

    의 경우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

    의 경우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
    작은 정보

    -u 옵션을 git push에 추가하면(예: git push -u origin main) 업스트림 추적 정보가 설정되었기 때문에 향후에 git push 명령만 실행하면 됩니다. 업스트림 추적 정보를 보려면 git remote show remote-name을 실행합니다(예: git remote show origin).

다른 옵션들에 대해서는 Git 설명서를 참조하세요.

를 사용하여 커밋 생성 AWS CLI

AWS CLI 및 create-commit 명령을 사용하여 지정된 브랜치의 팁에 리포지토리에 대한 커밋을 생성할 수 있습니다. 참조되지 않은 병합 커밋을 생성하여 두 커밋 지정자의 병합 결과를 나타낼 수도 있습니다. 자세한 내용은 참조되지 않은 커밋 생성을 참조하세요.

참고

에서 AWS CLI 명령을 사용하려면 를 CodeCommit설치합니다 AWS CLI. 자세한 내용은 명령줄 참조 단원을 참조하십시오.

커밋을 생성하려면
  1. 로컬 컴퓨터에서 리포지토리에 커 CodeCommit밋하려는 내용을 변경합니다.

  2. 터미널 또는 명령줄에서 다음을 지정하여 create-commit 명령을 실행합니다.

    • 변경 사항을 커밋할 리포지토리

    • 변경 사항을 커밋할 브랜치

    • 해당 브랜치에서 수행된 가장 최근 커밋의 축약되지 않은 커밋 ID(팁 또는 헤드 커밋 또는 상위 커밋 ID)

    • 수행한 변경으로 인해 그러한 폴더의 내용이 삭제되면 빈 폴더를 유지할지 여부. 기본적으로 이 값은 false입니다.

    • 추가, 변경 또는 삭제하려는 파일 정보

    • 이러한 변경 사항에 연결할 사용자 이름과 이메일

    • 이러한 변경을 수행한 이유를 설명하는 커밋 메시지

    사용자 이름, 이메일 주소 및 커밋 메시지는 선택 사항이지만, 다른 사용자에게 변경을 수행한 사용자와 변경 이유를 알려주세요. 사용자 이름을 제공하지 않으면 는 CodeCommit 기본적으로 IAM 사용자 이름을 사용하거나 콘솔 로그인을 작성자 이름으로 사용합니다.

    예를 들어 라는 리포지토리에 README.md 파일을 추가하는 리포지토리에 대한 커밋을 생성하려면 MyDemoRepomain 브랜치. 파일 내용은 Base64에 있으며 “Welcome to our team repository!”라고 쓰여 있습니다.

    aws codecommit create-commit --repository-name MyDemoRepo --branch-name main --parent-commit-id 4c925148EXAMPLE --put-files "filePath=README.md,fileContent=V2VsY29tZSB0byBvdXIgdGVhbSByZXBvc2l0b3J5IQo="
    작은 정보

    상위 커밋 ID를 가져오려면 get-branch 명령을 실행합니다.

    이 명령이 제대로 실행되면 다음과 비슷한 출력이 반환됩니다.

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

    이름이 인 파일을 변경하는 커밋을 생성하려면 file1.py 그리고 file2.txt에서 파일 이름을 바꿉니다.picture.png 아래로 변경합니다.image1.png 라는 디렉터리에서 이동합니다.pictures 라는 디렉터리로 images, 및 라는 파일을 삭제합니다.ExampleSolution.py 라는 리포지토리의 MyDemoRepo 라는 브랜치에서 MyFeatureBranch 가장 최근 커밋의 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"
    참고

    --put-files 세그먼트의 구문은 운영 체제에 따라 다릅니다. 위의 예제는 Linux, macOS, Unix 사용자, 그리고 Bash 에뮬레이터가 포함된 Windows 사용자에게 최적화된 것입니다. 명령줄 또는 Powershell에서 Windows 사용자는 해당 시스템에 적합한 구문을 사용해야 합니다.

    이 명령이 제대로 실행되면 다음과 비슷한 출력이 반환됩니다.

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