
Remote Repository 생성

Local Repository에 Clone
cd Documents/git_ws
git clone https://<username>:<token>@github.com/<repository>.git
cd merge_project

실습환경 체크

파일 추가 후 저장
cat > test.txt
my name is noma. + ctrl + D
git status
git add test.txt
git status
git commit -m "create" test.txt
git status
cat test.txt

Branch 생성 후 파일 수정
git checkout -b dev
cat >> test.txt
are you? + ctrl + D
cat test.txt
git status
git add test.txt
git status
git commit -m “modify 1" test.txt
git status

Git Log 확인
git log

Git Configuration 파일 열기
git config --global -e

위 코드를 실행하면 VSCode가 열리게 됨.
(앞에서 VSCode가 실행되도록 설정해주었기 때문)
Git Merge 설정 추가 + 저장 + 종료
[merge]
tool = vscode
[mergetool "vscode"]
cmd = "code --wait $MERGED"

Git Merge
git merge <branchname>

Main Branch로 이동
git checkout main
cat test.txt
git branch

Dev Branch Merge
git merge dev
cat test.txt

Log
git log

Merge Conflict

Main Branch에서 파일 수정
git branch
cat test.txt
cat > test.txt
hello, noma. + ctrl + D
git commit -m "reset" test.txt

Conflict Test를 위한 Branch 생성
git branch dev2

Main Branch에서 파일 수정
git branch
cat > test.txt
hello, zero.
git commit -m "modify -zero" test.txt

Dev2 Branch에서 파일 수정
git checkout dev2
cat test.txt
cat > test.txt
hello, base. + ctrl + D
git commit -m "modify -base" test.txt

Main Branch에서 Dev2 Merge
git checkout main
git merge dev2

MergeTool 실행
git mergetool

VSCode에서 Conflict 파일 수정
Main Branch와 Dev2 Branch의 Diff를 <<<<, ====, >>>>로 표시

둘 중 맞는 코드를 선택하여 수정하고 저장. (Diff 표시 부분도 삭제)

Conflict 해제
git status
git add test.txt
git commit


Git Log로 확인
git log

cd Documents/git_ws
mkdir conflict_project
cd conflict_project
git init

(1) [master]에서 conflict.txt 생성 후 commit : This is
cat > conflict.txt
This is + ctrl + D
cat conflict.txt
git status
git add conflict.txt
git status

(2) [master]에서 Branch 생성 후 이동 : dev
git checkout -b dev

(3) [dev]에서 conflict.txt 수정 후 commit : This is merge test.
cat > conflict.txt
This is merge test. + ctrl + D
cat conflict.txt
git status
git add conflict.txt
git status
git commit -m 'modify' conflict.txt

(4) [master]에서 [dev] Merge
git checkout master
cat conflict.txt
git merge dev
cat conflict.txt

(1) [master]에서 Branch 생성 (이동 X) : dev2
git branch dev2
git branch
cat conflict.txt

(2) [master]에서 conflict.txt 수정 후 commit : This is conflict test.
cat > conflict.txt
This is conflict test. + ctrl + D
cat conflict.txt
git commit -m 'modify -conflict' conflict.txt

(3) [dev2]에서 conflict.txt 수정 후 commit : This is log test.
git checkout dev2
cat > conflict.txt
This is log test. + ctrl + D
cat conflict.txt
git commit -m 'modify -log' conflict.txt
(4) [master]에서 [dev2] Merge : Conflict 발생 확인
git checkout master
git merge dev2

git mergetool


git status
git add conflict.txt
git commit



