-
git init
현재 디렉토리를 git이 관리하는 프로젝트 디렉토리(working directory)로 설정하고 그안에 레포지토리(.git 디렉토리) 생성
- 레포지토리 : 프로젝트 디렉토리의 각 버전이 담기는 저장소
git reset [파일 이름]
git add를 하고 취소할 때 쓴다. 현재 staging area에서 파일 제거. working directory는 그대로 남아있음.
git commit
git commit -m "커밋 메시지" 로 커밋을 남길 수 도 있지만 -m 없이 사용도 가능하다.
git commit 이라고만 쓰고 실행하면 커밋 메시지를 입력할 수 있는 텍스트 에디터 창이 뜬다. 커밋 메시지를 제목과 본문으로 길게 작성하고 싶을 때나, merge하고 git commit 커맨드만 써주면 자동으로 merge 관련 메시지가 작성된다.
git commit --amend
최신 커밋메시지를 수정해서 다시 새로운 커밋으로 만든다.
git diff [커밋 A 아이디] [커밋 B 아이디]
두 커밋 간의 차이 비교
git reset [옵션] [커밋 아이디]
--soft : HEAD가 특정 커밋을 가리키도록 이동시킴
--mixed : staging area도 특정 커밋처럼 리셋. 옵션 생략시 --mixed 옵션 적용
--hard : working directory도 특정 커밋처럼 리셋
git tag [태그 이름] [커밋 아이디]
특정 커밋에 태그를 붙임. 새로운 버전의 시작을 알릴 때 씀
git merge --abort
머지를 하다가 충돌이 발생했을 때, 머지 작업을 취소하고 이전 상태로 돌아간다.
git push -u [리모트 레포지토리] [로컬 브랜치]
ex) git push -u origin master
로컬 레포지토리에 있는 master 브랜치의 커밋들을 origin이라는 리모트 레포지토리에 보낸다는 뜻이다.
-u : --set-upstream의 약자
-u 옵션을 주면 로컬의 master 브랜치가 origin의 master 브랜치를 tracking(추적)하는 걸로 설정된다.
이렇게 맺어진 연결 상태를 tracking connection이라고 한다.
tracking connection이 설정되면 그 이후부터는 git push, git pull이라고만 써도 리모트 레포지토리의 master 브랜치를 대상으로 동작한다.
git fetch
git merge 커맨드는 수정없이(서로 겹치는 코드가 없을 때) merge 될 때가 있다.
merge 하기 전에 fetch로 커밋들을 가져오기만 하고 diff 커맨드로 한번 더 확인할 수 있다.
git blame [파일 이름]
특정 파일 내용을 한줄씩 어떤 커밋에 의해 생긴 것인지 출력한다. 누가 코드를 작성했는지 파악할 때 쓴다.
git revert [되돌리고 싶은 커밋 id]
git push를 하고 remote repository에 올라간 상황이다. 그런데 push한 내용이 필요가 없어졌다.
로컬에서 내용을 지우고 다시 commit, push를 해도 되지만 이 동작을 한번에 해주는 커맨드가 git revert이다.
git reset이랑 헷갈릴수 있는데 git reset으로 되돌리고 push하면 리모트 레포지토리와 내용이 달라져서 pull을 써라는 오류가 생긴다. git reset은 push하기전에 쓰도록 하자.
- 여러 커밋 한번에 취소하고 싶을 때
이전에 push한 커밋 코드들을 없애고 싶을 때, git revert [해당커밋의 이전id..해당커밋id까지]
git reflog
git reset을 쓰고 git log로 확인 못했을 때 reflog는 모든 헤드기록을 보여준다.
git log --pretty=oneline --all --graph
모든 브랜치 커밋 히스토리를 그래프로 보고싶을 때
git rebase [브랜치 이름]
커밋 기록을 깔끔하게 남기고 싶을때
merge랑 비교하면 merge는 머지기록을 남기고 싶을때
git stash
작업을 하고 있는데 빨리 다른 브랜치로 가야해서 커밋을 할 상황이 안될때, 스택에 데이터를 넣는다.
git stash list : 스택에 데이터를 보여준다.
git stash apply [커밋 아이디] : 데이터의 내용을 working directory로 다시 불러올 때 사용
git stash drop [커밋 아이디] : 스택 내용이 가장 최근(커밋 아이디 안 썼을 때) 또는 특정 커밋이 하나씩 스택에서 삭제
현재 브랜치에서 저장하고 다른브랜치에서도 사용가능
git stash pop [커밋 아이디] : 데이터의 내용을 working directory로 다시 불러오면서 스택에서 삭제. apply +drop 라고 생각하자.
git cherry-pick [커밋 id]
자신이 원하는 커밋의 내용만 가져와서 현재 브랜치에 추가시킨다.
'코드잇' 카테고리의 다른 글
코드잇 6주차 위클리 과제 회고 (0) 2024.01.03 git에서 branch merge, git flow (0) 2023.12.08 z-index: 9999로도 해결이 안되는 이유 (1) 2023.12.03 position - CSS (0) 2023.11.26 CSS Cascading (우선순위) (0) 2023.11.26