개발공부/Git

[Git] CLI 및 Git 명령어

jnnjnn 2024. 4. 1. 20:03

CLI 명령어

명령어 실행결과
pwd 현재 작업 디렉토리 출력
mkdir 새 디렉토리 만들기
rmdir 디렉토리 지우기 (디렉토리가 비었을 때만
ctrl + L 화면 지우기
cd 디렉토리 변경
cd .. 상위 디렉토리로 이동
cd - 직전 작업 디렉토리로 이동
touch 새 파일 만들기
ls 현재 디렉토리의 파일목록 보기
ls -l 자세히 보기
ls -a 숨겨진 파일도 보기
ls -al 숨겨진 파일까지 자세히 보기
echo 출력하기
> 왼쪽 출력을 오른쪽으로 보내기
>> 왼쪽 출력을 오른쪽에 추가
cat 파일 내용 보기

GIT 명령어

명렁어 실행결과
git init 현재 폴더를 git이 버전관리 하는 폴더로 만듬
git add 커밋 후보로 올림(stage, index)
git add -A 모든 변경파일 stage
git add . 현재 폴더내의 모든 변경 파일 stage
git status 현재 디렉토리의 상태 보기
git commit 현재 파일들의 (변경) 정보 (snapshot)를 저장
git commit -m 커밋 메시지와 함께 커밋
git commit -a stage와 커밋 한번에 하기
git commit -am 커밋 메시지와 stage, 커밋 한번에
git commit --amend -m 마지막 커밋 메시지 변경
git log 커밋 히스토리 보기
git log --all 모든 히스토리 보기
git log --oneline 로그를 한 줄로 보기
git log --graph 그래프로 보기
git checkout 다른 커밋으로 이동
git checkout -b 브런치 생성 후 이동
git switch 브랜치 이동
git switch -c 브랜치 생성 후 이동
git branch 브랜치 목록 보기
git branch -v 자세히 보기
git branch - a 모든 브랜치 목록
git branch 별칭 커밋ID 특정 커밋에 별칭 붙이기
git branch 별칭 현재 커밋에 브랜치 생성
git reset (--mixed) 이전 커밋으로 돌아가기(modified)
git reset --soft 이전 커밋으로 돌아가기(staged)
git reset --hard 이전 커밋으로 돌아가기(unmodified)
git diff 스테이지와 워킹 디렉토리 비교
git rebase -i 커밋 정리하기
git rebase 브랜치명 현재 브랜치 시작 기준을 대상브랜치로 변경
git merge 대상브랜치명 현재 브랜치에 대상브랜치명을 반영
git remote add 새 원격리포지토리 추가
git remote 원격 리포지토리 목록 보기
git remote -v 원격 리포지토리 목록 자세히 보기
git clone 원격리포지토리 최초로 받기
git fetch 원격리포지토리의 변경 사항 가져오기
git pull 원격리포지토리의 변경 사항을 fetch, merge
git config --global alias.별칭 명령어 명령어를 별칭으로 치환

Git 용어

HEAD : 현재 위치
HEAD~n : 현재 커밋의 n번째 전 커밋(부모)

branch :

특정 커밋의 별칭, 독립적인 작업관리의 영역(통합브랜치)

master : 자동으로 생성되는 최초의 브랜치(작업브랜치)

파일의 상태

  • Untracked : add 하지 않은 파일. tracked 되지 않으며 .gitignore에 넣어 Untracked 상태를 유지할 수 있다
  • Unmodified : Commit 후 수정되지 않은 상태
  • Modified : 수정된 상태이며 아직 Staged에 올리지 않은 상태
  • Staged : Modified 파일을 Stage에 올린 후 Commit하지 않은 상태

merge

  • fast-forward : 이전 버전에서 변경된 내용이 없는 경우 새로운 버전을 이전 버전 위에 덧붙여 적용
  • 3 way merge : 두 개 이상의 브랜치에서 변경한 내용을 합병. 충돌 사항이 없는 경우 merge conflict 없이 자동으로 병합되지만 동일한 파일을 변경했을 경우 merge conflict가 발생해 수동으로 해결해주어야 함