Github는 협업시 필수인 소스 코드 열람과 더불어 간단한 버그 관리 및 SNS기능까지 지니고있어 개발자에겐 필수 서비스이다.
git: 프로젝트의 버전 관리를 도와주는 시스템
github: git을 이용해 버전관리를 한 프로젝트들을 관리하게 해주는 호스팅 서비스
우리는 무언가를 작업할 때 모든 걸 기억하지 못한다. 인간이 가진 한계가 있기 때문에 이 작업을 기억할 수 있도록 Git
이라는 전지전능한 관찰자에게 도움을 요청한다고 생각해보자.
git에게 도움을 요청하면 git은 폴더 안에 변화를 모두 관찰한다.
도움을 요청하는 메시지가 바로 git init
이다. 관찰을 원하는 디렉터리 안에서 git init
을 외치는 순간 git이라는 관찰자를 소환한 것이다. (디렉터리 안에서라는 말은 터미널상 git에게 도움을 요청하려는 프로젝트 디렉터리에 위치해 있는 것을 말함)
하지만, 프로젝트 1개 당 1명의 관찰자만 고용해야 하기 때문에(TO가 1명) 즉, 디렉토리에 git init
명령을 실행했다면, 그 안에 또 다른 디렉토리 안에서 같은 명령어를 실행한다거나 하면 안된다. 어차피 관찰자 1명이 디렉토리 안에 모든 것을 주시하기 때문이다.
- 실제 작업하는 공간인
Working Directory
- 대기하는 공간인
Staging Area
- 최종 도착지점인
Repository
그리고 그사이엔 git add
과 git commit
이 있다.
Working Directory
에서 열심히 코드를 짜다가 어느 시점에서 저장하고 싶을때 관찰자(Git)에게 저장을 요청한다. 저장을 요청하는 메시지는 git add
이다.
그러면 Staging Area
에 들어가는데 언제든 넣고 뺄 수 있다. 즉, 완전히 저장한 것은 아니고 임시로 주머니에 넣은 거라 할 수 있다.
이제 이것을 완전히 기억(저장)하고 싶어졌다. 최종적으로 주머니에 넣은 작업 상황들을 하나의 꾸러미로 포장을 해야 한다. 이것이 git commit
이다. git commit
을 하게 되면 Repository(.git)
에 들어가서 관찰자의 꾸러미 리스트에 영원히 남게 된다.
하나의 커밋(Commit)을 하기 위해서 이런 플로우를 거치게 되는 것이다.
git init
git 저장소 생성하기
git status
현재 상태 확인
git log
전체 로그 확인
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