일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 리눅스
- 데이터베이스
- 기초코딩
- Java
- 배열
- 자바
- 코딩초보
- JAVA기초
- 자바 스프링
- spring
- 메소드
- Elk
- 클래스
- 초보코딩
- 이클립스
- 스프링
- 프로그래밍
- 컴퓨터과학개론
- Git
- 프로그래밍기초
- eclips
- github
- 제이쉘
- 자바프로그래밍
- 알고리즘
- JShell
- 초보코딩탈출
- 스프링 기초
- 자바기초
- 프로그래밍언어
- Today
- Total
키보드워리어
【Git】협업하기 위한 깃 본문
안녕하세요 【키보드 워리어】
블로그 방문자 여러분, 안경닦이입니다.
오늘은 Git 컨텐츠로 돌아왔습니다.
깃의 목적
깃을 배우는 중요한 이유 중 하나는 프로그래밍 언어를
팀으로 협업하여 프로젝트를 할 때 편하게 작업하기 위해서 사용하는 것입니다.
만일 하루종일 짜 놓은 코드가 서로 충돌하여 프로그램에 문제가 생긴다면
효율적이라 할 수가 없을 것입니다.
그래서 우리는 충돌이 최대한 일어나지 않게,
대략적인 프로세스를 이해하는 것이 좋겠죠? :)
깃은 다음과 같은 작업으로 이뤄진다고 할 수 있겠습니다.
1. 누가 이 작업 할 것인지 정한다. (할당)
2. 각자 맡은 것을 작업한다. (브렌치)
3. 각자 작업을 프로젝트에 합칠 수 있게 공유한다. (병합)
4. 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다. (피드백)
1. 누가 이 작업 할 것인지 정한다. (할당)
프로젝트에서의 이슈란?
어떠한 ‘해결 방안’을 의미합니다.
깃허브 페이지 오른쪽 부분에서 빨간색 박스 쳐져 있는 부분은 누가 작업할건지 할당하는 부분입니다.
새로운 이슈나, 기능들이 있을 때 라벨로 붙여주기도 합니다
이 할당을 통해서 누가 작업할건지 정하는 역할을 합니다.
내가 해야하는 작업을 커밋하고 등록할 때는 어떻게 할 수 있을까요?
이슈가 지정된 작업을 마치고, 커밋을 할 때
이슈 번호가 생성된 것과 같은 숫자를 #과 함께 입력해 주면
이슈관리를 쉽게 할 수 있도록 편의성을 제공합니다.
2. 각자 맡은 것을 작업한다. (브렌치)
Branch에 대해 알아볼까요?
브랜치는 할당된 작업을 본인만의 공간에서 작업하는 걸 도와줍니다.
sourcetree에서 왼쪽 카테고리를 보면 브렌치를 생성할 수 있게 합니다.
깃허브를 사용한다면, 메인 브랜치를 main으로 지정 후
자신의 작업을 하는 branch를 새로 만들게 됩니다.
브렌치 이름은 feature/이슈 번호_관리하기 쉬운 이름으로 짓는 것이 관례입니다.
소스 트리에서 위와 같은 파란색 체크박스를 찾아볼 수 있어요.
Main: 로컬 repo의 main 브랜치
Origin/main: origin (연결시켜준 원격 repo)의 main 브랜치
Origin/HEAD: (연결시켜준 원격repo)의 현재 작업 중인 커밋을 의미합니다.
sourcetree에서는
현재 작업 브랜치를 브랜치명 왼쪽에 O 표시가 되어있습니다.
이것을 체크아웃이라고 표현하는데요.
체크아웃된 파일 상태를 파인더에서 보여줍니다. (mac)
O표시가 바로 지금 작업 중인 브렌치입니다.
새로운 브렌치에서 커밋하는 순간 위와 같은 그림처럼
새로운 노드 형성됩니다. 커밋을 할 때마다 새로운 커밋이 생겨나고요.
주의) 만약 이 브렌치를 임의로 삭제한다면 파일 상태도
브렌치가 생기기 이전 상태로 돌아가니 주의해줍시다!
3. 각자 작업을 프로젝트에 합칠 수 있게 공유한다. (병합)
병합은 작업한 브랜치를 다른 브랜치에 합치는 개념입니다.
특정 브랜치의 커밋들을 다른 브랜치의 커밋 내역에 모두 반영하는 것이에요.
병합을 해보고 싶다면 먼저 병합하고 싶은 브랜치에 체크아웃해줍니다.
[병합] 버튼을 눌러서 진행합니다. 옵션에는 아래와 같은 조건이 체크되어야 합니다.
✅즉시 커밋 병합
✅병합 커밋에 있는 메시지들을 첨부하세요
✅빠른 병합이 가능해도 새 커밋 생성
확인 버튼 클릭
자 그래프를 보면 노드가 합쳐진 걸 볼 수 있죠? 병합이 되었습니다.
그런데, 왜 origin은 그대로일까요?
origin은 원격 레포의 상태를 알려주는 것이죠.
아직 푸시를 하지 않았기 때문에 원격 레포는 병합된 커밋이 반영이 되지 않은 것입니다.
푸시해주면 원격 main브렌치도 앞으로 이동됩니다.
오늘은 협업할 때 사용하는 할당, 브랜치 작업, 병합까지의 단계를 알아보았습니다.
다음에는 충돌이 일어났을 때 해결하는 방법과
pull requset, 커밋 수정에 대해 살펴보도록 하겠습니다.
감사합니다
'개발 관련 > Git' 카테고리의 다른 글
[IntelliJ] 깃허브 적용 (0) | 2023.04.20 |
---|---|
【Git】협업을 위한 깃 - 2 (1) | 2022.08.13 |
【Git】소스트리 버전관리 (0) | 2022.07.31 |
【Git】 Git, Github? 차이가 뭔가요?? (0) | 2022.07.24 |
【Git】기초 준비 과정 (0) | 2022.07.14 |