[Git] github의 organization에 대해서 알아보자!

Haeun Noh·2023년 8월 24일
0

Git & Github

목록 보기
5/8
post-thumbnail

1. organization이란?

organization : github에서 협업을 할 수 있는 단체 계정

여러 명이 같은 project를 관리하는데 사용합니다.



2. 리포지토리를 로컬에 폴더로 가져오기 (git clone)

github의 리포내용을 똑같이 내 pc로 받아올 때 clone이라는 것을 사용합니다.

git clone 깃허브주소
  • clone : 복사해 가져온다.
  • 깃허브주소 : 해당 주소의 폴더를

이렇게 C드라이브 > 사용자경로에서 클론을 시도하면
클론을 시도한 경로에 리포지토리 이름과 동일한 폴더가 만들어지며
리포지토리에 들어있는 파일들이 똑같이 가져와진 것을 확인할 수 있습니다.



3. 원본 리포지토리 복사해 내 계정으로 가져오기 (git folk)

다른 사람 레파지토리를 복제해서 내 레파지토리로 만드는 것이 바로 folk입니다.
주로 organization의 원본 리포지토리를 내 계정으로 가져올 때 사용합니다.


folk를 받아오면 똑같은 레포가 내 계정에 똑같이 생깁니다.

만약 사람1과 사람2가 동일한 organization에서 똑같은 레포를 folk했을 경우 둘 사이에 연결고리가 생기게 됩니다.
그리고 이 연결고리는 pr(push), fetch(pull)를 가능케합니다.


githubgithub 사이에 정보가 오갈 경우 pull request pr이라는 개념이 사용됩니다.
내 기준에서 push를 날리는 걸 pr이라고 함

  • 내 기준에서 누구에게 올리는 것(push)을 pr
  • 다른 사람의 깃허브의 내용을 가져오는 것(pull)이 fetch라고 합니다.

fetch - 변경사항을 확인만 하는 것
merge - 실질적으로 이 변경사항을 내걸로 만들겠다
pull - fetch+merge



4. organization을 사용하는 이유

근데 너무 번거로워요. organization인가 뭔가 그거 안 쓰면 안돼요??

결론부터 말하면 안 됩니다.


4.1. organization을 안 팠을 경우

그렇게 되면 어떤 한 사람의 계정에 원본 리포지토리가 생기게 되며 모든 팀원은 해당 팀원의 리포를 folk하여 작업하게 될 것입니다.

그런데 만약, 이 원본을 가지고 있는 사람이 작업하다 실수를 해서 커밋 몇 개가 지워지면 어떻게 될까요??

원본 망하지,
folk한 팀원들도 동시에 망하지,
둘 다 망합니다.

왜? 원본에 무턱대고 다 수정을 해버려서 세이브된 파일들이 없거든요.
예 고생길 열립니다..


4.2. organization을 팠을 경우

그런데 organization을 파서 팀원들 모두가 복사본(folk)을 가지고 있는 채로 작업을 하면 merge라는 1차적인 방어막이 생기게 됩니다.

만약 사람1이 실수를 해서 파일 몇 개가 지워진다고 해도,
merge만 하지 않는다면 원본 파일이 바로 지워지는 일이 없고
원본 리포지토리 찾아가서 얼른 다시 복구하면 되는 일이거든요!


그리고 생각보다 merge를 할 때 에러가 생각보다 정말 많이 납니다.
개인이 push할 때 조차 merge 에러가 날 수 있는데 원본이 1차적인 방어막 없이 바로바로 수정이 되고 있다고 생각해보세요. 끔찍하겠죠?



5. organization 권한

organization을 사용하면 팀원들에게 권한을 부여할 수 있습니다.
이게 무슨 말이냐면 팀원들의 활동에 제약을 걸 수 있다는 뜻이에요.

settings > collaborators and teams > manage acceess > add people

로 들어가서 아이디를 추가해야 팀원으로써의 권한이 생기게 됩니다.


이런 권한 부여도 사용하는 이유가 있겠죠?
우선 organization은 함부로 들어오면 안 됩니다. 당연하겠죠. 원본을 지키려고 새로 만들었는데 어떤 이상한 사람이 들어와서 원본을 망쳐버리면 어떡해요.

그래서 함부로 pr, merge가 불가능하도록 권한을 부여해주는겁니다.

  • 저희는 이 사람들과만 같이 작업을 할거에요~ 라는 뜻이죠.

권한에는 크게 네 가지가 있습니다.

  • read (merge 승인 불가)
  • write (자신이 merge까지 할 수 있다)
  • tri
  • admin (본인이 알아서 다 할 수 있다)

예시를 들어보겠습니다.
만약 팀장만 admin을 가지고 팀원들은 read만을 가진다면 팀장이 merge할 것을 걸러 받을 수 있겠죠.
이상한 파일들이 있다면 pr을 승인하지 않을 수 있다는 거죠.

상황에 따라 결정하시면 됩니다~



profile
Tistory로 옮기게 되었습니다. @haeunnohh

0개의 댓글