Git Graph
- Installing Git Graph on VSCode
Git Extension 에서 'git graph' 로 검색하여 설치
- Open HelloGit
HelloGit 을 열어서 Graph 확인 (Branch 별도로 확인 가능)
실습환경 만들기
- Remote Repository 생성
log_project 생성
- Remote Repository 주소 복사
- Local Repository 에 Clone
git_ws 폴더에 복제
- 파일 추가 후 저장
Control + D 키로 입력한 내용 저장
- 파일 수정 후 저장
- Branch 생성 후 이동
- Branch 생성 후 이동
Git Log
- Git Log
Branch 별 변경이력을 볼 수 있음
- main branch 로 이동
- main branch 로그 확인
- dev branch 로 이동
- dev branch 로그 확인
Git Editor 설정
- --wait 옵션은 command line 으로 VSCode 를 실행시켰을 경우,
VSCode 인스턴스를 닫을 때까지 command 를 대기
Git Diff Tool 설정
- Git Configuration 파일 열기
- Git Diff 설정 추가
Git Diff
- Git Diff - Local Branch 간 비교
- 실습
- 실습 2
- Git Diff - Commit 간 비교
- 실습
Commit Hashcode 확인 (commit 뒤의 문자열)
- create 과 modify 1 비교
- Git Diff - 마지막 Commit 과 이전 Commit 비교
- 실습
- Git Diff - 마지막 Commit 과 현재 수정사항 확인
- 실습
- Git Diff - Local and Remote 간 비교
- 실습
- 아까 수정한 파일을 Commit (Local Repository 의 Main Branch 에만 반영됨)
- Local Repository 와 Remote Branch 비교
- Git Graph 확인
현재 폴더를 VSCode 로 열기 위해 아래와 같은 명령어 입력
실습 환경 만들기
- Remote Repository 생성
merge_project 생성
- Local Repository 에 Clone
git_ws 폴더에 복제
- 실습환경 체크
- 파일 추가 후 저장
- Branch 생성 후 파일 수정
- Git Log 확인
Merge Tool 설정
- Git Configuration 파일 열기
- Git Merge 설정 추가
Merge
- Git Merge
현재 위치한 Branch 에 다른 Branch 를 병합
- Main Branch 로 이동
- Dev Branch Merge
- Log
Merge 결과 확인
Conflict
- Merge Conflict
- Branch 를 Merge 하는 과정에서 충돌이 날 수 있음 - 혹은 Push, Pull 하는 과정에서도 충돌이 일어날 수 있음
- Main Branch 에서 파일 수정
Hello, noma 를 만들자
- Conflict Test 를 위한 Branch 생성
Hello, noma 를 카피한다 (이동은 하지 않음)
- Main Branch 에서 파일 수정
Hello, zero 를 만들자
- Dev2 Branch 에서 파일 수정
Hello, base.
- Main Branch 에서 Dev2 Merge
이때 양쪽이 같은 파일의 같은 부분을 수정했기 때문에 Conflict 발생
- MergeTool 실행
Conflict 발생 이후 아래와 같이 MergeTool 을 실행하면 Conflict 난 파일들이 차례로 열림
- VSCode 에서 Conflict 파일 수정
Main Branch 와 Dev2 Branch 의 Diff 를 <<<<, ====, >>>> 로 표시
- 둘 중 맞는 코드를 선택하여 수정하고 저장 (Diff 표시 부분도 삭제)
- Conflict 해제
git add + git commit
- Commit Message 저장 후 완료
- Git Log 로 확인
diff 와 difftool을 이용하여 local repository와 remote repository의 차이를 비교하는 부분이 재미있었다
저번 강의내용에서 main을 master로 수정하였었는데 다시 되돌려도 이미 만들어놓은 master는 main으로 변경되지 않았다
또 >를 이용하여 print내용을 입력할때 수정사항이 모두 담기는 듯 하다
나는 print('hello, cat')와 같이 적었지만 중간에 이상한 문자들과 ESC 라는 마크가 보였다
Git은 전에 배울때 사용했던 다른 프롬프트와 또 달라서 가끔 헷갈릴 때도 있고 특정 페이지에서 빠져나오기가 어려울때가 있는 것 같다
내일은 나머지 git 부분을 학습 할 예정이다