[제로베이스 데이터 분석 취업 스쿨]Day16 Git

Git Log

Commit history를 볼 수 있다. 

commit id, 저자, 시간, 메시지 등을 확인할 수 있다. 

 

git Log -2

두 개만 볼 수 있다.

git log -p

변경사항 확인 

git log --oneline

한 줄로 출력

git log --author=<"">

사용자 정보로 탐색

git log -S

파일 변경내용으로 검색

git log --grep <검색어>

git log --grep <검색어>

 

Remote Respository

push, pull을 통하여 Local Repository에서 동기화 할 수 있다. 

1. git init으로 로컬 저장소를 지정한다.

2. 비어 있는 repository 생성

readme.mdgitignore 파일 제외, repository 주소 복사 및 토큰 수령

git remote -v remote 상태 조회 

 

Local 저장소에 Remote 저장소 추가

git remote add repo_name(origin) "토큰@url"
# 리모트 상태 확인
git remote -v

touch readme.md
git add readme.md
git commit -m "add readme file"

git push origin main

Remote 저장소를 먼저 만들어서 Local 저장소와 연결

git clone 해서 연결한다. 

 

Git checkout

git checkout <commit_id>

특정 버전으로 이동

HEAD가 Checkout 한 버전을 가리킴

 

실습

헤드가 마지막 버전을 가리키고 있다.

file3 파일이 사라지고 이전 버전으로 돌아가 있다. 

다시 돌아가려면 git checkout main

 

git branch

코드를 여러개로 복사해서 작업하는 경우가 종종 생김

원래 코드와 상관없이 독립적으로 개발할 필요

개발 후, 원래 코드와 병합할 필요

 

특정 버전에서 새로운 Branch를 만들어서 작업하다가 병합할 수 있다. 

 

명령어 입력하면 목록을 보여준다. 

git branch - local branch

git branch -r remote branch 보여줌

git branch -a

로컬과 remote 전부 다 보여준다. 

 git branch <branch_name>

Local에 branch 생성

git push origin <branch_name> 

 

git branch 간 이동

git checkout <branch_name>

 

실습

 

Branch 생성 및 삭제

git checkout -b dev2

branch생성하고 이동한다. 

로컬에서 branch 삭제 

git branch --delete <branch_name>

remote에서도 삭제

git push origin --delete <branch_name>

 

Merge and Conflict

Merge

git merge <branch_name>

현재 위치한 버전에 다른 버전을 병합하는 작업

Branch를 병합하거나 Push Pull 할때도 일어난다. 

dev에서 main을 땡기려면

head를 dev로 옮긴 다음에 merge 한다. 

 

Conflict

두 Branch에서 같은 버전의 같은 부분을 수정하는 경우, Auto Merge가 불가능한 상황에서 발생한다.

 

Conflict 해결

1.파일 수정

2. Git Add

3. Git Commit

 

Push 동작 중 Conflict 상황이 발생하면,

Pull을 해서 Conflict 에러를 확인할 수 있다. 

먼저 pull을 해놓고 push하는 습관을 기르자. 

Main Branch에서 Dev Branch Merge해보자.