개발공부/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
가 발생해 수동으로 해결해주어야 함