Git 기본 사용법

김두현·2023년 2월 21일
14

Backend Curriculum

목록 보기
15/16
post-thumbnail

Goal

  • Git을 통한 Github 원격 저장소와의 데이터 교환을 해보자.
    1. git init
    2. git clone
    3. git remote
    4. git pull
    5. git add
    6. git commit
    7. git push

  • 위 과정을 직접 수행해보며 익혀보자!

git init

  • git init : 새로운 Git 저장소를 생성한다.

    1. 먼저, Desktop에 원격 저장소와 소통할 폴더를 만들어줍시다!
    • mkdir GIT_TEST
    1. 생성한 폴더에 들어가, git init 명령을 통해 새로운 Git 저장소를 만들어줍시다!
    • 이로써 GIT_TEST 폴더 안에 Git 저장소를 생성했습니다.
      기본 branch로 master가 만들어졌음을 확인할 수 있네요!

git clone

  • git clone : 원격 저장소를 로컬 저장소에 복제한다.
    • 기본 형태 : git clone 원격 저장소의 주소

    1. 우선, 복제하고자 하는 저장소가 있어야겠죠?
      저는 제 Github의 GIT_Study를 복제해보겠습니다!
    2. 이제 git clone 명령을 통해 GIT_TEST 폴더에 복제해옵시다!
      이때, 원격 저장소의 주소는 윗 사진의 Code 버튼을 눌러 확인 가능합니다.
      성공적으로 복제하였음을 확인할 수 있습니다.

git remote

  • git remote : 원격 저장소를 관리한다.
    • 어느 저장소로부터 pull을 하고 push를 할 것인지 Git에게 알려줘야한다!
    • 기본 형태
      1. git remote -v : 현재 연결된 저장소를 보여준다.
      2. git remote add 원격 저장소의 이름 원격 저장소의 주소
      3. git remote rm 삭제할 저장소의 이름
  1. 아직 관리할 저장소를 알려주지 않았기때문에, git remote -v를 입력해도 아무것도 뜨지않음을 확인할 수 있다.
  2. 따라서, git remote add를 이용해 원격 저장소를 Git에게 알려주자!정상적으로 연결되었음을 확인할 수 있다.

git pull

  • git pull : 원격 저장소의 변경된 파일을 가져온다.
    • 기본 형태 : git pull 원격 저장소의 이름 branch 이름
    • Github repository를 생성하면 default로 main이라는 이름의 branch가 생성된다.
    • clone vs pull ?
      • clone : 로컬 저장소와 원격 저장소가 동일해진다.
      • pull : 로컬 저장소의 기존 작업물이 유지된 채 원격 저장소의 변경된 내용을 가져온다.
  1. git remote를 통해 작업할 저장소를 알려줬으니, 이제 그 저장소로부터 변경된 파일을 가져와보자!필자는 여러가지를 작업해본 후 pull하여 "이미 업데이트 상태입니다."라는 문구가 떴으나, 처음 pull을 작업했다면 위 사진과같이 GIT_TEST 폴더 안에 변경된 파일이 업로드 되었음을 확인할 수 있다.
  • 위에서 설명한 clone과 pull의 기능 차이에 따른 목적의 차이로 인해,
    다른 위치에 업로드되는 것또한 확인 가능하다.

git add

  • git add : 변경된 내용을 staging area에 추가한다.
    • commit 이전에 변경된 내용들을 모아놓는 역할로서, 저장소에 영향을 미치지 않는다.
    • Staging Area : 작업 디렉토리와 Git 저장소의 다리 역할.
      원하는 파일만 commit 하게끔 하여, 버그 추적 및 roll back이 수월해진다.
    • 기본 형태 : git add 옵션
  1. 그러면, 본격적으로 pull한 파일을 수정하기 전에 GIT_Study의 내용을 확인해두자.
    Lorem Ipsum1 파일을 작업해보도록 하자!

  2. 이제 로컬에서 Lorem Ipsum1 파일을 다음과같이 수정해보자.

  3. 수정을 마쳤으니, 변경된 내용을 git add . 명령을 통해 staging area에 넘기자.
    그리고 git status를 통해 내역을 확인해보자!
    커밋할 변경 사항에 Lorem Ipsum1이 잘 반영되었음을 알 수 있다.

