Leading engineer
10강 Git - 혼자작업편 본문
왜 Git을 사용하는가?
: 뭔가를 만들고, 프로젝트를 진행하면 컴퓨터의 특정 폴더에 작업물들을 넣어놓는다. Git은 이 폴더 안에 시간여행이 가능한 평행우주들을 만드는 것이라고 생각하면 된다.
시간여행이 가능하다 = 내가 수습하기 어려운 실수를 했거나 전이랑 뭐가 바뀌었는지 헷갈릴 때, 언제든 폴더 내 상태를 과거로 돌릴 수 있다. 아예 모든 파일들의 저장된 상태를 돌려놓거나 과거로 돌아가서 필요한 것만 찾아서 현재나 다른 과거로 가져올 수도 있다.
Git 사용법
Command line Interface vs Source Tree 두가지가 있다.
git init
git add -A
git status
git commit -m "First commit"
git log : 캡슐의 정보들과 메시지들이 뜬다.
터미널의 맨 아래에 기존의 입력 줄이 안뜨고 글자도 안쳐진다면, vi 에디터가 실행중이므로 :q 를 눌러서 빠져나오면 된다.
소스트리에서는 history 탭에서 시원하게 볼 수 있다.
* Reset
git log로 일련번호 확인
git reset 일련번호 앞 여섯자리 --hard
* Revert : 과거로 돌아가기
git log로 일련번호 확인
취소할 시점 찾기
git revert 일련번호 여섯자리
새 커밋메시지 작성
그대로 저장하겠다는 vi명령어 :wq 입력
reset했을 때와 마찬가지로 파일들이 과거 상태로 돌아와있다.
log기록을 확인해보면 reset처럼 이 시점 이후가 지워진 게 아니라, 이 뒤에 새 캐슐이 묻힌 것을 볼 수 있다.
* Branch : 평행우주 넘나들기
git branch 브랜치이름
브랜치이름 으로 넘어가기: git checkout 브랜치이름
master로 돌아가기: git checkout master
다른 우주에서 master로 가져오기:
1. git checkout master - 먼저 master로 이동
2. git merge 브랜치이름 - 변화를 가져올 branch 이름 적기
3. 윈도우 그대로 적용 / 맥- vi 화면 :wq 입력
* git log --graph --all --decorate 명령어를 쳐보면 시각화된 작업내역을 볼 수 있다.
같은파일, 같은 라인에 둘이 손을 대면 merge할 때 충돌이 일어나게 된다.파일을 보면 두 브랜치의 작업이 다른 부분을
이렇게 비교해서 나타내준다.
둘중 하나를 선택해서 다른쪽을 지워주고 저장한 다음, git add로 캡슐에 넣고 git commit까지만 해준다.
:wq 로 저장해주면 merge완료
* 협업할 때는 가능한 다른 브랜치들이 같은 파일을 수정하는 일을 피해서 작업하는 것이 좋다.
* Rebase : 다른 우주에서 가져오기
모든 변경내용들이 한줄로 딱 깔끔하게 정리됐으면 좋겠다 싶을 떄 merge대신 rebase를 사용한다.
=> 분기들이 깔끔하게 한 줄로 합쳐져 있다.
소스트리에서 rebase하려면 '병합' 대신 '재배치'를 선택해주면 된다.
프로젝트의 성격이나 팀의 필요에 따라 mearge나 rebase 중 적절한 것을 선택해서 사용하면 된다.
* git branch -D 브랜치이름 : 다 쓴 브랜치 삭제하기
정리:
1. Git 저장소 생성 (init 명령어)
프로젝트의 시공간이 담길 .git 폴더를 생성
2. 프로젝트 상태 저장 (add, commit 명령어)
현 시점에 이름을 붙여 저장
3. 과거로 돌아가기 (reset, revert 명령어)
4. 평행우주로 분기하기 (branch 명령어)
프로젝트의 다양한 버전들을 생성&시도
'Dev > 사전학습' 카테고리의 다른 글
9강 Git과 Github (0) | 2023.02.19 |
---|---|
8강 Exception Handling이란? (0) | 2023.01.14 |
7강 Static Web, Dynamic Web이란? (0) | 2023.01.14 |
6강 클라우드 컴퓨팅이란? (1) | 2023.01.14 |
5강 Cookie Session Cache 란 무엇인가? (0) | 2023.01.14 |