2023.11.17(금)

🔑Personal Access Tokens를 사용해 계정 등록

  1. GitHub 계정 > Settings > Developer Settings > Personal access tokens > Tokens (classic)에서 Generate new token으로 원하는 기한 및 권한으로 Token 생성

  2. 생성된 Token 값 확인 및 복사

  3. git clone 또는 git push 명령 시, Password로 발급 받은 Token 입력

    git push origin main
    
    Username for 'https://github.com':
    Password for 'https://user@github.com': '발급 받은 토큰'

📥CLI clone

  • GitHub에 project 올리기 (Local → GitHub)

    1. GitHub에 new repository 생성
    2. git remote add로 생성한 repository(원격 저장소) 연결
    3. git add, commitpush로 source code 올리기
  • GitHub repository를 local로 받아오기 (GitHub → Local)

    1. GitHub repository > Code 버튼 클릭 > HTTPS URL 복사
    2. git clone <복사한 URL>로 받아오기

📥GUI clone

  • 새로운 창을 띄우면 Open Folder 아래에 Clone Repository 항목이 있고 GUI로도 쉽게 Git Repository를 원하는 위치에 clone해올 수 있다.

🌱Branch

  • 왜 사용하는가?
    • 병렬 개발 및 동시 작업 가능 (기능을 분리하여 개발하고 테스트)
    • 다른 branch에서 실험하고 기능을 개발한 후 main branch에 병합하여 안정적으로 관리 가능
    • 롤백 및 버전 관리의 용이성
  • Git이 Data를 저장하는 방식 🔗
    • commit하면 Git은 현 Staging Area에 있는 data의 snapshot에 대한 pointer, 저자나 commit message 같은 metadata, 이전 commit에 대한 pointer 등을 포함하는 Commit Object를 저장 ⇒ 이전 commit pointer가 있어서 현재 commit이 무엇을 기준으로 바뀌었는지를 알 수 있음
      • Commit과 Tree Data
        • metadata와 root tree를 가리키는 pointer가 담긴 commit Object
        • file과 directory 구조가 들어있는 Tree Object
        • 각 file에 대한 Blob
      • commit과 이전 commit
        • 다시 파일을 수정하고 commit하면 이전 commit이 무엇인지도 저장함
        • 최초 commit을 제외한 나머지commit은 이전 commit pointer가 적어도 하나씩 있고 branch를 합친 Merge commit 같은 경우에는 이전 commit 포인터가 여러 개 있음

👉 Git의 Branch = Commit 사이를 가볍게 이동할 수 있는 Pointer

  • 기본적으로 Git은 git init을 하면 master branch를 만들고 처음 commit하면 이 master branch가 생성된 commit을 pointing
  • 이후 commit을 만들면 master branch는 자동으로 가장 마지막 commit을 pointing
  • Git Branch Commands
    • git branch <branch>
      • 새로운 branch 생성 → 현재 작업 중인 마지막 commit을 pointing
      • Git은 현재 작업 중인 branch를 HEAD라는 특수한 pointer를 이용해 확인 가능
        • HEAD는 지금 작업하는 local branch를 pointing
        • git branch 명령은 branch를 만들기만 하고 branch를 옮기지 않음
      • branch 삭제 : git branch -d <branch>
      • branch 이름 변경 : git branch -m <oldbranch> <newbranch>
      • brach copy : git branch -c <oldbranch> <newbranch>
    • git branch
      • branch list 확인 가능
      • --merged와 --no-merged flag로 merged branch list와 no-merged branch list 확인 가능
      • *로 HEAD가 pointing하고 있는 branch 확인 가능
        * master
          testing
    • git log
      • commit 기록 확인
      • branch가 어떤 commit을 point하고 있는지 graph 형태로 확인 : git log --oneline --graph --all --decorate
        • --oneline : log를 한 줄로 약식으로 보여줌
        • --graph : log를 graph 형태로 보여줌
        • --all : 모든 branch, all을 쓰지 않으면 현재 branch만 보여줌
        • --decorate : 각 branch가 어떻게 위치해 있는지 (어떤 commit을 point하는지)
    • git checkout <branch>
      • 다른 branch로 이동 → HEAD가 해당 branch를 pointing!
      • 이전 branch로 이동하는 편리한 명령 : git checkout -
      • -b flag로 branch 생성과 checkout 동시에 : git checkout -b <branch>
      • branch를 이동하면 working directory의 파일이 변경된다 (시점을 바꿨으니 당연)

git merge에 관해서는 다음 시간에!

profile
이것저것 관심 많은 개발자👩‍💻

0개의 댓글