Github & git 기본 명령어

김zunyange·2023년 2월 17일
0
post-thumbnail

Github는 협업시 필수인 소스 코드 열람과 더불어 간단한 버그 관리 및 SNS기능까지 지니고있어 개발자에겐 필수 서비스이다.

git: 프로젝트의 버전 관리를 도와주는 시스템
github: git을 이용해 버전관리를 한 프로젝트들을 관리하게 해주는 호스팅 서비스

우리는 무언가를 작업할 때 모든 걸 기억하지 못한다. 인간이 가진 한계가 있기 때문에 이 작업을 기억할 수 있도록 Git이라는 전지전능한 관찰자에게 도움을 요청한다고 생각해보자.

git에게 도움을 요청하면 git은 폴더 안에 변화를 모두 관찰한다.
도움을 요청하는 메시지가 바로 git init이다. 관찰을 원하는 디렉터리 안에서 git init을 외치는 순간 git이라는 관찰자를 소환한 것이다. (디렉터리 안에서라는 말은 터미널상 git에게 도움을 요청하려는 프로젝트 디렉터리에 위치해 있는 것을 말함)

하지만, 프로젝트 1개 당 1명의 관찰자만 고용해야 하기 때문에(TO가 1명) 즉, 디렉토리에 git init명령을 실행했다면, 그 안에 또 다른 디렉토리 안에서 같은 명령어를 실행한다거나 하면 안된다. 어차피 관찰자 1명이 디렉토리 안에 모든 것을 주시하기 때문이다.

Git은 크게 3가지 영역으로 되어 있다.

  1. 실제 작업하는 공간인 Working Directory
  2. 대기하는 공간인 Staging Area
  3. 최종 도착지점인 Repository

그리고 그사이엔 git addgit commit이 있다.

Working Directory에서 열심히 코드를 짜다가 어느 시점에서 저장하고 싶을때 관찰자(Git)에게 저장을 요청한다. 저장을 요청하는 메시지는 git add 이다.

그러면 Staging Area에 들어가는데 언제든 넣고 뺄 수 있다. 즉, 완전히 저장한 것은 아니고 임시로 주머니에 넣은 거라 할 수 있다.
이제 이것을 완전히 기억(저장)하고 싶어졌다. 최종적으로 주머니에 넣은 작업 상황들을 하나의 꾸러미로 포장을 해야 한다. 이것이 git commit이다. git commit을 하게 되면 Repository(.git)에 들어가서 관찰자의 꾸러미 리스트에 영원히 남게 된다.

하나의 커밋(Commit)을 하기 위해서 이런 플로우를 거치게 되는 것이다.


git init git 저장소 생성하기

  • init 은 초기화를 의미
  • 폴더에서 git 명령어를 사용할 수 있게 최초 세팅하는 명령어
  • 해당 폴더에 .git 이라는 파일이 생성됨
  • 버전 관리를 하고 싶은 디렉토리에서 해당 명령어 입력

git status 현재 상태 확인

git log 전체 로그 확인

  • 남겨진 commit 이력을 확인할 때 사용

git add 저장소에 코드 추가 준비

  • 파일 수정 이력을 기록하기 위한 준비, 기록 이전의 중간 단계
  • 특정 파일만 이력을 남기고 싶을 때: git add [파일 이름]
  • 변경된 파일 전체의 이력을 남기고 싶을 때: git add .

git commit 현재 상태 저장

- commit이란? Git Repository에 잘 포장된 꾸러미
- 꾸러미는 여러개 만들 수 있지만, 모두 연결돼있음
- Git Repository에 체크포인트(Check Point) 중 하나

git commit -m "message" 커밋 생성
git push origin [브랜치명] 원하는 브랜치로 push하여 원격 서버에 전송
git pull 원격 저장소의 변경 내용을 현재 디렉토리로 가져오기
git remote add origin [github 주소] github 주소와 연결

git branch [브랜치명] 브랜치 생성

여러 작업을 동시에 진행할 수 있도록 하는 것이 Git의 핵심 기능!
하나의 홈페이지를 만든다고 가정했을 때, 누구는 navbar, 누구는 articles, 누구는 footer를 만든다면, 그 역할마다 Branch를 생성하여 동시에 기능 작업을 수행할 수 있다.
git init이 관찰을 시작함을 알리는 그 순간 master(또는 main)이라고 하는 Branch가 자동으로 생성

git checkout [브랜치명] 해당 브랜치로 이동
git branch 원하는 브랜치로 이동했는지 확인
git merge [다른 브랜치 이름] 현재 브랜치에 다른 브랜치 수정사항 병합
git clone [https: ~~~~ ] 저장소 복제 및 다운로드

실습(레파지토리 생성 및 프로젝트 올리기)

mkdir 디렉토리 생성
cd 디렉토리로 이동
touch 빈 파일 생성
git init 새로운 Git 저장소(repository) 생성
: 깃 저장소를 초기화 시켜줘야지 일반폴더에서 -> 깃저장소로 변한다.

git status 바뀐 파일 확인
git add . 파일 추가
git commit -m "message" 커밋메시지 남기기
git remote add origin <복사한 주소> 레파지토리와 파일 연결
git push origin master/main 레파지토리에 파일 추가

💪🏻 원리만 이해한다면 git은 자유자재로 다룰 수 있다!! 아직은 넘 어려오..😵‍💫


출처 : https://teamdable.github.io/techblog/Git-Basic
출처 : https://github.com/jangjia01234/TIL/blob/main/documents/Session/git_github_230215.md

profile
배움은 즐거워 ~(*ૂ❛ᴗ❛*ૂ)

0개의 댓글