ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • git 커맨드
    코드잇 2023. 12. 5. 22:07

    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

    댓글

Designed by Tistory.