git 사용법-1 (git commit, git log, git stash)

    git commit 관련

    작업 폴더에서 git을 사용하고 싶을 때

    git init 부터 입력 (터미널 -> 새 터미널에 입력) => .git repository를 만들어야 함

    git add blabla.txt

    => 내가 기록할 파일 고르기

    git add one.txt two.txt

    => 두개를 기록하고 싶을 때

    git add .

    => 모든 파일을 기록

    git commit -m 'any message'

    => 파일 현재 상태 기록

    - 나중에도 파일 상태 그대로 되돌리거나 파일 변경 히스토리를 열람 가능하게 함

    git은 작업폴더, staging area와 repository(저장)로 나뉘는데 

    git add을 하게 되면 staging area로 넘어가고 (staging)

    git commit을 하게 되면 repository로 넘어간다.

    vscode 에디터에 소스제어 버튼을 누르게 되면 지금 어떤 파일이 변경되고 추가되었는지 알려준다. +를 누르면 git add 한 것과 같고 체크마크를 누르면 git commit 한 것과 같다.

    git push -u 저장소 주소 올릴로컬브랜치(보통 main)

    => commit한 내용을 원격저장소(git hub)에 올림

    => 저장소 주소는 저장소에서 주소에 .git만 붙이면 된다.

    => -u는 주소를 기억하라는 뜻으로 한 번 사용하면 나중에는 git push만 써도 됨

    => 원격저장소에 새로운게 생기면 git push를 하지 못한다. (git pull 이후 사용)

    git pull 원격저장소주소 브랜치

    => 원격 저장소에 있는 것을 가져와서 로컬저장소로 옮긴다. 

    => git push시 -u를 해놓았으면 git pull만 사용해도 무방함

    => git pull은 git fetch + git merge이다.

    git fetch

    => 원격저장소를 신규 commit에 가져오는 것 

    git remote add 변수명 주소

    => 주소가 변수명에 할당 (보통 origin으로 하는 경우가 많다)

    git clone 저장소 주소

    => 원격 저장소 복제 (저장소에 있는 모든 소스코드가 다운받아짐)

    => 팀원 깃헙 아이디를 collaborators에 등록해놓아야 git push가 가능하다.

     

     

    git log 관련

    git status

    => 어떤 파일을 스테이징 해놓았는지 알려줌

    git log

    => 내가 커밋한 내용을 보고 싶을 때

    git log --oneline

    => 내가 커밋한 내용을 한 줄로 이쁘게 보여준다.

    git diff

    => 바로 전 commit과 현재 코드의 차이점을 비교해준다.

    스크롤은 j,k / 종료는 q를 눌러야 한다.

    git diff 커밋id

    => 최근 commit과 비교하는게 아니라 과거의 특정 commit과 현재 파일을 비교하고 싶으면 커밋 id를 명시한다.

    커밋ID는 git log 입력 보이는 노란 글자들이다.

    git diff 커밋id1 커밋id2 

    => 과거의 특정 commit 2개 간의 차이점 비교도 가능하다.

    git difftool

    => 입력하면 현재 파일과 최근 commit의 차이점을 비교해준다 (비주얼적으로 더 좋게 차이점을 분석해줌)

    difftool도 diff와 동일하게 사용가능하다.

    git lens를 통해 difftool과 동일한 기능을 수행가능하다.

     

     

    git stash관련

    => 코드를 잠깐 다른 곳에 보관할 때 사용

    => staging 된 것이든 안된 것이든 추적중인 파일은 다 이동된다.

    => 새로 만든 파일인데 staging 안되었다면 이동하지 않는다.

    git stash save "메모"

    => git stash 할 때 메모를 같이 입력 가능하다.

    git stash list

    => 현재 stash 되어있는 코드 목록을 전부 출력해주는 명령어

    git stash pop

    => 가장 최근에 보관했던 코드를 다시 불러온다 (현재 코드와 겹치는 부분이 있으면 conflict가 난다.)

    git stash drop 삭제할 id

    => 특정 stash 삭제(삭제할 id는 git stash list 하면 보이는 숫자 넣으면 된다.)

    git stash clear

    => 모든 stash 삭제

    git stash -p

    => 전체 말고 일부 코드만 git stash하고 싶을 때 사용

    => 파일을 훑으며 stash 할지 의견을 물어보는데 y/n으로 잘 대답하면 된다.

     

    주석 처리와 다른 점은 주석처리된 코드는 commit할 때 반영되어 주석도 commit 기록에 남아서 기록이 더러워질 수 있다

    주석처리한 내용을 commit 하기 싫을 때 git stash를 사용한다.

     

     

    git ignore 파일 

    git add .을 사용시 

    - 보안상으로 위험성이 있는 파일

    - 프로젝트와 관계없는 파일

    - 용량이 너무 커서 제외해야되는 파일

    은 git add에 포함시키지 않는다 이 경우 git rm을 통해 일부 파일만 제외시키면 되지만, 모든 커밋에 그런 행동을 하는 것은 힘들다.

    따라서 .gitignore 이라는 파일을 만들어 무시할 파일을 넣어준다.

    git init을 한 폴더에 .gitignore 이라는 파일을 만들고 한 줄씩 제외할 파일 혹은 폴더를 쓰면 된다.

    fileName.js

    => 특정 파일 fileName 제외하기

    /fileName.js

    => 현재 경로에 있는 fileName_1 만 제외하기.(다른 경로의 fileName_1 말고)

    node_module/

    => 특정 폴더 node_module 안의 파일 다 제외하기

    folder/my.txt

    =>  특정 경로의 특정 파일 제외하기

    folder/**/fileName.txt

    => 특정 경로 아래의 모든 fileName_2 제외하기

    *.txt

    => 특정 확장자 파일 다 제외하기

    !fileName.txt

    => 예외 만들기

    댓글