참조강의 : 얄코-[깃 끝장내기] 제대로 파는 Git & GitHub 강좌
링크 : https://www.youtube.com/watch?v=1I3hMwQU6GU
git : 버전관리 시스템
- 핵심 : 이 수많은 코드들 중 내가 편집한 것, 시도한 것, 함께 공유할 것, 공유한 것들 중 되돌려야 할 것, 공유한 것들 중 선택해야 할 것 등 내가 원하는 동작을 몇 가지 명령어로 쉽게 관리할 수는 없을까?
1. Local과 Remote
local은 프로젝트가 어딘가에 공유되지 않고 나의 컴퓨터에 있는 것을 의미한다.
- local에서는 터미널/명령 프롬프트를 통해 git을 설치하고 관리한다.
- git이 관리하는 프로젝트의 범주는 .git폴더가 포함된 lepository(쉽게 말해 폴더...)만 이다.
- local에서 프로젝트를 편집했다 하더라도 즉시, remote에 공유되는 것은 아니다.
remote는 프로젝트가 나의 컴퓨터에서 서버에서도 공유되어 관리되고 있는 걸 의미한다.
- remote는 github가 대표적이지만, 다른 관리서버도 존재한다.
2. git init, add, commit, log, status
***** 모든 명령어를 작성하기 전 내가 추가/수정한 내역을 저장했는지 확인! 또 확인!
git init : 해당 폴더를 git이 관리하도록 명령한다.
git add . : 해당 레포지토리(쉽게, 폴더)의 버전을 깃이 기억하도록 명령한다.
git commit -m "~" : 해당 레포지토리(쉽게, 폴더) 최초/변경사항을 인간이 알아먹을 수 있도록 메모한다.
* git commit -am "~" : 추가된 파일이 없을 경우, add+commit을 동시에 할 수 있도록 하는 명령어
git log : 변경사항을 살펴볼 수 있도록 하는 명령어
* 본인의 경우 log와 같은 모니터링은 gitkraken에서 진행하고, 추가/변경/삭제와 같은 명령은 vscode에서 cli 명령어로 했다.
* cli 명령어를 사용하다보면 vim을 사용하는 창을 필연적으로 만나게 되는데,,,
- 저장할 때 : :wq
- 저장하지 않을 때 : :q
- 메모할 때 : i
- 메모를 끝낼 때 : esc
git status : 현재 git의 상태를 점검할 때
3. .gitignore
편집기에 .gitignore파일을 생성하고 해당 파일에 git이 관리하지 않을 파일 명을 복붙하면 해당 파일은 git에 의해 관리되지 않는다.
4. reset / revert
git reset --hard commit(돌아갈 커밋) : 해당 커밋으로 돌아간 뒤 이후 내용은 git에서 삭제! (협업 시 난감한 상황 연출 쌉가능)
git rever commit(돌아갈 커밋) : 해당 커밋을 새로운 커밋으로 재생성
=> 이 때! 중요한 건! 이전의 커밋을 덮어쓴다는 개념이 아닌, 무엇이 변경사항인가의 개념으로 접근해야 한다!
5. branch 기본
나의 주된 workflow에 해당하는 main과 별개로 다양한 테스트/시험/협업 목적의 갈래 : branch!
git branch add 브랜치명 : 새로운 branch 생성
git branch : 브랜치 목록 확인
git switch 브랜치명 : 브랜치 이동
git branch -d 브랜치명 : 브랜치 삭제
6. branch 활용 merge / rebase
다양한 협업/테스트/시험이 끝나고 해당 내용이 채택되었을 때! 이제 main workflow로 끌어와야 할 때,
branch 병합을 시도하게 된다.
git merge 합치고자 하는 branch명 : main branch에서 작업~!
- merge는 합치되, main에 새로운 커밋을 만드는 방식! / reset&revert로 회복 가능!
git rebase main : 합치고자 하는 branch에서 작업~!
- rebase는 합치되, 합치고자 하는 branch를 삭제하고 main에 병합 / reset&revert로 회복 불가!
7. clone / pull / push
git과 github를 사용해야 하는 이유!
클라우드 서비스 대신, git과 github를 사용하는 이유는, 버전관리 시스템이기 때문!
git clone 저장소의 주소 : 원격에 있는 git의 버전관리내역과 파일을 모두 가져오기
git push : 내가 수정한 프로젝트를 github에 올려놓기
git pull 後 파일로그 살펴보기 : github에 올라온 최신 파일을 살펴보기
basic) 기본적으로, 최신 버전이 github에 있을 때는 push 불가!
but!) push 할 것이 있을 때 pull 하려면?
* git pull --rebase : git에서 당겨온 다음, 나의 수정내용과 충돌하는 부분만 선택 후에 브랜치를 병합하는 방식!
8. rm -rf
- 사용할 일이 없는게 최선이겠으나, 만약 수정사항 전부가 뭔가 잘못되었다고 느낄 때, 다시 init부터 할 수 있는
전체 삭제 방법.
'웹 개발도구 > Git&Github' 카테고리의 다른 글
GIt 개발환경 셋팅(Mac Mojave version 10.14.6) (1) | 2022.09.13 |
---|