Git(29)
-
[Git] 브랜치를 합치는 예의바른 방법 : 풀 리퀘스트(Pull Request)
1. 풀 리퀘스트 생성하기 1.1 [feature/comment] 브랜치 생성 1.2 [feature/comment], comment.md 파일 생성 및 작성 1.3 [feature/comment], comment.md 파일 커밋 및 푸시 위 그림을 통하여 로컬 저장소의 [feature/comment] 브랜치와 원격 저장소의 [feature/comment] 브랜치에 커밋이 푸시된 것을 확인할 수 있습니다. 1.4 Github의 원격저장소 확인 및 Compare & pull request 버튼 클릭 위 그림을 통해서 '네가 최근에 [feature/comment] 브랜치에 코드를 업데이트 했으니 협력자에게 풀 리퀘스트(Pull Request)를 보내려고 한다면 이 버튼을 클릭하라'라는 의미에서 알림이 도착한..
2022.04.19 -
[Git] 충돌(conflict) 해결하기
1. 브랜치 합치기 실습 : 병합 커밋 및 충돌 해결 [feature/cart] 브랜치를 [main] 브랜치에 병합하여 두 브랜치의 코드를 모두 [main] 브랜치에 반영된 상태로 만들어 보는 것을 실습하겠습니다. 본 병합은 [feature/cart] 브랜치를 기준으로 병합합니다. 이는 병합하는 과정에서 충돌이 발생할 수 있기 때문에 안전하게 서브 브랜치에서 병합을 한다음 메인 브랜치(main)에 병합합니다. 1.1 main 브랜치를 땡겨와서 feature/cart 브랜치에서 병합을 수행 1.2 feature/cart 브랜치에서 병합한 병합 커밋을 main 브랜치에 반영 1.3 [feature/cart] 브랜치로 체크아웃 1.4 [feature/cart], [main] 브랜치의 최신 커밋에서 오른쪽 버튼..
2022.04.19 -
[Git] 브랜치와 브랜치를 합치기 : 병합(merge)
1. 병합은 무엇인가? 병합은 두 버전의 합집합을 구하는 것입니다. 병합 커밋 : 각각의 커밋이 겹치는 부분이 없으므로 새로운 커밋에 합친 결과가 나옴 빨리 감기 : 커밋2가 커밋1을 기반으로 b.txt를 추가한 것이므로 병합 결과는 커밋2와 동일하게 나옴 충돌 : 커밋1이 a.txt를 작성하고 커밋2가 a.txt에서 작성한 부분을 수정하였다고 가정할때 병합시 충돌이 발생함. Git은 어떤 것으로 병합할지 오류를 일으킴 2. 두 브랜치를 합치는 과정 2.1 main 브랜치에 feature/detail-page 브랜치를 합치기(Before) feature/detail-page 브랜치의 커밋은 단순히 main 브랜치를 기반으로 수정한 최신본이기 때문에 두 상태(main, feature/detail-page)..
2022.04.19 -
[Git] 브랜치 실습 기본 : 만들고, 이동한다
1. 새 브랜치 생성 브랜치 생성 규칙 1. [main] 브랜치에는 직접 커밋을 올리지 않음(동시에 작업하다 꼬일 수 있음) 2. 기능 개발을 하기 전에 [main] 브랜치를 기준으로 새로운 브랜치를 생성 3. 이 브랜치 이름은 [feature/기능이름] 형식으로 약속하고 한명만 커밋을 올림 4. [feature/기능이름] 브랜치에서 기능 개발이 끝나면 [main] 브랜치에 이를 합침 1.1 feature/detail-page 브랜치 생성 1.2 [feature/detail-page] iTshirt-cat/detail-page.md 생성 및 내용 작성 1.3 [feature/detail-page] detail-page.md 파일 커밋 1.4 [feature/detail-page] feature-list...
2022.04.19 -
[Git] 원격저장소에서 협업하기 : 브랜치(Branch)
1. 두명이 동시에 버전 관리를 해야 한다면? 위 그림을 보면 1시에는 고양이가 1장, 2장, 3장을 하고 문어는 4장을 합니다. 고양이는 1시에 작성한 1장, 2장, 3장을 만든 것을 '고양이버전1'로 저장합니다. 그리고 2시가 되자 1장, 2장, 3장, 4장의 문서 작성이 끝났기 때문에 문어는 '고양이버전1'을 가져와서 본인이 작성한 4장을 추가해서 '문어버전1'을 만듭니다. 3시가되자 문어는 고양이의 최신 버전(고양이 버전2)이 있다는 것을 알게 됩니다. 그래서 '고양이버전2'를 가져와서 업데이트하고 '문어버전2'로 저장합니다. 위 그림을 통해서 두 명이 동시에 버전 관리를 할 때에도 서로의 작업물에 의존하지 않고 내가 원할때 코드를 올리고, 또 내가 원할때 협업자의 코드와 합칠수 있음을 알 수 있..
2022.04.19 -
[Git] 그림으로 Git 뜯어보기
1. 커밋은 Delta(차이점)가 아니라 Snapshot(스냅사진) SVN(SubVersion)과 Git의 차이점 Git은 커밋에 변경된 것만 저장하는 것이 아니라 전체 코드를 저장합니다. 예를 들어서 README.txt의 세번째 라인에 '안녕'을 추가한 커밋이 있다면 Git은 추가한 세번째 라인뿐만 아니라 첫번째 라인부터 전체를 저장합니다. 전체를 저장하는 Git보다 차이점만 저장하는 SubVersion이 훨씬 용량도 작고 빠를것 같습니다. 하지만 차이점만 저장하는 방식은 버전을 보여줄 때 파일이 만들어졌던 맨 처음까지 거슬러 올라가며 바뀐 점을 모두 반영하는 계산을 해야 한다는걸 알 수 있습니다. 예를 들어 README.txt가 백번 바뀌었다면 SubVersion은 백번의 계산을 모두 해야합니다. 하..
2022.04.18