-
2022-07-26 : GitTIL ( Today I Learned ) 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 : 커밋취소(후 새로운 커밋)
'TIL ( Today I Learned )' 카테고리의 다른 글
2022-07-28 : Spring (0) 2022.07.28 2022-07-27 : 파일업로드 & buffer, 기타 등등 (0) 2022.07.27 2022-07-25 : JAVA (0) 2022.07.25 2022-07-21 : Git (0) 2022.07.21 2022-07-18 : JS (0) 2022.07.18