_공부하는/git

git 기초

흰 the JohFam 2021. 3. 25. 11:19

쉘 변경

(zsh에서 bash로 변경해 놓은 상태)

The default interactive shell is now zsh.

To update your account to use zsh, please run `chsh -s /bin/zsh`.

깃 초기화

git init

git config user.name "[이름]"

git config user.email "[메일]"

깃의 3가지 작업 영역

working directory = working tree

staging area = index

repository 실제로는 .git 디렉토리

깃 커맨드

git add . : 변경 사항이 있는 파일 모두 add

git status

git commit -m "[explanation]"

git reset [file name] : staging area에서 파일 제거 (->working directory에만 존재)

git help [커맨드]

man git-[커맨드]

깃헙 GitHub

git push : local -> remote repository

git pull : remote -> local repository

git clone [깃헙 프로젝트 주소] : 해당 주소의 깃헙 프로젝트 레포지토리 복제

커밋 다루기

git log 위로 갈수록 최신 커밋

git log --pretty=oneline 한 줄로 보기

git show [최소4글자의 커밋 아이디]

git commit : vim 텍스트 에디터 화면에서 커밋 메세지 작성

git commit --amend : 최신 커밋 수정

git config alias.[별명] '[깃 커맨드]' : 해당 깃 커맨드를 해당 별명으로 지정

.git/config 에서 설정 확인 가능

ex) git config alias.history 'log --pretty=oneline'

git diff [커밋1] [커밋2] : 두 커밋의 차이

커밋의 HEAD에 따라 working directory(tree)의 상태 달라짐

git reset --hard [커밋 아이디] : 아이디에 해당하는 커밋으로 HEAD 변경

--hard : working directory까지 변경

--mixed : staging area까지 변경

--soft : HEAD만 과거 커밋을 가르킴

git reset --hard HEAD^ : 헤드의 직전 커밋

HEAD~n : 헤드의 n단계 전 커밋

git tag [태그 이름] [커밋 아이디] : 커밋에 택 달기

git tag : tag 출력

git show [tag] : 택과 연결된 커밋 설명

브랜치

git branch [branch name] : branch 생성

git branch : branch 상태

git checkout [branch name] : 해당 branch로 스위치

브랜치 바뀌면 워킹 디렉토리 달라지는거 넘 신기행,,,

git checkout -d [branch name] : delete. 브랜치 삭제

git checkout -b [branch name] : bㅏ꾸다(ㅋㅋ) 브랜치 새로 만들고 스위치

git merge [다른 브랜치 네임] : 현재 브랜치와 해당 브랜치를 merge

conflict 생기면 그 부분 지우고 다시 작성, 커밋하는 게 일반적

git merge --abort : merge 취소

(꿈에서도 깃이라는 글자 본 것 같다 ... 지겨워 증말)

이전 커밋에서 새로운 브랜치를 생성하고 싶을 때

$ git checkout [commit ID] : 헤드가 해당 커밋을 !직접! 가리킴 = "Detached HEAD"

$ git branch [new branch name] : 새로운 브랜치, 헤드가 하나의 커밋을 가리키는 중

$ git checkout [위에서 새로 만든 브랜치 네임] : 헤드가 브랜치를 통해(간접적으로) 커밋을 가리키는 정상적인 상태

 

3-way merge

- base랑 비교했을 때 달라진 게 있는 브랜치 선택

- 둘 다 변화했으면 conflict 발생, 네가 알아서 고르세요.

fast-forward merge

- 현재보다 최신 커밋인 브랜치와 머지하길 원할 때, 헤드가 최신 커밋인 브랜치를 가리켜 버린다

- 커밋은 새로 생기지 않음

 

 

 

21.3.17 백업

'_공부하는 > git' 카테고리의 다른 글

ubuntu에서 git username/password 생략하기  (0) 2021.12.12
git 2탄  (0) 2021.03.25