git - 5. 브랜치
[브랜치]
1. 브랜치 만들기
- 소스를 수정하고 싶은데 완성될거란 확신이 없으면 사용합니다. 브랜치를 추가하여서 수정할 수 있습니다. 원본 소스는 master 브랜치에 그대로 있고, 새로운 브랜치에서 수정하여도 이 원본에 영향을 주지 않습니다. 마찬가지로, 원본 소스를 수정해도 이것이 새로운 브랜치에 있는 소스에 영향을 주지 않습니다.
2. 브랜치 병합(merge)
- 새로운 브랜치를 master에 합칩니다. 새로운 브랜치에서 수정한 것들과 master에서 수정한 것들을 합칩니다. 새로운 버전으로 병합된 master브랜치가 생성됩니다. 그리고 병합을 하면서 commit도 동시에 진행합니다.
3. 브랜치간의 충돌의 해결
- 새로운 브랜치에서 commit하고, master에서 수정후 commit을 했다고 합니다. 그리고 새로운 브랜치를 master로 merge합니다. 그런데 두 브랜치에서 커밋된 코드가 동일한 코드로 보이면 충돌이 일어납니다. git은 어떤 부분을 합쳐야 하는지 알 수 없습니다.
- merge하려는 소스에서 <<<<< 과 ===== 사이에 있는 코드와, =====와 >>>>> 사이에 있는 코드가 충돌했다고 알려줍니다.
-uncommitted changes에서 오른쪽 버튼을 클릭하여 resolve conflicts > Mark Resolved를 클릭하면 충돌을 해결했다고 git에 알려줍니다.
*Resolve Using 'Mine': 나의 것을 유지하고 다른 브랜치의 것을 제거합니다.
*Resolve Using 'Theirs': 다른 브랜치의 것을 유지하고 내 것을 제거합니다.
*Mark Resolved: 수동으로 수정합니다.
4. 브랜치 충돌의 예방
- 오랜 기간 걸려서 새로운 브랜치에서 소스를 수정합니다. 그리고 master에 병합하면 충돌이 일어난 확률이 높습니다. 기간을 정해 정기적으로 master를 새로운 브랜치에 병합하면, 충돌을 줄일 수 있습니다.
1. 브랜치 만들기
- 소스를 수정하고 싶은데 완성될거란 확신이 없으면 사용합니다. 브랜치를 추가하여서 수정할 수 있습니다. 원본 소스는 master 브랜치에 그대로 있고, 새로운 브랜치에서 수정하여도 이 원본에 영향을 주지 않습니다. 마찬가지로, 원본 소스를 수정해도 이것이 새로운 브랜치에 있는 소스에 영향을 주지 않습니다.
2. 브랜치 병합(merge)
- 새로운 브랜치를 master에 합칩니다. 새로운 브랜치에서 수정한 것들과 master에서 수정한 것들을 합칩니다. 새로운 버전으로 병합된 master브랜치가 생성됩니다. 그리고 병합을 하면서 commit도 동시에 진행합니다.
3. 브랜치간의 충돌의 해결
- 새로운 브랜치에서 commit하고, master에서 수정후 commit을 했다고 합니다. 그리고 새로운 브랜치를 master로 merge합니다. 그런데 두 브랜치에서 커밋된 코드가 동일한 코드로 보이면 충돌이 일어납니다. git은 어떤 부분을 합쳐야 하는지 알 수 없습니다.
- merge하려는 소스에서 <<<<< 과 ===== 사이에 있는 코드와, =====와 >>>>> 사이에 있는 코드가 충돌했다고 알려줍니다.
-uncommitted changes에서 오른쪽 버튼을 클릭하여 resolve conflicts > Mark Resolved를 클릭하면 충돌을 해결했다고 git에 알려줍니다.
*Resolve Using 'Mine': 나의 것을 유지하고 다른 브랜치의 것을 제거합니다.
*Resolve Using 'Theirs': 다른 브랜치의 것을 유지하고 내 것을 제거합니다.
*Mark Resolved: 수동으로 수정합니다.
4. 브랜치 충돌의 예방
- 오랜 기간 걸려서 새로운 브랜치에서 소스를 수정합니다. 그리고 master에 병합하면 충돌이 일어난 확률이 높습니다. 기간을 정해 정기적으로 master를 새로운 브랜치에 병합하면, 충돌을 줄일 수 있습니다.
댓글
댓글 쓰기