소스코드 버전 관리: 깃(Git) #4 CLI

Jiyoung Park·2020년 12월 28일
0

Git & GitHub

목록 보기
4/5
post-thumbnail

jen36 : 내 컴퓨터의 사용자 아이디
LAPTOP-HCM9AJI : 현재 PC이름
~ : 현재 폴더 위치
⚡ Git Bash를 시작하면 현재 폴더는 사용자의 홈 폴더에서 시작한다.
⚡ 윈도우 10 기준 : 'c:\Users\사용자ID' → 줄여서 '~'
⚡ 프롬프트 끝에 브랜치명이 보인다면 Git 작업 폴더라는 의미

Git Bash 기본 명령어

명령어내용
pwd현재 폴더의 위치를 확인
ls -a현재 폴더의 파일 목록을 확인한다.
-a 옵션을 이용하여 숨김파일도 볼 수 있다.
cd홈 폴더로 이동한다.
홈 폴더는 사용자 이름과 폴더명이 같고 내 문서 폴더의 상위폴더이다.
cd <폴더이름>특정 위치의 디렉토리로 이동한다.
cd ../현재 폴더의 상위 폴더로 이동한다.
mkdir <새폴더이름>현재 폴더의 아래에 새로운 폴더를 만든다.
echo "Hello Git"메아리 라는 뜻
화면에 " " 안의 문장인 "Hello Git" 을 표시한다.
<폴더명 일부> + Tab폴더명 자동완성
git statusGit 워킹트리의 상태를 보는 명령어
워킹트리가 아닌 폴더에서 실행하면 오류가 발생한다.
⚡ 워킹 트리 = 작업이 일어나는 곳
git status -sgit status 명령 보다 짧게 요약해서 상태를 보여주는 명령
변경된 파일이 많을 때 유용하다.
git inint현재 폴더에 Git 저장소 생성
현재폴더에 [.git]이라는 숨김 폴더가 생성된다.
⚡ [.git]폴더 = 로컬저장소, 커밋이 들어있다.
⚡ 작업 폴더 = 워킹트리+로컬저장소
git help <명령어>해당 명령어의 도움말을 표시한다.
Ex) git help status / git help commit / git help add

git config : 옵션 설정

⚡ 시스템 환경 옵션 : 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 명령어

명령어내용
git add 파일1 파일2파일들을 스테이지에 추가
git commit스테이지에 있는 파일들을 커밋
git commit -aadd 명령을 생략하고 바로 커밋할 때 사용.
변경된 파일과 삭제된 파일은 자동으로 스테이징 되고 커밋 됨
Untracked 파일은 커밋되지 않는다.
git push [-u] [원격저장소명] [브랜치 이름]현재 브랜치에서 새로 생성한 커밋들을 원격저장소에 업로드
-u 옵션으로 브랜치의 업스트림을 등록할 수 있다.
한 번 등록한 후에는 git push만 입력해도 된다.
git pull원격저장소의 변경사항을 워킹트리에 반영
git fetch + git merge 명령어
git fetch [원격저장소명] [브랜치 이름]원격저장소의 브랜치와 커밋들을 로컬저장소와 동기화.
옵션을 생략하면 모든 원격저장소에서 모든 브랜치를 가져옴
git merge 브랜치이름지정한 브랜치의 커밋들을 현재 브랜치 및 워킹트리에 반영
git reset [파일명]스테이지 영역에 있는 파일들을 스테이지에서 내림 (언스테이징)
워킹트리의 내용은 변경되지 않으며 옵션 생략시 스테이지의 모든 변경사항을 초기화

1. 텍스트 파일 생성하고 확인

2. 생성한 파일 스테이지에 추가

⚡ ...의 의미는 한 번에 여러 파일 이름을 지정할 수도 있다는 뜻

3. 스테이지에서 파일 언스테이지

4. 커밋

⚡ 커밋 메시지를 작성할 때 첫 줄고가 둘째 줄 사이는 반드시 한 줄 비워야 한다.
⚡ 첫 줄 : 작업 내용의 요약 (제목)
⚡ 셋째 줄 : 작업 내용 기록 (본문)
⚡ 커밋 메시지 작성 화면에서 커밋을 하고 싶지 않을 때 저장하지 않고 종료하면 커밋 명령어가 취소된다.

💫좋은 커밋 메시지 작성하기💫

  • 제목과 본문을 빈줄로 분리한다.
  • 제목은 50자 이내로 작성한다.
  • 제목을 영어로 쓸 경우 첫 글자는 대문자로 작성한다.
  • 제목에는 맞침표를 넣지 않는다.
  • 제목을 영어로 작성할 경우 동사원형(현재형)으로 시작한다.
  • 본문을 72자 단위로 줄바꿈한다.
  • 어떻게 보다 무엇과 왜를 설명한다.

log 명령어

명령어내용
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 masterpush와 동시에 업스트림 지정
⚡ 업스트림 브랜치 : 로컬저장소와 연결된 원격저장소
git clone <저장소주소> [새로운 폴더명]저장소 주소에서 프로젝트를 복제해 온다.
폴더명을 생략하면 프로젝트 이름과 같은 이름의 폴더가 새로 생성된다.
⚡ 저장소 주소가 꼭 원격일 필요는 없으며 로컬저장소도 복제가 가능하다.

⚡ HEAD는 항상 현재 작업 중인 브랜치 혹은 커밋을 가리킨다.


  • 참고서적: 팀개발을 위한 Git, GitHub 시작하기 (정호영, 진유림 저)
profile
병아리 분석가

0개의 댓글