git commit

  • git commit : push할 파일을 확정한다.
    • 기본 형태 : git commit -m "수정된 내용에 대한 설명"
  1. 모두가 알 수 있도록 수정 내용을 반영하여, git commit을 통해 원격 저장소에 반영할 파일을 확정지어주자!

    git log를 통해 commit된 내역또한 확인해보았다. 내역은 내용이 길어 확인 후 :wq로 종료해 캡쳐화면에는 보이지 않는다.

git push

  • git push : commit된 내용을 원격 저장소에 업로드한다.
    • 기본 형태 : git push 원격 저장소의 이름 branch 이름
  1. 마지막으로, 내가 수정한 내용을 드디어 원격 저장소에 올릴 차례!
    git push를 통해 업로드하자.
    이때 Username과 Password를 입력하라고 하는데, Password는 Github 비밀번호가 아닌 이곳에서 발급받는 키체인을 입력하는 것이다.
    키체인 암호를 입력하라고 한다.

  2. 그렇다면, 정말로 원격 저장소에 반영되었는지 확인해보자!
    😍 수정본이 정상적으로 업로드되었음을 확인할 수 있다.

마치며

git push 이후에 알게 된 사실인데, 로컬 저장소에서는 커맨드에서 볼 수 있듯이 master라는 branch에서 작업을 하고 Github의 main이라는 branch로 push 하였기때문에 따로 Pull Request를 수락해야 Merge가 가능했다.

  • 즉, branch가 통일되지 않아 Pull Request 수락이 필요하다.

  • Pull Request를 거치지 않고 push하고싶다면?
    • 로컬 저장소에서도 main이라는 이름의 branch를 생성하여,
      같은 branch에서 작업이 이루어지도록 한다!
      로컬 branch가 main으로 변경된 모습이다.

✨오늘 내용은 여기까지✨


커리큘럼 남은 일정

인터넷

  • 인터넷 작동 원리
  • HTTP란?
  • 브라우저 동작 원리
  • DNS 작동 원리
  • 도메인 네임이란?
  • 호스팅이란?

    기본적인 프론트엔드 지식
  • HTML
  • CSS
  • JavaScript

    OS 및 일반적인 지식
  • 터미널 사용방법
  • OS 작동 방식
  • 프로세스 관리
  • 스레드와 동시성
  • 기본적인 터미널 명령어
  • 메모리 관리
  • 프로세스간 통신 (IPC)
  • 입출력(I/O) 관리
  • POSIX 기초
  • 기본적인 네트워크 개념

    버전 관리
  • Git 기본 사용법

    DataBase
  • PostgreSQL (변경 가능성 있음)
  • MongoDB

    DataBase 상세 정보
  • ORM
  • ACID
  • Transaction
  • N + 1 Problem
  • DataBase 정규화
  • Index와 작동 방식

    API
  • 인증
  • REST
  • JSON APIs

    캐싱
  • CDN
  • Server side
  • Client side

    웹 보안 지식
  • MD5, SHA family, scyrpt, bcrypt
  • HTTPS, CORS, SSL/TL, 보안 정책

    Testing
  • 통합 테스트
  • 단위 테스트
  • 기능 테스트

  • CI/CD

    개발과 설계 원칙
  • SOLID
  • KISS
  • YAGNI
  • DRY

    아키텍처 패턴
  • 모놀로틱 앱
  • 마이크로서비스
  • SQA
  • Serverless

    검색 엔진
  • ElasticSearch

    메세지 브로커
  • RabbitMQ, Kafka

    컨테이너화 vs 가상화
  • Docker

    GraphQL
  • Apollo

  • 웹 소켓

  • 웹 서버

    확장성
  • 측정, 모니터링, 원격측정
  • 마이그레이션 전략
  • 수평적 확장 vs 수직적 확장
  • 관찰 가능성을 고려한 확장

참고 자료


💕오류 지적 및 피드백은 언제든 환영입니다. 복제시 출처 남겨주세요!💕
💕좋아요와 댓글은 큰 힘이 됩니다.💕
profile
I AM WHO I AM

4개의 댓글

comment-user-thumbnail
2023년 2월 22일

잘봤어~~ 너도 맥북쓰는구나! ㅋㅋ
혹시 MySQL 안 했으면 PostgreSQL 전에 먼저 해도 좋을거같아!

1개의 답글
comment-user-thumbnail
2023년 2월 27일

맥 쓰시는 게 부럽습니다. 저는 언제쯤 스벅 입장권을 획득할 지...! ㅎㅎ

1개의 답글