[TIL] 코드스테이츠 SEB BE Day 6

💡 Today I Will Learn

  • git
  • git workflow - Pair
  • git command - Quiz

✏️ Summary


  • 버전관리 시스템

    이전에 작성한 내용을 보존해주는 시스템으로 Git이 많이 쓰인다.
    버전관리와 협업의 기본이고, 오픈소스 생태계에 기여할 수 있는 개발자가 될 수 있다.

    1. 각 버전 별로 변경된 이력들을 저장
    2. 어떤 변경사항이 저장되었는지 코멘트
      누가 어떤 파일을 추가, 수정, 삭제 했는지 확인이 가능
    3. Git으로 관리되는 파일은 Github, Gitlab, Bitbucket 등의 원격저장소로 저장되어 백업과 협업 가능
  • Git과 Github

    • Git

      개발자 코드를 효율적으로 관리하기 위한 ‘분산형 버전관리시스템’으로 소스코드 기록을 관리하고 추적하며 날짜별로 어떤 파일이 어떻게 바뀌었는지 확인 가능

      스냅샷_사진 특정 시점의 백업본을 스냅샷이라 하고, 스냅샷을 만드는 작업이 commit이다. 어떤부분이 변경되었는 지 하이라이트로 확인이 가능하다.

    • Github

      git으로 버전을 관리하는 폴더(git repository)를 클라우드 서비스에 공개하여 공유
      개발자들의 SNS, code review 등으로 협업, 많은 오픈소스 프로젝트들에 기여 가

    • Repository

      1. Remote Repository
        작업한 코드를 공유 (클라우드 서비스)
      2. Local Repository
        코드를 작업 (로컬 환경)
  • Git 명령

    Git workflow

    명령설명
    initGit의 관리하에 들어가는 명령
    fork다른 오픈소스를 내 원격 저장소로 가져오는 작업
    cloneremote Repository를 local repository로 만드는 작업
    remote현재 프로젝트의 remote 저장소에 관한 설정
    -v: 상태확인
    push로컬에서 변경된 내용을 commit하여 원격에 저장하는 작업
    git push [remote 별명] [적용할 현재 local branch]
    pull원격에 변경사항을 로컬로 가져오는 작업
    Pull Requestpush를 하여 오픈소스 프로젝트에 내가 제안한 코드 변경사항을에 대한 반영 여부 요청
    statusGit이 관리하고 있는 파일 및 디렉터리 상태 확인
    addStaging Area로 올리는 작업
    restoreadd와 반대로 변경사항을 폐기
    commit변경사항을 저장하고 Local Repository에 올리는 작업
    resetcommit을 폐기하는 명령
    –soft / –hard + [커밋명 ex) HEAD^]
    log남겨진 commit 기록들을 확인
  • Git 환경설정과 SSH인증

    • Git 환경설정

      # commit에 반영될 이름과 메일주소
      git config --global user.name 
      git config --global user.email
      

      프로젝트마다 다른 이름과 메일을 사용하고자 한다면 --global 옵션을 제거하고 사용한다.

      git config --global core.editor vim
      

      merge commit 확인메시지가 나올 때 등 텍스트 기본 에디터를 설정한다.

    • SSH 인증

      Secure SHell로 보안이 강화된 shell 접속을 의미한다.

      1. ssh key 생성

         ssh-keygen # Enter 몇번으로 생성
        

        ssh키는 비대칭키(private-public)이다.
        홈디렉터리(~)에 ~/.ssh 폴더에 생성된 두 파일 id_rsa, id_rsa.pub을 키페어라 한다.

        • pub - 공개 가능한 public key
        • id_rsa - 공개 해선 안되는 private key(secret key)
      2. ssh public key 등록 공개키를 복사하여 github 계정 settings - SSH and GPG keys - New SSH key 에 붙여넣어 추가한다.

      3. Git Repository 주소 사용 Git Repository 주소 사용시 반드시 SSH의 주소를 복사하여 사용 (https 사용 X)

      추가로 Github CLI라는 인증 방식도 있으니 참고해보자.

📌 정리


기대했던 만큼 재밌었던 Pair Programming 이었다. Git 이론은 그다지 흥미롭지 않았지만 페어와 레포지토리를 공유하고 Conflict를 해결하여 merge 시키는 실습이 다가올 팀 프로젝트를 기대하게 한다.

👿 Problem

페어와 실습 프로그래밍을 진행하던 중 push/pull 명령에서 Password 인증을 요구하는 문제에 봉착했다. 아무리 올바른 값을 입력해도 실패만 했기에, 우선 학습했던 SSH로 전부 진행하고 추후에 문제점을 찾아보았다.

👼 Solution

윈도우에서 설치 진행 시 Git Credential Manager(GCM)을 통해 GUI창으로 첫 인증이 되고 토큰방식으로 저장된다고 한다. 페어는 Mac을 사용하고 있기에 패키지 설치만으로 GCM이 설치되지 않아 SSH로만 동작했던 것이다. 즉 GCM 설정을 따로 진행하거나, Github CLI를 통한 인증을 이용하는 것이 HTTPS로도 인증할 수 있는 방법이다.

🎯 Tomorrow


  • Java Type, String
  • Java Operator, I/O
  • Pair Programming

Back to [TIL] 코드스테이츠 SEB BE Day 5