TIL(22.09.08) - Git 개념정리

이지영·2022년 9월 8일
0

TIL/WIL

목록 보기
10/110

내일배움캠프 AI

오늘 한 일

협업을 위한 GIT 활용

강의 정리하기

  • Github은 Git 원격 저장소 + Git 으로 할 수 있는 커뮤니티 기능 서비스

  • Git은 commit(커밋) 을 통해 '현재 프로젝트의 상태'을 저장하고 조회

  • 버전관리와 commit

  • commit 할 때!
    add(staging) 를 사용하면, 컴퓨터에서 여러 파일을 수정했어도 '기능 A 수정' 에 관련된 파일만 골라서 commit 할 수 있다.
    - 내가 기록할 작업 내역이 무엇인지 생각하고,
    - 관련된 파일만 add 해서
    - 작업내역을 나타내는 commit 메시지 적기!

    commit  id 는 나중에 커밋을 관리하고 되돌릴 때 사용하는 중요한 정보! 
    commit id - 각 commit 을 관리하기 위해  id 가 부여

개념 정리

  1. 버전관리를 한다는 건 어떤 의미일까?
  • 프로젝트 상태가 변경되는 정보를 알고 있다는 것입니다. Git 은 누가, 언제, 해당 시점의 프로젝트 상태를 기록해두기 때문에 버전 관리가 가능합니다.
  1. 작업내역 단위인 commit 에는 어떤 정보가 포함되어 있어야 잘 버전관리를 할 수 있을까?
  • 누가, 언제, 무엇을 했는지가 필요하겠죠? 어떤 작업을 했는지 알려주는 작업 내역인 commit 메시지, 누가(author), commit 한 시간이 필요해요.
    그리고 commit 을 편하게 관리하기 위한 commit 아이디! commit 아이디는 사용자 아이디처럼 commit 에 부여된 유일한 값!
  1. 지금까지 우리가 실습은 어떤 순서로 했었지?
    - 기존의 프로젝트를 git 프로젝트로 만든다. - git 초기화(git initialize) - commit 할 파일들을 add(staging) 하고 commit 메시지 작성해서 commit!
  • 원격 repo 사용하기
    repo(리포, repository 리포지토리의 약자) Git으로 관리되는 프로젝트
    로컬 repo(local repository) 내 컴퓨터에 저장되어있는 리포지토리
    원격 repo(remote repository) Github처럼 다른 곳에서 접속할 수 있는 공간에 저장되어있는 것
    추적(Tracking, 트랙킹 / branch tracking) 로컬 repo 가 원격 repo 를 연결하는 것
    push(푸쉬) 로컬 repo 의 commit 들을 원격 repo 에 반영하는 것
    pull(풀) 원격 repo 의 commit 들을 로컬 repo 에 반영하는 것
    clone(클론, 복제) 원격 repo 를 내 컴퓨터에서도 사용할 수 있도록 가져오는 것

  • 혼자 Git 프로젝트 작업을 할 때 순서 pull -> 로컬 repo commit -> push
    1) 원격 repo 와 로컬 repo 의 상태를 똑같이 맞춰주기, 즉 로컬 repo 에 원격 repo 작업내역 가져오기 (pull)
    2) 로컬 repo 의 작업 내용을 저장하고 (commit)
    3) 원격 repo 에 로컬 repo 내용을 반영 (push)

개념정리

  1. 원격 repo 와 로컬 repo 를 연결해서 내용을 반영하고 싶을 땐 어떤 방법을 써야할까?

    • 로컬 repo 가 없고 원격 repo 에 있는 내용을 가져오고 싶을 때는 clone 한다.
    • 원격 repo 와 로컬 repo 둘 다 있고 두 개를 연결하고 싶을 때는 로컬 repo 가 원격 repo를 tracking 하도록 설정한다.
  2. 원격 repo 와 로컬 repo 는 왜 따로 있을까?

    • 협업할 때, 혹은 여러 컴퓨터를 사용한다면 하나의 원격 repo 에 여러 로컬 repo 를 연결시킬 수 있다. 하나의 프로젝트를 동시에 작업하는게 가능해진다.
  3. push 와 pull 의 개념을 원격 repo와 로컬 repo 를 포함해 그림으로 그려보세요.

작업방식
1단계. 누가 이 작업 할 것인지 정한다. - Issue
2단계. 각자 맡은 것을 작업한다. - Branch
3단계. 각자 작업을 프로젝트에 합친다. - merge
(경우에 따라). 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다. - PR 후 merge

Issue

  • 버그(프로그램이 원하는 대로 동작하지 않는 것)를 신고 (Bug report, 버그 리포트)
  • 기능 추가 등의 프로젝트 개선 제안 (enhancement)
  • 위 문제들을 해결하기 위한 작업단위

브랜치(Branch)
나뭇가지가 뻗어나오듯 기능에 맞게 나누어 작업

현재 작업할 브랜치를 선택하는것 check out

Merge(병합, 머지)
브랜치를 다른 브랜치에 합치는 것입니다. 즉, 특정 브랜치의 commit 들을 다른 브랜치의 commit 내역에 모두 반영하는 것

실제 프로젝트에서는 언제나 issue 먼저 만들고 논의 - 할당한 후에 작업을 한다는 것!

Merge conflict(병합 충돌) 충돌 해결하기
에러를 내지않는것이 아니라 에러를 해결하는게 중요!

느낀점

git에 대해 기본적인것들과 git에 대해 많은 내용을 알게되었다. 복습을 통해서 기능들을 익숙하게 사용하도록 손에 익혀야겠다! 능숙한 프로그래머가 되려면 능숙하게 '버그'를 찾아내고 수정하는 법을 익혀야 한다. 프로그래밍을 하면서 던져야할 질문은 이것이 맞느냐 틀리느냐가 아니라 버그를 수정할 수 있느냐 없느냐다. 오늘 제일 인상깊었던 문장!

profile
🐶🦶📏

0개의 댓글