Git/Github 버전관리?

패스트 캠퍼스 온라인 강의를 통하여 독학할때 배웠던 git 버전관리는 터미널을 이용하였다. 항해 99를 개강 전 제공받은 온라인 강의에서는 git 도구인 소스트리를 이용하여 git 을 사용한다. 소스트리를 이용하여 로컬 리포지토리를 생성하여 원격 리포지토리인 git hub에 푸쉬하기전 commit/history 를 바로 볼 수 있다는 장점이 있었다.

개념정리

  • Git 으로 무엇을 할 수 있을까요?

    • Git 은 프로젝트의 버전 관리를 위한 도구입니다. 자세한 방법은 다음 챕터에서 배워볼게요! 먼저 어떤 걸 할 수 있는지부터 봅시다!

      1. 버전 관리를 할 수 있어요!

      2. 작업 단위 나누기

      • 프로그래밍 하다보면 분명 아까는 되었는데 지금 코드 고치니까 프로젝트가 동작 안하는 순간이 있어요. 기능을 완성할 때마다 작업 내역을 저장하면 어떤 부분을 만들 때 에러가 발생했는지 쉽게 파악할 수 있어요.
      1. 협업해서 하나의 프로젝트를 만드는데 유용해요.
      • 프로젝트를 나누어서 작업하고 하나로 합치는 것이 편합니다. 누가, 언제, 어떤 부분을 수정했는지를 한 눈에 파악할 수 있어요.

      • 만약 Git 을 사용하지 않고 프로젝트 파일을 덮어쓰는 형태로 관리한다면 다른 사람이 작업한 내용을 내 파일로 덮어써버리는 비극이 발생할 수 있어요 😭

      • Git 을 사용하면 같은 파일명의 내용이 어떤 부분이 다른지를 자동으로 비교하고, 어떤 것을 반영할지 선택할 수 있어요.

  • Github 으로 무엇을 할 수 있을까요?

    • Git 과 Github 은 다릅니다! Github 은 Git 원격 저장소 + Git 으로 할 수 있는 커뮤니티 기능 서비스입니다.
    • 즉, Github 은 Git 으로 된 프로젝트 저장 공간을 제공하고, Git 편하게 사용하기 위한 여러가지 부가기능을 가지고 있어요. Git 이 협업할 때 필수! 라고 했었죠? Github 에는 협업하기 위한 기능들을 가지고 있어요. 마치 개발자들의 SNS 같답니다.
    • Github 외에도 Git 프로젝트 저장소 + 프로젝트 관리하는 기능을 제공하는 곳으로는 대표적으로 Gitlab, bitbucket 등의 서비스가 있어요.
    1. 인터넷으로 연결되어있는 프로젝트 저장소

    2. 개발자들의 커뮤니티

    • 다른 사람 공개 프로젝트 구경하고, 내가 관심있는 주제/ 프로젝트 소식 받아볼 수 있어요.

    • 프로젝트 함께 만드는데 참여하는 것 즉 '프로젝트에 기여하기(contribution)' 하기 위한 여러 기능도 제공합니다. 이 부분 버그(프로그램 오류,오작동)가 있어요! 알리고 프로젝트를 개선시키려면 어떤게 필요할까? 토의할 수도 있어요.

  • sourcetree 는 뭐죠?

    • sourctree 는 Git 을 쉽게 사용할 수 있는 도구입니다. 워드 파일을 편집할 때 MS office 를 사용하는 것처럼요!
    • 🔥 우리가 sourcetree 로 배우는 이유!
      1. 전 세계에서 가장 많이 사용되는 Git 도구 중에 하나입니다. 스스로 공부할 때도 참고할 만한 자료가 많습니다.
      2. 초심자부터 중급자까지 사용할 수 있도록 여러가지 기능을 제공합니다. 한 번 배워두면 편하겠죠?
      3. Git 사용 패턴에 집중하기 위해서!
        • 우리의 목표는 Git 사용 패턴을 이해하고 익숙해지는 것! 사용법 암기가 아니랍니다. 명령어 사용하는 것까지 한 번에 둘 다 배우면 우리가 진짜로 배우고 싶은 Git 사용에 집중하지 못할 수 있어요! - Git 은 여러가지 방법으로 사용할 수 있어요. 아래처럼 터미널에 명령어를 직접 입력할 수도 있죠(이런 방법을 CLI 라고 불러요).

용어정리

  • 버전 관리: 프로젝트 상태가 변경되는 정보를 알고 있다는 것입니다. Git 은 가장 널리 쓰이는 버전관리 도구 중에 하나로 commit 을 사용해서 버전이 달라지는 것을 관리합니다.

  • git 초기화(git initialize) : 컴퓨터에 있는 프로젝트를 Git 이 관리하는 프로젝트로 만들 수 있습니다. 앞으로 Git 으로 관리할꺼야! 하고 설정해주면 됩니다. 이 작업을 한다고 표현합니다.

  • commit : 현재 프로젝트의 상태를 찰칵 📸 저장하는 것을 이라고 합니다.

    • 누가(author), 언제 commit 했는지의 정보와 프로젝트 변경 내용
    • 작업내역이 어떤 것인지 알아볼 수 있게 적는 메시지를 'commit 메시지'라고 합니다.
  • add (혹은 staging, 스테이징) : commit 에 반영할지 안할지는 파일 단위로 선택할 수 있습니다. commit 에 반영할 파일을 선택하는 것

  • commit history : commit 한 순서대로 리스트. 역사!

  • repo : 'Git으로 관리되는 프로젝트' 를 Git 에서는 repo(리포, repository 리포지토리의 약자) 라고 부릅니다. 내 컴퓨터에 저장되어있는 리포지토리를 로컬 repo(local repository) 라고 합니다. Github 처럼 다른 곳에서 접속할 수 있는 공간에 저장되어있는 것을 원격 repo(remote repository) 라고 합니다.

  • Tracking(추적) : 로컬 repo 와 원격 repo 를 연결한다!

  • push : 로컬 repo 의 commit 들을 원격 repo 에 반영하기(push)! 밀어넣기. 원격 repo 에 없는 즉,새로운 commit 내역을 모두 원격 repo 에 한 번에 반영합니다.

  • pull : 원격 repo 의 commit 들을 로컬 repo 로 반영하기(pull)! 땡겨오기. 로컬 repo 에 없는 즉,새로운 commit 내역을 모두 로컬 repo 에 한 번에 반영합니다.

  • clone : 원격 repo 를 내 컴퓨터에 가져와서 초기 repo 세팅하는 것을 clone(복제하기)!

JP
이중표Frontend Engineer

3년차 프론트엔드 개발자. Next.js, React, TypeScript 기반 웹 애플리케이션 개발 전문. 대규모 트래픽 환경에서 SSR·ISR 렌더링 전략 설계 경험.

이력서 보기