초보자가 CodeCommit에서 새 저장소를 만든 후 클론을 생성하고 작업 지점을 만듭니다.

입문


지금까지 누군가가 이미 안에서 무엇을 만들었는지 데이터베이스에서만 복제 작업을 진행했다.
이번에는 자신이 CodeCommit로 자료 라이브러리를 만든 곳에서 여러 가지 물건을 채워 보았는데, 자신이 쓴 필기였다.
이런 배경이 있기 때문에 근본적으로 효과가 낮고 이상한 점이 있을 수 있습니다. 이런 경우 죄송합니다.

문장의 전제

  • Mac PC
  • git, AWS CLI
  • 설치
  • IAM 계정과 SSH 키 연결
  • SSH 키와 연관된 IAM에 대한 자격 증명 등록
  • 동작 확인 환경

  • 버전
  • bash: GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
  • git: 2.17.0
  • AWS CLI: aws-cli/1.16.221 Python/3.7.4 Darwin/18.7.0 botocore/1.12.211
  • 1. 새 저장소 만들기

  • AWS 콘솔을 열고 서비스 목록에서 AWS CodeCommit를 선택한 다음 저장소 만들기
  • 생성된 저장소 페이지를 엽니다. "클론 URL"> "클론 SSH"
    (이번에는 SSH를 전제로 설명)
  • 2. 새로 생성된 저장소 클론

  • 명령줄의 저장소를 삭제하려는 곳에서 다음 명령을 실행
  • $ git clone ssh://git-codecommit.{region}.amazonaws.com/v1/repos/sample-repository
    Cloning into sample-repository...
    warning: You appear to have cloned an empty repository.
    
    마지막warning에서'하늘의 자료고가 떨어진 것 같다'는 말이 나왔다.
  • 저장소로 이동
  • $ cd sample-repository
    
    이 상태의 브랜치를 볼 때 내용이 없습니다.git 명령은 "주 지점에 있습니다"라고 말하지만, 여기에는 표시되지 않습니다.
    $ git branch
    # 何も表示されない
    
    # gitステータス確認
    $ git status
    On branch master
    
    No commits yet
    
    nothing to commit (create/copy files and use "git add" to track)
    
    # gitコミットlog確認
    $ git log
    fatal: your current branch 'master' does not have any commits yet
    
  • (옵션) Sourcetree를 통해 확인 시도
  • Sourcetree를 보니 아무것도 할 수 없고 아무것도 없어요.

    3. 마스터의 첫 번째 약속


    제출할 때 아무런 변경도 하지 않습니다.문서 레지스트리에 항목을 추가합니다.
    $ git commit --allow-empty -m "first commit"
    [master (root-commit) xxxxxxx] first commit
    
  • 제출 내용 확인
  • # gitステータス確認
    $ git status
    On branch master
    Your branch is based on 'origin/master', but the upstream is gone.
      (use "git branch --unset-upstream" to fixup)
    
    nothing to commit, working tree clean
    
    # gitコミットlog確認
    $ git log
    commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (HEAD -> master)
    Author: Your Name <Your Email Address>
    Date:   Thu Aug 22 12:43:48 2019 +0900
    
        first commit
    

    보충: --allow-empty 옵션

    --allow-empty 옵션이 없으면 새 파일이 없으면 다음과 같이 표시되며 제출이 허용되지 않습니다.
    $ git commit -m "First commit"
    On branch master
    
    first commit
    
    nothing to commit
    

    여담: Your branch is based on'origin/master', but the upstream is gone.의미


    1차 제출 후--allow-empty에 나타난 이↓의 뜻을 간단히 조사했기 때문에 추적했다.
    Your branch is based on 'origin/master', but the upstream is gone.
    (use "git branch --unset-upstream" to fixup)
    
    현재 로컬 git status 지점은 원래 이 지점의 원격 master 지점 (=master 에서 만든 것입니다 (Your branch is based on "origin/master").
    그러나 원격'origin/master' 지점 자체의 내용이 비어 있기 때문에 빈 = 존재하지 않는 지점을 추적하고 있습니다 (=master.
    그리고 upstream is gone 에서 복구할 수 있습니다. 즉, 원격 git branch --unset-upstream 지점 추적을 중지할 수 있습니다.
    또한 master 추적을 중지할 원격 지점을 지정할 수 있을 것 같습니다.
    참조:
    - "Your branch is based on 'origin/master', but the upstream is gone" - V&V
    - git branch 명령 - Qiita

    4. 첫 번째 제출을 origin에 제출

  • 다음 명령 실행
  • $ git push origin master
    Counting objects: 2, done.
    Writing objects: 100% (2/2), 147 bytes | 147.00 KiB/s, done.
    Total 2 (delta 0), reused 0 (delta 0)
    To ssh://git-codecommit.{region}.amazonaws.com/v1/repos/sample-repository
     * [new branch]      master -> master
    
    이것이 끝난 후에 마침내 분지가 나타났다.
  • 검사 지점
  • $ git branch
    * master
    
  • (선택 사항) Sourcetree에서 분기 발생 확인

  • 그리고 SourceTree나 명령행 또는 CodeCommit로 새로운 지점을 만들어 보세요!
  • 예:git 명령을 통해 마스터 지점에서 개발용 지점을 만들고(예:git branch --unset-upstream <branchname>) 지점을 전환할 때
  • $ git checkout -b develop
    Switched to a new branch 'develop'
    
    # ブランチ確認
    $ git branch
    * develop
      master
    
  • (임의로)Sourcetree를 통해git제작 개발용 지점확인

  • 제목: 마스터가 제출하지 않으면


    마스터 지점에서 제출하지 않는 것이 좋다는 말을 자주 들었기 때문에 저는 처음에 마스터를 만지작거리지 않고 그곳에서 새로운 지점을 만들고 체크 아웃했습니다. 위에서 말한 바와 같이push를 진행했습니다.
    그래서 마스터의 원격 존재는 사라지고 제작의 지점에서 마스터를 만들어야 하기 때문에 번거롭다.
    또한 이 방법은 마지막에 마스터 지점을 다시 만든 후에 작업 지점으로 전환하는 것을 잊어버릴 수 있습니다.
    마스터가 제출한 내용은 비어 있기 때문에 최초 설명 방법으로 하는 것이 좋습니다.
  • 예: 개발용 지점(예: develop부터develop
  • # リポジトリ内に移動してからのコマンド
    
    $ git checkout -b "develop"
    Switched to a new branch 'develop'
    
    $ git commit --allow-empty -m "first commit"
    [develop (root-commit) 321da3b] first commit
    
    $ git push origin develop
    Counting objects: 2, done.
    Writing objects: 100% (2/2), 148 bytes | 148.00 KiB/s, done.
    Total 2 (delta 0), reused 0 (delta 0)
    To ssh://git-codecommit.{region}.amazonaws.com/v1/repos/another-sample-repository
     * [new branch]      develop -> develop
    
    
    $ git checkout -b "master"
    Switched to a new branch 'master'
    Your branch is based on 'origin/master', but the upstream is gone.
      (use "git branch --unset-upstream" to fixup)
    
    $ git branch --unset-upstream
    
    # ブランチの切り替えを忘れずに
    $ git checkout develop
    

    좋은 웹페이지 즐겨찾기