반응형
[Git] 깃의 기본에 대해 공부해보자. part2 (revert reset restore push clone pull pull-request stash)
오늘은 깃을 사용하다가 실수했을 때 복구하는 방법 (revert reset restore)
로컬저장소의 코드를 원격저장소로 올리는 방법 (push)
원격저장소를 로컬저장소로 가져오는 방법 (clone / pull)
브랜치를 병합하는 방법 (pull request)
커밋 할 때 함께 올리기 싫은 코드들을 잠깐 보관하는 방법 (stash)에 대해 정리해보려 합니다
후후후 드디어 나도 깃의 기본개념은 이해하고 있는 새럼,,🙋♀️
깃허브 기본 파트는 바로 아래 요기로~~!
🧐 실수를 되돌리자. (git revert reset restore)
- git restore fileName.확장자
- 최근 commit 된 상태로 현재 파일의 수정내역을 되돌릴 수 있다.
- git restore --source 커밋아이디 fileName.확장자
- 입력한 파일이 특정 커밋아이디 시점으로 복구된다.
git restore --staged fileName.확장자
복구와는 상관 없지만 특정 파일을 잘못해서 git add 했을 경우 staging 영역에서 취소할 수 있다.
- git revert 커밋아이디
- 커밋 단위로 취소하고 싶을 때 사용. 커밋아이디는 여러개 나열하여 작성 가능
- git revert 커밋아이디 입력 후 엔터를 치면 Vim 창이 뜨는데, revert 메시지 입력 후 ESC 누른 뒤 :wq 입력한 뒤에 Vim 화면을 빠져 나오면 된다.
- merge 명령으로 인해 새로 만들어진 commit도 revert 가능하다.
- git revert HEAD
- 최근 커밋 취소
- git reset --hard 커밋아이디
- git reset 명령어 사용하면 특정 commit 시절로 아예 모든걸 되돌릴 수 있다.
- reset --hard 해버리면 특정 커밋아이디 시점 이후의 모든 로그와 파일을 삭제해버린다.
- 보통 협업시에는 위험하기 때문에 잘 사용하지 않는다.
- 반면에, git add 하지 않은 파일들은 사라지지 않고 유지 된다.
- git clean 명령어를 사용하면 add 하지 않은 파일까지도 지울 수 있다.
- git reset --soft 커밋아이디
- reset한 커밋은 스테이징 영역으로 복구 된다.
- 커밋을 할 수 있는 상태가 된다.
- git reset --mixed 커밋아이디
- reset한 커밋은 스테이징 되지 않은 상태로 복구 된다.
- 즉, add뿐만 아니라 커밋까지도 할 수 있는 상태가 되는 것.
Github
🧐 내 코드를 깃허브에 올리자(Push)
- git push
- 커밋한 내용들을 원격저장소인 레파지토리로 업데이트 하는 명령어
- git push 원격저장소주소 로컬브랜치명
- 로컬에서 새롭게 생성한 브랜치를 원격저장소에 추가하는 방법
- git push -u 저장소주소 main
- 로컬에서 폴더 생성 후 원격 저장소를 만들 때 사용
- git remote add 변수명 변수값
- 원격저장소 주소같이 텍스트가 긴 것들을 git 명령어를 통해 변수 처럼 사용할 수 있다.
- ex) git remote add origin 저장소주소 지정 후-u 명령어의 경우 git push 할 때의 주소를 기억하라는 뜻이 있기 때문에 그 다음부터는 그냥 git push만 작성해도 원격저장소로 자동으로 업데이트 해준다.
- git push -u origin main 이런식으로 축약하여 사용 가능해지며
- -u 명령어의 경우 git push 할 때의 주소를 기억하라는 뜻이 있기 때문에 그 다음부터는 그냥 git push만 작성해도 원격저장소로 자동으로 업데이트 해준다.
- git branch -M main
- 깃허브의 경우 마스터브랜치를 main으로 사용하라고 요청하기 때문에 마스터 브랜치명의 이름을 main으로 변경해주는 명령어
🧐 원격저장소를 가져오자(clone / pull)
- git clone 원격저장소주소
- 원격저장소 복제 명령어
- git pull 원격저장소주소
- 원격저장소 복제 후 커밋이나 코드 / 파일 내용들을 추가적으로 가져오는 명령어이다.
- 만약 내가 push를 하기 전에 다른 팀원이 먼저 push를 한 내용이 있을 경우 나는 push를 할 수 없다는 에러가 발생한다.
- 이럴 경우 새로운 커밋 내용으로 내 로컬저장소를 업데이트 해준 뒤에 push를 해야 할 때 git pull을 사용하여 업데이트를 진행 한 후 push를 하면 된다.
- git pull branchName
- 특정 브랜치만 가져올 수 있다.
🧐 브랜치로 협업해보자(pull request)
브랜치 선택 후 오른쪽 초록 버튼(New pull request) 클릭 후 conflict를 해결한 뒤 merge해주면 된다.
정상적으로 merge가 완료된 뒤에는 브랜치를 삭제해주면 되고,
로컬 저장소에서는 main 브랜치의 코드를 가져와야 할 경우 pull 명령어를 사용하여 코드를 업데이트 해주면 된다.
🧐 코드를 잠깐 보관해보자(stash)
커밋을 하기 전 쓸데없는 코드나, 테스트를 진행하던 코드들을 메모장이 아닌 다른 곳에 잘라내어 보관 후 원래있던 자리에 정확하게 복구하고 싶다면 이 기능을 사용하면 된다.
- git stash
- git stash list
- 스태시 리스트들을 확인 할 수 있는 명령어이다.
- git stash save ‘스태시 메모’
- 스태시를 저장할 때 메모사항을 기재할 수 있음
- git stash pop
- 최근 스태시 내용들을 순차적으로 복구시킬 수 있는 명령어
- git stash drop 번호
- 특정 번호를 가진 스태시를 삭제
- git stash clear
- 모든 스태시를 삭제
참고자료
코딩애플 강의
https://codingapple.com/course/git-and-github/
반응형
'Study > etc.' 카테고리의 다른 글
[Figma] 피그마 개발자 모드 업데이트 및 VSCode 플러그인(Figma Dev mode with Figma for VS Code) (0) | 2023.06.28 |
---|---|
[VSCode] 글씨체를 멋지게 바꿔 보자.(Fira-Code) (2) | 2023.05.15 |
[Next] Next.js 외부 이미지 에러 (Error: Invalid src prop) (0) | 2023.03.01 |
[ESLint] ESLint - Function component is not a function declaration Error (0) | 2023.02.27 |
[Git] 깃의 기본에 대해 공부해보자. (깃 기본 명령어 branch merge delete) (0) | 2023.02.11 |