3-1 여러 branch 만들어보기
브랜치 생성 : git branch add-coach(브랜치명)
브랜치 확인 : git branch
브랜치 전환 : git switch add-coach (Git 2.23 버전부터 checkout 명령어가 아니라 switch로 분리)
브랜치를 생성과 동시에 이동하기 : git switch -c new-teams(브랜치명)
브랜치 삭제하기 : git branch -d 브렌치명
브랜치 명칭 변경 : git branch -m 변경전브렌치명 변경후브렌치명
터미널에서 전체 브렌치에 커밋된 내역 보기 : git log --all --decorate --oneline --graph
3-3 branch 합치기
merge하기 : 다른 브렌치를 붙일 브렌치에서 git merge <합칠브렌치>
reset으로 merge 커밋 되돌리기 : git reset --hard 되돌아갈커밋
병합된 브랜치 삭제 : git branch -d 브랜치명
rebase로 합치기 (merge랑 브렌치 반대 상황으로 입력해야 함) :
1. rebase 대상 branch로 먼저 switch 필요
2. git rebase 붙일브랜치
3. 붙인 브랜치에서 git merge rebase대상브랜치
3-4 충돌 해결하기
merge 경우
merge 하다 충돌났을 때 merge 하기 전으로 되돌리고 싶을 경우 : git merge --abort
충돌 났을 때 처리법 :
1) 충돌난 코드 처리한다. -> git add . -> git commit 으로 커밋하면 된다.
rebase 경우
되돌리고 싶을 때 : git rebase --abort
충돌 났을 때 처리법:
1) 충돌난 코드 처리한다. -> git add . -> git rebase --continue -> 처리 완료될때까지 반복
원격저장소 연결하기
git remote add origin 원격저장소주소 - origin은 흔히 사용하는 원격저장소 이름으로 다른 것으로 수정이 가능하다.
git branch -M main - 기본 브랜치명을 main으로 변경한다.
git push -u origin main - -u는 현재 로컬 브랜치와 디폴트로 연결 될 명시된 원격 브랜치 연결하는 명령
(그래서 이후에 git push만 입력하면 무조건 main 브랜치에서의 push는 origin의 main 브랜치로 가게 된다.)
※ 위 git push -u origin main 명령으로 로컬 저장소의 main 브랜치는 원격(origin)의 main 브랜치와 연결된다.
따라서 아래처럼 로컬 저장소에서 test 브랜치를 만든 후 git push를 하면 원격저장소로 push가 안 되는 것을 확인할 수 있다.
Git을 특별하게 만드는 것
SVN : 델타 방식
각 파일이 생겨난 버전에 해당 파일 전체가 저장이 되고, 파일에 수정이 가해질 때는 그 변경점들이 저장이 된다.
(원본으로부터 변화의 누적으로 특정 버전의 상태 체크)
Git : 스냅샷 방식, 새로운 버전이 만들어질 때 해당 버전에서의 각 파일이, SVN과 달리 변경사항이 아니라 최종 상태로 저장되어 있다.
여기서 git의 장점 1 : svn을 commit이 많아질수록 파일이 처음 만들어진 시점으로부터 변경사항을 더해서 현재 내용을 계산해야 해서 오래 걸리는 단점이 존재함. 그러나 git은(스냅샷방식)은 각 시점의 파일내용이 full(전체)로 저장되어 있어서 훨씬 빠름.
git의 강점 2 : 중앙집중식 버전 관리가 아닌 분산 버전 관리 시스템이다.
CVS나 SVN 등의 VCS는 원격 서버에 모든 관리 내역들이 저장된다. 로컬에서는 중앙 서버에서 다운받은 파일들로만 작업을 할 수 있다. (원격 저장소에 의존적이다.)
반면 git은 파일들뿐만 아니라 전체 git commit 브랜치들까지 받아져서 인터넷 연결상태와 상관 없이 로컬에서 자유롭게 작업이 가능하다.
git의 3가지 저장공간
파일을 staging area에서 working directory로 옮기는 명령
Staging area에 적용된 파일을 Working directory로 옮기는 명령 : git restore --staged pumas.yaml(파일명)
Working directoryt에서도 빼고 싶다, 파일의 변화 상태 자체를 되돌리고 싶을 때 쓰는 명령: git restore pumas.yaml(파일명)
예전 명령어 : git reset HEAD 파일명
git reset의 옵션
--soft : repositroy에서 staging area로 이동 (add가 된 상태로 두는 효과)
--mixed (Default) : repository에서 working directory로 이동
--hard : 수정사항 완전히 삭제 (working directory에서까지 날려버림)
'이것저것' 카테고리의 다른 글
머신러닝,딥러닝 추후 활용 이미지 정보 모음 (0) | 2022.02.18 |
---|---|
[애드센스 승인 시도] 애드센스 광고코드 삽입 방법 (1) | 2022.02.17 |
주식 관심종목 (0) | 2020.12.06 |
1. assert 문으로 방어하기 (0) | 2020.07.18 |
1. Docstring과 어노테이션 그리고 자동화 검사 도구( mypy, pylint,makefile ) (0) | 2020.07.17 |
댓글