본문 바로가기

Tool/GIT

GIT 입문 - 기본 사용법 (commit, reset, revert, branch, merge..)

git / source tree / vs code 설치

 

원하는 위치에 git으로 관리할 폴더를 생성하고 

vs code에서 오픈. (File -> Open Folder)

ctrl + ` : 터미널 오픈

 

이미 해당 폴더로 경로가 잡혀있음.

/*해당 경로에서 git을 시작하겠다는 명령어*/
git init

해당 폴더에 들어가서 숨겨진 파일을 보면 .git 파일이 있음.

 

계정설정

 : git이 저장될때 이력에 남길 이름과 메일 설정.

git config --global user.name "이름"

git config --global user.email "메일"

 

계정확인

 : 설정된 계정 확인

git config user.name

git config user.email

 

config 파일 열어보기

open ~/.gitconfig

 

status

 : 기존 커밋과 비교해서 변경된 파일들의 상태를 보여줌. 파일이 스테이지에 올라가 있는지 아닌지도 확인 가능.

git status

 

add

 : 파일을 스테이지에 올리는 명령어

git add -A   (모든파일 올리기)

git add "파일명" (파일 1개 선택해서 올리기)

 

commit

 : 스테이지에 올라온 파일들을 캡슐로 저장.

git commit -m "커밋메세지"

 

log

 : commit된 이력들을 보는 명령어

git log (기본포맷으로 이력확인)

git log --graph --all --decorate (그래프형식으로 이력확인. 예쁜 색상으로 데코레이션됨) 

 

reset

 : 선택한 history로 브랜치를 초기화하며, 선택한 history 이후에 쌓인 커밋이력들은 옵션에 따라 처리.

   ( 소스트리의 <이 커밋까지 현재 브랜치를 초기화> 기능과 같음 )  

  hard 옵션 - 선택한 history 이후에 쌓인 커밋이력 전부 제거. (삭제.되돌릴수 없음)

   *재빨리 터미널 위로 가서 원래 commit을 찾고 git rebase <원래commit>을 하면 되돌릴 수 있다?? ->해봤는데 안됨.

  mixed 옵션 - ??

  soft 옵션 - ??

 

git reset 커밋번호6자리 --hard

git reset f6d16f --hard (해당 커밋으로 브랜치 이동후 이후 이력들 삭제

git reset --hard HEAD^  (가장 최근꺼만 삭제)

 

revert

 : 선택한 history에 대해 정 반대의 결과로 다시 커밋. 선택한 history의 rollback과 같은 결과. (커밋취소는 아님.)

git revert 커밋번호6자리

 

 

branch

 : 같은 환경에서 별도로 다른 작업을 하고 싶은 경우, 새로 가지를 만들어서 사용할 수 있다.

  (소스트리 상단바의 <브랜치> 클릭 후 새 브랜치 이름입력과 새 브랜치 체크아웃에 체크 후 <브랜치생성> 버튼 클릭)

git branch 브랜치명 (브랜치 생성)

git branch (현재 있는 브랜치 리스트 보여줌)

git branch -D 브랜치명 (브랜치 삭제)

 

checkout

 : 브랜치간의 이동을 할때, 해당 브랜치의 데이터를 통째로 가져옴.

   브랜치 생성 후에 checkout을 해줘야 해당 브랜치로 이동됨.

git checkout 브랜치명 (해당 브랜치로 이동)

git checkout master (main으로 이동)

 

 

merge

 : 브랜치와 브랜치를 병합. 또는 충돌이 일어날 때 파일과 파일을 합침

  (소스트리에서는 기준이 되는 브랜치에서 병합할 브랜치를 우클릭하고 <현재 브랜치로 OOO 병합> 을 클릭)

git merge 브랜치명 (변화를 가져올 브랜치명을 입력하여, main에 병합한다)

 

 

rebase

 : 브랜치끼리 병합할때 깔끔하게 한줄로 나오도록?? rebase 잘 모르겠음. 공부필요

  ----> 충돌날땐 이상하게 됨.... master랑 HEAD가 분리됨.... 왜지....ㅠㅠㅠㅠ