[GIT] 원격저장소에 commit, push, merge, pull하기

김시은·2022년 10월 2일
2
post-thumbnail

git 왜 알아야 할까?

깃은 '수동'으로 소프트웨어의 버전관리를 할 수 있는 시스템이다.
개발자들이 쓰는 드롭박스라고 이해하면 쉽다.

  • 각 팀원이 작업한 파일을 드롭박스에 올리고, 다른 팀원이 드롭박스에서 파일을 다운 받아 작업을 하듯이
  • 개발자의 로컬 컴퓨터에서 작업한 코드를 메인서버(깃헙)에 올리고, 다른 사람들은 최신 버전을 다운 받아 작업할 수 있게 되는 것이다.

깃으로 할 수 있는 일들

  1. 자유롭게 코드를 수정, 추가, 삭제하며 버전을 관리할 수 있다.
  2. 필요할 경우 이전 버전으로 되돌릴 수 있다. (백업)
  3. 같은 파일을 동시에 수정하는 경우 등 충돌이 일어날 시 이를 알려주고 해결할 수 있기에 협업에 편리하다.

개발자가 아니어도 테크 기업에서 개발자와 협업할 경우가 많기 때문에, 기본적으로 깃으로 버전 관리하고 이슈를 해결하는 방법을 알아두면 좋다.


매일 공부한 내용을 깃헙에 저장하고자 TIL이라는 저장소를 생성해두었다.
VSCode로 작성한 오늘의 TIL을 터미널에서 기본 명령어를 실행하며 깃헙에 올려보자.

로컬저장소의 코드를 원격저장소로 올리기

Commit

커밋은 특정 시점의 진행 상황을 Snapshot 찍듯 저장해두는 것이다.
커밋을 한 번 할 때마다 어떤 내용이 저장되었는지 기록이 남아, 마지막 커밋 시점부터 작업을 진행할 수 있게 된다. 물론 필요한 경우 특정 커밋 시점으로 되돌아가서 작업을 진행할 수도 있다.

  1. git status 수정했으나 아직 커밋하지 않은 파일을 확인하기 위해 사용한다.
  1. git add [커밋할 파일명] 원하는 파일을 stage area라는 장바구니에 담아 커밋 대기 상태로 만든다.
  1. git commit -m "커밋메세지" 대기 상태에 있던 것을 가져와 실제로 버전을 만든다.
  • -m은 뒤의 메세지가 커밋 메세지라는 뜻이다.
  1. git log 커밋 로그를 확인할 수 있다.

💡 커밋의 단위는 어느 정도가 적절할까?

one commit per one logical change

"logical change"의 기준에 답은 없지만 일반적으로 하나의 기능을 완성했을 때 커밋을 한다. 회사에 입사하면 커밋 이력을 보며 동료들이 커밋 단위를 얼마나 작게 쪼개는지 보고 파악하면 된다.

💡 커밋 메세지 작성법
역시 정답은 없지만 일반적인 규칙이 존재한다.

  • 문장이 아닌 명사형으로 작성한다.

    구글로 로그인 구현 O
    구글로 로그인 구현했습니다. X

  • 해당 작업 내용이 무엇인지 직관적으로 알 수 있도록, 변경된 소스코드의 모든 내용을 포함하도록 작성한다.

Push

커밋은 버전을 생성했을 뿐, 원격저장소로 올리기 위해서는 푸쉬해주어야 한다.
로컬에만 저장하면 위험하기에 반드시 원격저장소로 올리는 걸 습관화하자.

  1. 원격저장소와 로컬저장소를 연결한 뒤 처음 한 번은
    git push --set-upstream oigin master 를 실행한다.
    가장 마지막 버전을 뭐라고 지칭할지 정해주는 것이다. (여기서의 'master')
  2. 이후부터는 git push 만 실행하면 된다.

앗 문제가 생겼다.


10월 2일자의 TIL을 작성하여 푸쉬했는데, 깃헙에는 해당 버전이 확인되지 않는다. 왜일까?


깃헙에서 확인하고자 하는 main 브랜치가 아닌 2-commit-definition 브랜치로 올렸기 때문이다.
어떻게 해결할 수 있을까?

브랜치 병합하기 (Merge)


2-commit-definition의 버전을 main 브랜치로 병합해주자.

  1. git checkout [브랜치 이름] HEAD가 가리키는 브랜치를 변경해준다.
  2. git merge [병합하고자 하는 대상 브랜치 이름]


3. git push 병합하고자 하는 브랜치에 푸쉬해준다.

2-commit-definition 의 마지막 버전이 main에 병합된 것을 볼 수 있다.

깃헙에서도 내가 원하는대로 main 브랜치에 오늘자 TIL 내용을 확인 가능하다 :)

원격저장소에 있는 버전을 로컬로 받아오기

Clone : 원격저장소를 로컬로 가져오기

깃허브의 저장소를 내 로컬에 복사하여 새로운 로컬 저장소로 만든다.
git clone [원격저장소 주소]

git clone [원격저장소 주소] . 미리 만들어둔 폴더에 복제하고 싶을 때는 . 을 붙인다. (. 은 현재 폴더라는 뜻)

Pull : 원격저장소의 최신 버전을 받아오기

로컬에서 작업하기 전에 반드시 pull을 통해 변경사항을 받아와야 한다. 그렇지 않으면 충돌이 일어난다.

git pull

profile
데이터분석가를 꿈꾸어요

0개의 댓글