git으로 협업하기

Da Woon Kim·2023년 11월 22일
1

Git으로 협업하기

git은 생각보다 유용하다. 나만의 레포를 활용하여 내가 작성했던 코드를 올리기도 하고 다른사람에게서 코드를 받아 나의 레포에 한꺼번에 올리는 것도 가능하다. 그러나 이번에는 나의 개인용이 아닌 조직화 되어있는 레포를 가져와서 사용하는 것을 리뷰하려 한다.

git Organization 만들기

협력을 진행하기 위해선 프라이빗한 공용의 레포가 생성되어야 하는데 이를 지원해주는 기능이라 생각이 든다. 팀원끼리 공유할 수 있고, 팀원끼리만 포크해서 사용 할 수도 있는 암호화된 채널이라는 생각이 강하게 들었다.

프로필창에서 오른쪽 나의 프로필 아이콘을 누르게되면 다음과 같은 창을 볼 수 있다.

여기서 형광색으로 칠해진 부분을 누르게 되면 다음과 같은 창을 볼 수 있다.

나의 조직은 현재 두 개의 조직이 포함된 것을 볼 수 있다. 여기서 위에 있는 New Organization을 누르게 되면 새로운 조직을 형성할 수 있다.

이런 화면을 볼 수 있는데 현재 고도화된 프로젝트를 만들것이 아니기 때문에 Free를 사용하기로 한다.

다음과 같이 조직 이름, 이메일, 어떻게 가져갈건지 등 설정하고 다음으로 간다.

여기 단계에서는 어떤 사람을 추가할 것인지 정할 수 있다고 한다. 메일 또는 github 네임을 태그해서 초대할 수 있다고 한다.

초대를 마치고나면 다음과 같은 조직이 완성된다. 이로써 협동 깃허브 페이지를 사용할 준비가 되었다. 별도로 invitations에서 초대할 수 있다고 한다.

협동 Git repo 구성하기

Organization을 만들었으면 레포를 생성해야 한다.

다음과 같이 입력해준다. 아래의 license는 오픈 소스에 대해 내 마음대로 활용해도 법적 문제가 없는 라이센스다. 다른 곳에서도 이러한 라이센스가 있으면 그 코드 또한 내 마음대로 이용해도 처벌받지 않게 된다고 한다.

완성하면 다음과 같이 LICENSE를 확인할 수 있다. 매우 간편한 기능으로 이루어진 것 같다. 하지만 이걸로 완성이 되지 않았다. .gitignore이란 파일이 존재해야 한다. 보안을 위해서라는데 솔직히 왜 중요한진 아직 모르겠다.

gitignore.io에서 간편하게 .gitignore을 사용할 수 있다고 한다. 다양한 환경에 맞게 가져올 수 있다고 하니 사용자 모두가 활용하는 코드를 넣는 것이 좋을 것 같다.

페이지에 이렇게 작성하고 나면 다음과 같은 코드가 나온다.

이 코드를 전체 복사해서 .gitignore에 담아 저장하면 된다고 한다.

이렇게 생성하고 빠르게 push하면 다음과 같이 바로 반영된다고 한다.


만약 commit과 push가 기억이 나지 않다면 이전 게시물을 확인하는 것을 추천한다.

fork로 게시물 가져오기

단순하게 commit해서 업로드하면서 저장하는 것도 좋지만 이렇게 진행하면 버전이나 내용이 잘못되었을 때 전부 지우게 되는 큰 실수를 범할 수도 있다. 또한 조직을 만든 사람은 자유롭게 게시물을 올릴 수 있지만 owner이 아닌 다른 멤버는 직접적으로 올릴 수 있는 권한이 없다. 따라서 fork를 활용하여 내용 업데이트를 요청할 수 있다.

위의 fork 버튼을 누르면

이러한 페이지가 나온다. 여기서 지정할 레포 이름을 등록해주면

다음과 같은 레포 포크를 확인할 수 있다.

Branch로 체크포인트 지점 만들기

fork를 하고나면 기존과 똑같이 레포를 만들어 사용할 수 있다. 위 페이지를 clone으로 적용하고 나면 기존의 프로젝트에서 가져왔던 모습을 확인할 수 있다.

branch 기능을 활용하게 되면 다음과 같이 main과 branch를 생성하여 지정한 이름으로 볼 수 있다. branch는 자료구조의 트리 구조를 연상하면 쉽게 이해된다고 한다. 나중에는 나눠진 포인트를 합치기도 하고 메인으로 반영 후 제거하기도 한다. branch mani에서 파이썬 작업을 진행해 보기로 한다.

다음과 같은 폴더를 mani branch에서 작업을 하여 commit까지 완료하였다. 여기서 main과의 차이를 확인할 수 있다.

두가지의 파일 차이가 확연히 보이는 것을 확인할 수 있었다. 이렇게 차이가 존재하게 된다. 만일 가지를 제거하고 싶다면 다음과 같은 코드를 입력하면 제거할 수 있다.

git branch -D [branch name]

이것을 입력하면 분할하였던 가지가 전부 없어지게 된다. 추가적으로 merge를 진행할 때 발생할 수 있는 문제점이나 merge 기능은 다루지 않도록 하겠다. 이 이후는 찾아보면서 진행하는 것도 재미가 있을 것 같다.

profile
Data Science를 정복하기 위해 기록용 Velog

0개의 댓글