TIL ( Today I Learned )

2022-07-26 : Git

PHM 2022. 7. 26. 10:31

* reflog, falsepush 같은건 쓰지 않는 것이 좋다!

 

1. git status

    ㆍgit checkout -- '파일명' : 수정된 부분 원래대로 돌리기

    ㆍgit diff : 수정 부분 확인

 

2. git add '파일명'

    ㆍgit rm --cached '파일명' : add 취소

    ㆍgit rm -rf '폴더명' : 폴더 add 취소 시

    ㆍ.gitignore : add 무시할 파일명, (커밋한 경우 해당 파일 삭제 후 gitignore파일 수정후 파일)

 

3. git commit

    ㆍvim에디터 나오기 : esc → :w(write)q(quit)

    ㆍgit log : 커밋의 목록

    ㆍgit shortlog : 커밋메시지 목록

    ㆍ-m : 에디터 실행없이 커밋메시지 작성

    ㆍgit commit -m '커밋 메시지'

    ㆍ-a : add 해줌

    ㆍgit commit -am '커밋 메시지'

 

4. git remote

    ㆍ명령어 뒤에 --help를 작성시 : 메뉴얼

    ㆍgit remote add origin 'URL' : github 등록

    ㆍgit remote get-url origin : URL 확인

 

5. git push

    ㆍgit push origin(원격주소) master(브랜치)

 

6. git pull

    ㆍgit pull origin master

 

7. git reset : 로컬에서의 실수

    ㆍ과거로 되돌아간다. 

    ㆍgit reset HEAD~1 : 현재에서 하나 뒤로 되돌리고 싶다, 커밋취소, 커밋자체를 삭제

    ㆍHEAD : 현재 위치

    ㆍ--soft : 새 커밋에서 staged(add한 상태)로 이동

    ㆍ--mixed : 새 커밋에서 untracked(코드 변경한 상태) 이동, 기본

    ㆍ--hard : 새 커밋에서 기존커밋으로 이동, 수정한 것들 다 삭제( 권장 X )

                  git reset --hard : 변경내역들 삭제

    ㆍgit reset '커밋이름' : 해당 커밋으로 되돌아갈 수 있다 + 수정한 것들 다 삭제

 

 

8. git revert : github push한 내용의 실수

    ㆍ실수를 되돌리는 것을 새로운 커밋으로 만든다.

    ㆍgit revert HEAD

    ㆍ실수한 내용이 남아있고 실수하기전으로 되돌리고 새로운 커밋을 날릴 수 있다.

    ㆍ원격서버에 push까지 했을때 revert를 쓰는 것이 좋다.

    ㆍgit revert '커밋id'

 

9.git branch

    ㆍgit branch : 브랜치 확인

    ㆍgit branch '브랜치 이름' : 브랜치 생성

    ㆍgit checkout '브랜치 이름' : 브랜치 이동

    ㆍgit branch -D '브랜치 이름' : 브랜치 삭제

 

10. git merge

    ㆍ받는 쪽에서 가지고 온다.

    ㆍgit merge '브랜치이름' ( master 브랜치에서 할 것 )

    ㆍ충돌 시 git status - both modified

    ㆍgit merge --abort : 머지 취소

    ㆍ반영하고 싶으면 add + commit

    ㆍmerge하면 Fast-forword : 기본, 앞으로 땡겨지는

 

11. git rebase

    ㆍ받는 쪽에서 가지고 온다.

    ㆍgit rebase '브랜치이름'

    ㆍgit rebase --continue : 브랜치 가지를 한 줄로 만들어 버린다.

 

12. git cherry-pick

    ㆍ브랜치의 커밋 전부다가 아닌 일부분까지만 가지고 오고 싶다.

    ㆍgit cherry-pick '커밋id'

 

- git tag '태그이름' : 커밋id 대신 사용가능

 

- git stash : 커밋하지않고 다른 브랜치로 이동하고 싶을 때, 임시저장

    ㆍgit stash list

    ㆍgit stash apply

    ㆍmaster에서 stash 한 것을 다른 브랜치에서 반영 가능

    ㆍgit stash drop : stash 지우기

 

- git fetch : merge X

    ㆍpull을 하면 fetch후에 merge까지

    ㆍpull을 하면 로컬이 바뀌지만 fetch를 해서 원격과 로컬을 비교

 

참고자료 : https://www.youtube.com/watch?v=cEg9hiZax8U&list=PLcqDmjxt30RvjqpIBi4mtkK5LkzYtXluF&index=1 


0. git config --global user.name / git config --global user.email

1. git init : 현재 디렉토리를 버전관리한다.

2. git status

    ㆍUntracked files

3. git add

    ㆍstage area : 커밋대기상태

4. git commit

    ㆍ-a : add 등록

    ㆍ-m : 커밋메시지입력

 

    ㆍgit log

           -p : 커밋과 커밋사이의 소스 차이점 확인

            ㆍgit log '커밋id' : 해당 커밋id 이전 log 출력

    ㆍgit diff : 수정한 내용 출력(add 전)

            ㆍgit diff '커밋id'..'커밋id' : 두 커밋사이의 소스 차이점

5. reset : 커밋취소(이후 파일들 삭제), 공유전(푸시전)에만 사용할 것!

6. revert : 커밋취소(후 새로운 커밋)