
Git은 파일의 변경 사항을 시간에 따라 추적하는 버전 관리 시스템(VCS : Version Control System)이다. 이를 통해 이전 버전으로 되돌아가거나, 수정사항을 비교, 프로젝트에 여러 사람들과 함께 공동 작업이 가능하다.
Github는 Git 저장소를 관리하는 클라우드 기반 호스팅 서비스이다. 로컬 파일을 Github 클라우드에 Push(업로드)하여 서로 다른 위치에 있는 여러 사용자가 작업할 수 있다.
1.저장소 (Repository, 'Repo/레포'라고 현업에서 부른다.)
2.커밋(Commit)
3.브랜치(Branch)
4.머지(Merge)
5.풀 리퀘스트(Pull Request)
README.md
gitignore
LICENSE
| 분류 | 명령어 | 내용 설명 |
|---|---|---|
| <새로운 저장소 생성> | git init | .git 하위 디렉토리 생성 (폴더를 만든 후, 그 안에서 명령 실행 => 새로운 git 저장소 생성) |
| <저장소 복제/다운로드(clone)> | git clone <https... URL> | 기존 소스 코드 다운로드/복제 |
git clone /로컬/저장소/경로 | 로컬 저장소 복제 | |
git clone 사용자명@호스트:/원격/저장소/경로 | 원격 서버 저장소 복제 | |
| <추가 및 확정(commit)> | git add <파일명> | 커밋에 담길 파일의 변경 사항을 포함 (인덱스에 추가된 상태) |
git add -A | 커밋에 파일의 변경 사항을 한 번에 모두 포함 | |
git commit -m "커밋 메시지" | 커밋 생성 (실제 변경사항 확정) | |
git status | 파일 상태 확인 | |
| 가지(branch)치기 작업 | git branch | 브랜치 목록 |
git branch <브랜치이름> | 새 브랜치 생성 (local로 만듦) | |
git checkout -b <브랜치이름> | 브랜치 생성 & 이동 | |
git checkout master | master branch로 되돌아 옴 | |
git branch -d <브랜치이름> | 브랜치 삭제 | |
git push origin <브랜치이름> | 만든 브랜치를 원격 서버에 전송 | |
git push -u <remote> <브랜치이름> | 새 브랜치를 원격 저장소로 push | |
git pull <remote> <브랜치이름> | 원격에 저장된 git 프로젝트의 현재 상태를 다운받고 + 현재 위치한 브랜치로 병합 | |
| 변경 사항 발행 (push) | git push origin master | 변경사항 원격 서버에 업로드 |
git push <remote> <브랜치이름> | 커밋을 원격 서버에 업로드 | |
git push -u <remote> <브랜치이름> | 커밋을 원격 서버에 업로드 | |
git remote add origin <등록된 원격 서버 주소> | 클라우드 주소 등록 및 발행 (git에게 새로운 원격 서버 주소 알림) | |
git remote remove <등록된 클라우드 주소> | 클라우드 주소 삭제 | |
| 갱신 및 병합 (merge) | git pull | 원격 저장소의 변경 내용이 현재 디렉토리에 가져와지고 (fetch) 병합 (merge) 됨 |
git merge <다른 브랜치이름> | 현재 브랜치에 다른 브랜치의 수정사항 병합 | |
git add <파일명> | 각 파일을 병합할 수 있음 | |
git diff <브랜치이름>..<다른 브랜치이름> | 변경 내용 merge 전에 바뀐 내용을 비교할 수 있음 | |
| 태그 (tag) 작업 | git log | 현재 위치한 브랜치 커밋 내용 확인 및 식별자 부여됨 |
| 로컬 변경사항 return 작업 | git checkout -- <파일명> | 로컬의 변경 사항을 변경 전으로 되돌림 |
git fetch origin | 원격에 저장된 프로젝트의 현 상태를 다운로드 |
$ git config --global user.name datalater
$ git config --global user.email the7mincheol@gmail.com
전체 config 리스트 확인(시용자 정보 확인)
git config --list
git config 설정된 계정 삭제하기
# global
git config --unset --global user.name
git config --unset --global user.email
# local
git config --unset user.name
git config --unset user.email
# 확장자가 .js 인 파일은 무시
*.js
# .js 파일들은 모두 무시되지만, test.js만은 무시하지 않음
!test.js
# 현재 디렉토리에 있는 /test.js파일은 무시되지만,
# subDir/test.js 같이 특정 디렉토리 하위에 있는 test.js는 무시되지 않음
/test.js
# node_modules/ 디렉토리에 있는 모든 파일을 무시
node_modules/
# src/ 하위의 .js파일만 무시
src/*.js
# src/ 하위에 존재하는 모든 디렉토리의 .txt 파일을 무시
src/**/*.txt
# 현재 디렉토리와 그 하위 디렉토리 내에 존재하는 모든 .js 파일을 무시
/**/*.js
# 현재 디렉토리 내에 존재하는 모든 .js .ts 파일 무시
/*.{js, ts}
# 현재 디렉토리 내에 있는 ex1.js ex2.js ex3.js 파일 무시
/ex[1-3].js
## 현재 레포지토리의 캐시를 모두 삭제한다.
git rm -r --cached .
## .gitignore에 넣은 파일 목록들을 제외한, 모든 파일들을 다시 추적(Track)하도록 설정
git add .
git status
## 커밋 메세지
git commit -m "Apply .gitignore"