jen36 : 내 컴퓨터의 사용자 아이디
LAPTOP-HCM9AJI : 현재 PC이름
~ : 현재 폴더 위치
⚡ Git Bash를 시작하면 현재 폴더는 사용자의 홈 폴더에서 시작한다.
⚡ 윈도우 10 기준 : 'c:\Users\사용자ID' → 줄여서 '~'
⚡ 프롬프트 끝에 브랜치명이 보인다면 Git 작업 폴더라는 의미
명령어 | 내용 |
---|---|
pwd | 현재 폴더의 위치를 확인 |
ls -a | 현재 폴더의 파일 목록을 확인한다. -a 옵션을 이용하여 숨김파일도 볼 수 있다. |
cd | 홈 폴더로 이동한다. 홈 폴더는 사용자 이름과 폴더명이 같고 내 문서 폴더의 상위폴더이다. |
cd <폴더이름> | 특정 위치의 디렉토리로 이동한다. |
cd ../ | 현재 폴더의 상위 폴더로 이동한다. |
mkdir <새폴더이름> | 현재 폴더의 아래에 새로운 폴더를 만든다. |
echo "Hello Git" | 메아리 라는 뜻 화면에 " " 안의 문장인 "Hello Git" 을 표시한다. |
<폴더명 일부> + Tab | 폴더명 자동완성 |
git status | Git 워킹트리의 상태를 보는 명령어 워킹트리가 아닌 폴더에서 실행하면 오류가 발생한다. ⚡ 워킹 트리 = 작업이 일어나는 곳 |
git status -s | git status 명령 보다 짧게 요약해서 상태를 보여주는 명령 변경된 파일이 많을 때 유용하다. |
git inint | 현재 폴더에 Git 저장소 생성 현재폴더에 [.git]이라는 숨김 폴더가 생성된다. ⚡ [.git]폴더 = 로컬저장소, 커밋이 들어있다. |
⚡ 작업 폴더 = 워킹트리+로컬저장소 | |
git help <명령어> | 해당 명령어의 도움말을 표시한다. Ex) git help status / git help commit / git help add |
⚡ 시스템 환경 옵션 : PC 전체의 사용자를 위한 옵션
⚡ 전역 옵션 : 현재 사용자를 위한 옵션
⚡ 지역 옵션 : 현재 Git 저장소에서만 유효한 옵션
⚡ 우선 순위 : 지역 옵션 > 전역 옵션 > 시스템 환경 옵션
명령어 | 내용 |
---|---|
git config --global <옵션명> | 지정한 전역 옵션의 내용을 확인 |
git config --global <옵션명> <새로운 값> | 지정한 전역 옵션의 값을 새로 설정 |
git config --global --unset <옵션명> | 지정한 전역 옵션을 삭제 |
git config --local <옵션명> | 지정한 지역 옵션의 내용을 확인 |
git config --local <옵션명> <새로운 값> | 지정한 지역 옵션의 값을 새로 설정 |
git config --local --unset <옵션명> | 지정한 지역 옵션의 값을 삭제 |
git config --system <옵션명> | 지정한 시스템 옵션의 내용 확인 |
git config --system <옵션명> <값> | 지정한 시스템 옵션의 값을 새로 설정 |
git config --system --unset <옵션명> <값> | 지정한 시스템 옵션의 값을 삭제 |
git config --list | 현재 프로젝트의 모든 옵션 확인 |
명령어 | 내용 |
---|---|
git add 파일1 파일2 | 파일들을 스테이지에 추가 |
git commit | 스테이지에 있는 파일들을 커밋 |
git commit -a | add 명령을 생략하고 바로 커밋할 때 사용. 변경된 파일과 삭제된 파일은 자동으로 스테이징 되고 커밋 됨 Untracked 파일은 커밋되지 않는다. |
git push [-u] [원격저장소명] [브랜치 이름] | 현재 브랜치에서 새로 생성한 커밋들을 원격저장소에 업로드 -u 옵션으로 브랜치의 업스트림을 등록할 수 있다. 한 번 등록한 후에는 git push만 입력해도 된다. |
git pull | 원격저장소의 변경사항을 워킹트리에 반영 git fetch + git merge 명령어 |
git fetch [원격저장소명] [브랜치 이름] | 원격저장소의 브랜치와 커밋들을 로컬저장소와 동기화. 옵션을 생략하면 모든 원격저장소에서 모든 브랜치를 가져옴 |
git merge 브랜치이름 | 지정한 브랜치의 커밋들을 현재 브랜치 및 워킹트리에 반영 |
git reset [파일명] | 스테이지 영역에 있는 파일들을 스테이지에서 내림 (언스테이징) 워킹트리의 내용은 변경되지 않으며 옵션 생략시 스테이지의 모든 변경사항을 초기화 |
⚡ ...의 의미는 한 번에 여러 파일 이름을 지정할 수도 있다는 뜻
⚡ 커밋 메시지를 작성할 때 첫 줄고가 둘째 줄 사이는 반드시 한 줄 비워야 한다.
⚡ 첫 줄 : 작업 내용의 요약 (제목)
⚡ 셋째 줄 : 작업 내용 기록 (본문)
⚡ 커밋 메시지 작성 화면에서 커밋을 하고 싶지 않을 때 저장하지 않고 종료하면 커밋 명령어가 취소된다.
💫좋은 커밋 메시지 작성하기💫
명령어 | 내용 |
---|---|
git log | 현재 브랜치의 커밋 이력을 보는 명령 |
git log -n<숫자> | 전체 커밋 중 최신 n개의 커밋만 확인. 다른 옵션들과 조합해서 사용 가능 |
git log --oneline --graph --decorate --all | 자주 사용되는 옵션으로 간결하게 보여준다. ⚡ --oneline : 커밋 메시지 한줄로 요약 (생략시 detail 보여줌) ⚡ --graph : 커밋 옆에 브랜치의 흐름을 그래프로 보여줌 ⚡ --decorate : 브랜치와 태그등의 참조를 간결히 표시 ⚡ --all : all 옵션이 없을 경우 HEAD와 관계없는 옵션은 보여지지 않음. |
⚡ GitHub에서 새 repository를 만들 때 모든 옵션이 선택되지 않은 비어있는 상태로 프로젝트를 만들어야 저장소를 클론해와도 비어있는 폴더만 생기고 최초 커밋을 직접 생성할 수 있다.
⚡ 옵션을 선택하면 저장소를 클론해 왔을 때 이미 생성된 커밋과 앞으로 생성할 커밋이 충돌을 발생시켜 push --force
의 강제 push 를 진행해야 한다. (별로 좋지 않은 방법)
명령어 | 내용 |
---|---|
git remote add <원격저장소 이름> <원격저장소 주소> | 원격저장소 등록 여러개를 등록할 수 있으나 같은 별명의 원격저장소는 하나만 가질 수 있다. 통상 첫 번째 원격저장소를 origin으로 지정함 |
git remote -v | 원격저장소 목록 확인 |
git push -u origin master | push와 동시에 업스트림 지정 ⚡ 업스트림 브랜치 : 로컬저장소와 연결된 원격저장소 |
git clone <저장소주소> [새로운 폴더명] | 저장소 주소에서 프로젝트를 복제해 온다. 폴더명을 생략하면 프로젝트 이름과 같은 이름의 폴더가 새로 생성된다. ⚡ 저장소 주소가 꼭 원격일 필요는 없으며 로컬저장소도 복제가 가능하다. |
⚡ HEAD는 항상 현재 작업 중인 브랜치 혹은 커밋을 가리킨다.