[TIL] Git

동화·2022년 12월 21일
0

TIL

목록 보기
1/21

git 시작

일단 작업폴더에서 git을 이용하고 싶으면 git init 부터 입력
git add 파일명 (. / 전체)
git commit -m "message"

  • 이제 영구적으로 기록해놓은 상태

코드 수정

git add .(파일명)
git commit -m "수정했다"

(버전생성이라고도 함)

  • 왜 add/ commit 으로 나누냐면, 파일을 고르기 위해서 add로 먼저 (기록을 남기고 싶은 파일을 고르려고 - 필요없는 이미지파일 등)

  • 스테이징(staging) 함 => commit 할 파일 골라놨다는 뜻




git status

지금 변경된 파일, 스테이징된 파일 이런걸 쭉 알려줍니다.



git restore

스테이징된 파일을 취소하고 싶으면 입력.
터미널에서 자주 알려주는 명령어라 외울 필요는 없다



git log

git log 를 이용하면 커밋기록을 한눈에 볼 수가 있다

git log (—all —oneline —graph)

—graph 를 넣으면 그래프로 그려줌
입력 후엔 vim에디터가 켜져서 j,k 로 위아래 스크롤, q 키로 종료


`git log` 하면 나오는 HEAD -> 현재 위치

git log --graph --oneline --all
branchcommit 내역을 한 눈에 그래프로 보고 싶으면 이거 입력해보면 됩니다.



git diff

차이점 출력 : 현재파일이 최근 commit과 어떤 부분이 달라졌는지 알려줌
vim 에디터 켜져서 마찬가지로 j,k,q

  • commit된 파일상태와 현재 수정중인 상태 비교
    git diff

  • commit된 파일상태와 add된 파일 상태 비교
    git diff --staged

  • commit간의 상태 비교하기 - commit hash 이용
    git diff [비교할commit해쉬1] [비교할commit해쉬2]

  • commit간의 상태 비교하기 - HEAD 이용
    ex) git diff HEAD HEAD^
    가장 최근의 커밋과 그 전의 커밋을 비교한다

  • branch간의 상태 비교하기 - HEAD 이용
    git diff [비교할branch1] [비교할branch2]


근데 스페이스바, 엔터친것도 다 수정사항으로 알려주니까 쓰레기 같음 생으로 쓰지마라
git difftool을 쓰면 조금 더 보기 좋다
git difftool 커밋id1 커밋id2 로 특정 commit 2개의 차이점을 비교해줌




git branch

안전하게 새로운 기능을 추가하고 싶으면
프로젝트의 복사본을 만들어서 거기에 먼저 개발하는 것. => branch

git branch 이름
git switch 이름 (브랜치로 이동)
git status - > on branch 이름 이라고 뜬다
git switch main(master) 메인브랜치로 이동 -> 그러면 이름은 없음







git merge

git merge 작명(합칠 브랜치명)

합칠 때 주의사항이 있는데
master 브랜치와 coupon 브랜치에서 같은 파일, 같은 줄을 수정했을 경우 merge conflict 가 발생
이 경우 에디터로 해당 파일을 열어보면 충돌사항이 적혀있으니 그대로 해결하면 된다

git branch -M main
입력하면 기본 브랜치 이름이 변경
github.com은 이제 기본 브랜치 이름을 master가 아니라 main으로 사용하라고 해서 내 로컬 작업폴더에 있는 기본 브랜치 이름도 main으로 변경




git push

git push -u 저장소주소 main

  • -u 옵션은 방금 입력한 주소 기억해두라는 뜻. 다음부터는 주소를 길게 입력안하고 git push만 입력해도 잘 됨

  • 원격저장소주소 길게 입력하는게 귀찮으면 그 주소를 변수에 저장해서 사용

  • git remote add 변수명 저장소주소




git pull

git pull 원격저장소주소

  • 원격저장소에 있던 모든 브랜치 내용을 가져와서 로컬저장소에 합치라는 뜻
  • 이걸 해주면 로컬이 최신상태가 되기 때문에 이제 git push가 가능
  • 결론은 변동사항이 생겼다면 git pull 하고 나서 git push 하면 됩니다.




gitignore

저장소에 올리지 않는 파일들은 .gitignore
거기 명시한 파일들은 git add . 해도 스테이징이 되지 않아서 편리

0개의 댓글