일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클래스
- 프로그래밍
- 리눅스
- Elk
- 메소드
- 자바
- 데이터베이스
- github
- Java
- 이클립스
- 스프링
- spring
- 코딩초보
- 자바기초
- JAVA기초
- 알고리즘
- 배열
- 제이쉘
- 초보코딩탈출
- 프로그래밍기초
- 자바프로그래밍
- 초보코딩
- 프로그래밍언어
- 자바 스프링
- JShell
- 스프링 기초
- Git
- 컴퓨터과학개론
- 기초코딩
- eclips
- Today
- Total
키보드워리어
【Git】협업을 위한 깃 - 2 본문
안녕하세요 【키보드 워리어】
블로그 방문자 여러분, 안경닦이입니다.
이전 시간에 git에 대해 배울 때 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영하는 법까지 배우기로 하였는데요.
오늘 그것에 대해 살펴보려고 합니다.
1. 누가 이 작업할 것인지 정한다. (할당)
2. 각자 맡은 것을 작업한다. (브렌치)
3. 각자 작업을 프로젝트에 합칠 수 있게 공유한다. (병합)
4. 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다. (피드백)
먼저 협업을 한다는 가정하에 우리가 배워야 할 내용들을 개념들이 많은데요~
내가 작업한 내용들을 푸시하기 이전에, 먼저 반영해달라고 하는 요청 pr에 대해 알아보겠습니다.
| pr이란?
pr은 Pull Request에 약자로, 내 브렌치를 원격 repo에 병합하기 이전에,
반영해달라고 깃허브를 통해 요청하는 작업을 의미합니다.
pr을 자주 하게 되면, 팀원들과 작업 소통이 원활하게 되고 개선해 나아가는 과정을 밟게 됩니다.
결과적으로 작업의 완성도도 올라갈 수 있습니다.
pr요청을 하고 나서 팀장 정도 되는 담당자가 병합 확인을 누르면 원격 rpo에는 커밋이 또 생성이 됩니다.
그렇다면 그것을 나의 로컬 repo에도 패치해야겠죠?
※주의할 점은, pr이 완료되기 전까진 pr요청을 한 로컬 브랜치는 삭제되지 않는 점입니다.
pr이 반영되기 전 추가 커밋을 해야하는 경우에, 로컬 브랜치에서 다시 커밋한 후에
원격 브렌치에 푸시해서 변경된 내용을 반영한 후에
다시 pr하시면 됩니다.
| Fork
그리고 다른 사람의 오픈소스에도 내가 fork 기능을 사용하게 되면 다른 repo에도 pr 할 수 있게 됩니다. fork를 이해하기 위해서, 음식 먹을 때 음식을 포크를 집어 가져오는 행위를 생각해보세요.
fork는 나의 repo에 원본으로 된 오픈소스 코드를 복사해서 새로운 독립적인 소프트웨어로 개발하는 것을 의미합니다.
오픈소스에 fork 해서 작업한 내역들은 "내 코드가 반영이 가능할까요?" 하고 pr 해볼 수 있습니다. 물론 기준에 맞지 않는다면 거부당할 수도 있구요.
pr이 승인이 되면, 나도 이 오픈소스에 기여한 사람이 될 수 있습니다!
오픈소스에 기여하게 되면 이렇게 repo에 오른쪽 화면 탭에서 contributors 항목에서 자신을 나타낼 수 있습니다.
기여를 많이 하면 할수록, 실력이 많이 늘어나겠죠?
왜 개발자들은 자신의 명함이나 포트폴리오에 github 주소를 넣을까요? 그건 나를 잘 알려주는 하나의 정보 역할을 하기 때문입니다. 깃헙을 잘 이용하면 이렇게 많은 부분에서 도움을 받게 됩니다.
| Amend
그리고 우리는 사람이기 때문에, 때론 내 작업에서 커밋 실수를 할 수 도 있지 않겠습니까?
최신 커밋을 고쳐야 할 때, 어떻게 해야 할까요? amend (개정하다) 기능은 커밋을 실수했을 때 되돌리는 방법 중에 하나인데요.
※ sourcetree로 작업하실 때에는 한글 기능에서 오류가 나서, 영어로
작업하시는 게 더 편하실 겁니다.
커밋을 고칠 때는 나만의 브렌치에서만 적용시켜야 합니다.
다른 사람과 협업하고 있다고 한다면, 다른 사람의 커밋을 망칠 수도 있기 때문입니다!!
소스 트리 워크스페이스에서 파일 상태 > 커밋 옵션 기능을 클릭하면 마지막 커밋 수정이라고 되어있는 게 amend입니다.
이 기능을 사용하면 마지막 커밋하기 전 상태로 돌아가 내가 스테이징 시키지 못한 파일을 다시 add 해서 커밋할 수 있게 해 줍니다.
| Force push
force push라는 기능은 강제로 푸시하게 해주는 기능을 알려주는데요. 푸시 후에 푸시한 커밋을 되돌려 줍니다.
강제로 커밋을 덮어 씌운다고 생각하면 됩니다.
Mac > Sourcetree > Preferences > Advaced > Allow force push를 클릭해주면 가능해집니다.
| Revert, Reset
커밋이 변경되었음을 다른 사람과 협업할 때 알려주는 것으로 Revert가 있습니다.
협업을 할 때는 어떤 내용으로 되돌렸는지 기록하는 것도 중요하니까요.
Amend와 다른 점은 어떤 걸 되돌렸는지 알 수 있고, 최신의 것이 아닌 예전 커밋으로 돌아갈 수 있다고 할 수 있겠습니다.
실행 방법은 되돌리고 싶은 커밋에서 오른쪽 버튼을 클릭 후 커밋 되돌리기를 클릭하면 돼요.
변경한 커밋을 원격 repo에 반영하고 싶으면 푸시하면 되고요.
Reset은 옛날 작업으로 아예 초기화시킬 때 사용하는 것으로 리셋을 할 때 내가 내가 이전에 어떤 커밋을 했는지 알 수 없게 될 수도 있습니다!! 이건 soft, mixed, hard 세 가지로 구분할 수 있습니다.
- Soft > 커밋들을 되돌리고 변경 작업을 보존해서 파일 변경사항을 보여준다. 변경사항은 add되 지 않은 상태로 보인다.
- Mixed > 커밋들을 되돌리고 변경 작업을 보존해서 파일 변경사항을 보여준다. 변경사항은 add 된 상태로 보인다.
- Hard > 커밋들을 되돌리고 변경 작업까지 모두 없애버린다. 작업 내역을 복원할 수 없다.
| Stash
숨겨두기 기능인 Stash는, 프로젝트의 변경사항을 임시적으로 보관해둘 때 사용합니다.
예를 들어, 다른 브랜치로 체크아웃하는 경우에,
현재 브렌치의 변경사항이 사라지게 되는데 이전 작업 중이라서 커밋하지는 않고 변경사항만 보관해두고 싶을 수도 있겠죠?
이때 커밋 대신 stash를 사용합니다.
치워두기란 카테고리에 [On 브랜치명]양식으로 작성하며 이는 저장했을 때 메시지로 적용 가능합니다.
만약 스태시가 활성화가 안되었으면 이는 바뀐 커밋이 없다는 걸 의미합니다. 적용한 게 없으니 저장할 것도 없지요.
참고하시면 좋은 글
2022.08.04 - [개발 관련/Git] - 【Git】협업하기 위한 깃
2022.07.31 - [개발 관련/Git] - 【Git】소스트리 버전관리
2022.07.24 - [개발 관련/Git] - 【Git】 Git, Github? 차이가 뭔가요??
2022.07.14 - [개발 관련/Git] - 【Git】기초 준비 과정
'개발 관련 > Git' 카테고리의 다른 글
[IntelliJ] 깃허브 적용 (0) | 2023.04.20 |
---|---|
【Git】협업하기 위한 깃 (0) | 2022.08.04 |
【Git】소스트리 버전관리 (0) | 2022.07.31 |
【Git】 Git, Github? 차이가 뭔가요?? (0) | 2022.07.24 |
【Git】기초 준비 과정 (0) | 2022.07.14 |