22.01.12 깃허브 CLI 환경에서 사용하기

Saparian·2022년 1월 12일
0

오늘의배움

목록 보기
5/53

어제 공부한 걸 정리 못하고 자버려서 오늘 다 정리해야한다.
벌써 새벽 1시반을 넘어가고 있는 시점이라 간단하게만 정리하려고 한다.

GUI환경에서 사용했던 기본 명령어 (1.11)

git add : 변경된 파일들을 스테이지에 추가할때 사용한다. 새로 만든 파일은 반드시 add 명령어를 사용해줘야 추가가 된다.

git commit : 커밋 명령어

git commit -a : add 명령어를 생략하고 바로 커밋할때 사용한다.

git push : 원격 저장소에 업로드 할때 사용한다.

git pull : 원격저장소의 변경사항을 워킹트리에 반영한다. git fetch + git merge를 합친 명령어로 생각해도 된다.

git fetch : 원격저장소의 브랜치와 커밋을 로컬저장소와 동기화하는 명령어다.

git merge : 지정한 브랜치의 커밋을 현재 브랜치 및 워킹 트리에 반영한다. (병합하는 명령어다.)

  • 이 외에 git bash 명령어도 있다.
    pwd : 현재 위치를 나타내는 명령어
    ls : 현재 폴더 내 파일 목록을 보여줌
    cd : 홈 폴더로 이동한다. 내문서폴더의 상위 폴더다
    cd ../ : 이전 폴더(상위 폴더)로 이동하는 명령어
    mkdir (새폴더 이름) : 현재 위치에서 새로운 폴더를 만든다.

  • 로그(log) 관련 명령어
    git log : HEAD와 관련된 커밋을 보여줌
    git log --oneline : 커밋해시 및 제목을 간단히 보고 싶을때 사용
    git log --oneline --graph --decorate : HEAD와 관련된 커밋을 좀 더 자세히 보고싶을때 사용
    git log --oneline --graph --all --decorate : 모든 브랜치들을 보고싶을 때 사용
    git log --oneline -n5 : 내 브랜치의 최신 커밋을 5개 보고 싶을 때 사용

  • 원격 저장소 관련 명령어

    • GUI환경(소스트리)에서 사용했던 용어를 그대로 사용할 수 있다.
    • remote push pull clone commit 등등

좋은 커밋메시지의 7가지 규칙

  1. 제목과 본문을 빈 줄로 분리한다.
  2. 제목은 50자 이내로 쓴다.
  3. 제목을 영어로 쓸 경우 첫 글자는 대문자를 쓴다.
  4. 제목에는 마침표를 넣지 않는다.
  5. 제목을 영어로 쓸 경우 동사원형(현재형)으로 시작한다.
  6. 본문은 72자 단위로 줄바꿈한다.
  7. 어떻게보다 무엇를 설명한다.

초보자인 내게는 좋은 내용인 것 같아서 따로 정리한다.
몇가지 규칙은 왜 그렇게 사용해야하는지 아직 잘 모르겠다. (3번이라던지, 4번이라던지...)

CLI환경에서 브랜치 조작하기 (1.12)

이 부분 공부하면서 그동안 헷갈렸던 기능을 정리할 수 있었다.

  • 체크아웃 : head를 특정 커밋으로 이동시키는 것
    ( HEAD : 현재 작업 중인 브랜치(의 최신커밋) )
  • reset : branch를 특정 커밋으로 이동시키는 것

브랜치를 사용하는 경우

  1. 새로운 기능 추가
  2. 버그 수정
  3. 병합과 리베이스 테스트
  4. 이전 코드 개선
  5. 특정 커밋으로 돌아가고 싶을 때
  • 사용 명령어
    git branch : 로컬저장소의 브랜치 목록을 보여줌
    git branch <브랜치 이름> : 새로운 브랜치를 생성
    git branch -f <브랜치 이름> [커밋체크섬] : 이미 있는 브랜치를 다른 커밋으로 옮기고 싶을 때 사용한다.
    git checkout : 특정 브랜치로 체크아웃할때 사용함
    git checkout -b <브랜치이름> <커밋체크섬> : 특정 커밋에서 브랜치를 생성하고 동시에 체크아웃을 하게 함
    git rebase <대상 브랜치> : 내 브랜치의 커밋을 대상 브랜치에 재배치 시킴. 방향을 주의해야함
    git branch -d <브랜치이름> : 브랜치를 삭제할때 사용. (HEAD나 병합이 되지않은 브랜치는 삭제가 불가능함.
    git branch -D <브랜치이름> : "-d"로 삭제가 불가능한 브랜치를 지울때 사용함
    `git revert

  • HEAD~ / HEAD^

    • HEAD~<숫자>
      • HEAD~는 헤드의 부모커밋, HEAD~2는 할아버지 커밋이다. HEAD~n은 n번째 위쪽 커밋을 말한다.
    • HEAD^
      • HEAD^는 똑같이 부모커밋이다.
      • HEAD^2는 두번째 부모를 가르킨다. 병합커밋처럼 부모가 둘 이상일때 사용된다.

리베이스를 할때 조심해야하는 이유

리베이스를 하게되면 기존 커밋들이 그대로 재배치 되는 것이 아니라 새로운 커밋으로 재배치가 된다.
때문에 원격저장소에 올라가있는 브랜치에는 리베이스를 하지 않도록 한다.

중복된 브랜치가 여러개가 존재하게 되기때문에 히스토리도 꼬이게된다.

정리 끝.

생각보다 많이 정리했다.
더 하면 내일 일을 못할 것 같아서 여기까지 하자...

다음에 공부할 내용

  • 깃허브 - 깃허브 동작 원리 및 인증기능

  • 파이썬 - PyQt5 DB데이터 추가 및 조회, 새창 띄우기

    오늘 점심시간에 인프런을 봤는데 강의를 무료로 들을 수 있는 이벤트가 진행되고 있었다. 잠깐 보느라 자세하게는 못봤는데 둘러보고 신청할 강의가 있으면 신청해야겠다.

0개의 댓글