Git :
코드의 변경점을 기록하는 것
소스코드 및 파일의 변경내역을 저장하는 분산 버전 관리 시스템
GitHub :
백업과 공유가 가능한 온라인 코드 저장소
Git을 관리해주는 웹 호스팅 서비스
버전관리 : 내가 만들어 냈던 결과물의 기록
게임할 때 세이브 포인트 두는 것과 비슷한 이유!
협업 도구: 효율적인 협업을 위한 여러 기능을 가지고 있음
개발자 사이의 커뮤니티 형성 :
다른 개발자들의 프로젝트 코드를 볼 수 있다. → 오픈 소스에 기여할 수 있다.
CLI (Command Line Interface)
직접 명령어를 입력하는 방식
GUI (Graphic User Interface)
마우스 클릭으로 명령하는 방식
❗ 개발자 입장에서 완전 기본. 꼭 외우기
❗ window 는 git bash 에서 진행하기
| 명령어 | 의미 | 비고 | |
|---|---|---|---|
| pwd | print working directory | 현재 내가 작업하고 있는 폴더를 보여줘 | |
| ls | list | 내 폴더 안에 있는 폴더, 파일 내역을 보여줘 | 숨겨진파일은 보통 . 으로 시작함 |
| ls -a | list all | 숨겨진 파일까지 모두 보여줘 | |
| cd <폴더명> | change directory | ls 에서 확인된 폴더로 이동 | 폴더명/폴더명 으로 한번에 더 깊은 폴더로 이동가능 |
| .. | 한단계 상위 폴더로 이동 | ||
| mkdir | make directory | 현재 경로에 폴더를 생성 | |
| touch 파일명 | 현재 경로에 파일 생성 | 더 정확히는 파일의 생성과 날짜, 시간을 변경하는 명령어 |
기본명령어
| 명령어 | 의미 | 비고 |
|---|---|---|
| git init | 코드관리를 시작함 | |
| git add | 저장할 코드를 추가함 | |
| git add . | 변경사항을 전부 저장할거라고 지정 | |
| git commit -m "등록할 메세지" | 등록할 메세지와 함께 코드를 저장 | |
| git status | 상태 확인 (저장여부, 변경상태) | Untracked/Tracked 로 분류됨 |
| git log | 저장 내역 확인 | log가 길면 q를 눌러 빠져나올수있음 |
| git --version | git 버전 확인 | |
| git diff | 최근 commit 한 내용과 현재 폴더의 변경사항 확인 |
협업용 명령어
| 명령어 | 의미 |
|---|---|
| git push | 수정한 코드를 git hub에 반영 |
| git clone | Github의 코드 복사 |
| git pull | 다른 사람이 변경한 코드를 내 코드로 가져옴 |
| git merge | 브랜치를 결합함 |
stash 명령어
| 명령어 | 의미 |
|---|---|
| git stash | 코드를 임시저장 |
| git stash list | 여러번 stash 했을 때 저장한 stash 목록 확인 |
| git stash apply | 했던 작업 다시 가져오기 |
| git stash drop | 스택에 남아있는 stash 제거 |
| git stash show -p | git apply -R |
branch 명렁어
| git branch | 현재 브랜치 목록과 현재 브랜치 확인 | |
|---|---|---|
| git branch 브랜치이름 | 현재 시점에 브랜치 생성 | 브랜치이름 뒤에 main 입력할경우 main에서 파생되는 브랜치 생성 |
| git checkout 브랜치이름 | 기재한 브랜치로 이동 | |
| git branch -D 브랜치이름 | 기재한 브랜치 삭제 |
mkdir git-test // 작업할 디렉토리 생성
cd git-test // 생성한 디렉토리로 이동
git init // 현재 디렉토리를 Git 저장소로 만듦
git status
status를 사용하면 파일의 상태에 따라 Untracked와 Tracked로 분류된다.
Untracked : 파일 생성 후 한번도 git add하지 않은 상태 (관리 대상이 아님)
Tracked : git이 관리하는 파일
git add 후의 상태)git diff
add 하기 전 최근 commit한 내용과 현재 폴더의 변경사항을 확인
나뭇가지라는 뜻 그대로 가지를 뻗어나오는 것처럼 여러명이 동시에 작업을 할 때 다른 사람의 작업에 영향을 주거나 받지 않도록 각자의 가지를 만드는것
깨진 구슬 50개, 낡은 나뭇가지 40개 모으는 퀘스트를 파티로 효율적으로 깨기위해서
다른 곳에서 모으러 흩어지는거 각자 모으고 나중에 merge로 합쳐서 npc 제출하면되는거임
브랜치를 효율적으로 사용하기 위한 전략
Main(master) , Develop, Release, Feature, Hotfix 이렇게 다섯 종류의 브랜치를 사용한다.
main(master)
develp
release
feture
hotfix
충돌 해결하고 다시 커밋하라고 뜰 때
1. <<<<<HEAD 삭제
2. =====삭제
3. >>>>>어쩌구 삭제
4. 원하는 코드로 수정
5. git add , commit, push