[Git | Github] 간단한 개념 정리

조용원숭이·2022년 8월 16일
0

Git

목록 보기
1/1
post-thumbnail

언제든지 꺼내 볼 수 있게 개념만 정리해 놓았습니다.
틀린 부분 지적 환영합니다!


1. Git 이란?

소스 코드의 버전 관리를 위한 시스템이다.
여러 사람과 협업을 하는 경우에 주로 사용하며, 소스 코드 수정 이력을 남기고 언제든지 그 이력으로 돌아가기 위함!

2. Git != Github

Git은 앞서 설명했던 것처럼 소스 코드의 버전 관리를 위한 시스템 중 하나이고,
Github는 로컬 Git 저장소를 인터넷에 업로드 할 수 있는 원격 저장소이다.

3. Git Commands

  1. git clone "레포지토리 주소" (optional: "폴더 이름")

    • 프로젝트의 원격 저장소에서 프로젝트 파일을 복제한다.
    • 프로젝트 주소 뒤에 폴더 이름을 기입하면 프로젝트 파일이 해당 폴더 내에 생성이 된다.
    • 프로젝트를 복제해온 후 "cd 프로젝트 이름" 혹은 "cd 폴더 이름"
  2. git add "파일이름.확장자"

    • 파일을 스테이징 영역으로 보낸다.
    • "파일이름.확장자" 부분에 와일드카드 문자(*, . 등)을 넣어서 Workspace의 모든 파일을 add 할 수 있지만, 진짜 비추한다고 한다. (버전 관리를 대충하는 사람처럼 보인다고...)
    • VSCode에서 GUI로 작업 하는게 더 편하다고 함!

스테이징 영역(Staging Area)란?

작업 공간(Working Directory)에서 파일을 git add로 올리면 스테이징 영역(Staging Area)로 올립니다. 이는 커밋(commit)을 기다리는 파일들이 모여있는 영역으로, 최종적으로 commit을 하면 스테이징 영역에 있는 파일들이 저장소(Repository)로 저장됩니다. (ref: https://iseunghan.tistory.com/322)

  1. git branch (optional: "브랜치 이름")
    • 현재 저장소의 모든 브랜치를 확인하고, 현재 브랜치를 확인한다.
    • branch 뒤에 브랜치 이름을 입력하면 브랜치를 생성할 수 있다.

브랜치(branch)란?

Git을 통해 여러 사람이 협업을 하게 되면 작업하는 사람들마다 여러 버전의 소스코드가 만들어질 것입니다. 이렇게 되면 코드 관리가 복잡해질 수 있기 때문에, 브랜치(branch)라는 독립적인 작업 공간을 만들어서 여러 개발자들이 동시에 작업을 할 수 있게 하였습니다.

각자의 작업 공간에서 작업을 하고 나서 기존의 버전과 비교하여 새로운 버전을 생성할 수도 있습니다. (ref: https://backlog.com/git-tutorial/kr/stepup/stepup2_3.html)

  1. git checkout "브랜치 이름"

    • "브랜치 이름" 이란 브랜치로 전환한다.
    • checkout 뒤에 "-b" 인자를 붙여주면 브랜치 생성과 동시에 전환이 가능하다.
  2. git commit -m "변경 내용"

    • 현재 작업중인 브랜치에 코드 변경 이력을 기록한다.
  3. git push origin "브랜치 이름"

    • 브랜치에서 작업한 내용들을 원격 저장소로 업로드한다.
    • 주의: 여러 사람과 협업하면서 브랜치를 나눠 작업을 하고 있는데, 바로 master/main 브랜치로 업로드를 하게 되면 대참사가 발생할 수 있다.
      : 따라서 master/main 브랜치로 바로 업로드 하는 습관이 있다면.. 고치자.
  4. git merge "브랜치 이름"

    • 다른 브랜치에서 변경된 내용을 현재 브랜치와 병합한다.
  5. git pull origin "브랜치 이름"

    • 원격 저장소에서 변경된 내용을 브랜치에 업데이트 한다.
    • git fetch + git merge 라고 보면 된다. (가져온 후 병합)

4. GitHub Co-op Workflow

💡 Base Repository가 있다고 가정하고 진행합니다.

  1. 프로젝트 레포지토리 클론 (git clone "레포지토리 주소")
  2. 로컬 Git 저장소에서 branch 생성 (git checkout -b "브랜치 이름")
  3. 작업한다! (ex: feature, code refactoring ...etc)
  4. 추가/수정한 파일을 스테이징 영역을 보내기 (git add "파일")
  5. 커밋하기 (git commit -m "커밋메시지")
  6. 브랜치에 push (git push origin "브랜치")
  7. 현재 브랜치에서 작업이 모두 완료되면 메인 브랜치로 스위치 (git checkout "main branch name")
  8. Pull Request 보내기 (git push origin "브랜치")
  9. 리퀘스트 컨펌 후 메인 브랜치와 merge

0개의 댓글