Github + GitKraken 연동하여 Repository 생성 및 관리하기 (+ Repository 관련 기능 간단 설명)

rhkr·2022년 7월 31일

github

목록 보기
1/1

1. repository 생성

github에서 코드관리를 위해서는 respository를 생성하여 그곳에서 저장 및 관리를 한다.

Owner, Repository name, Description, Public/Private

  • Owner
    말 그대로 해당 리포지토리를 만든 사람. 자동으로 나의 계정이 뜬다.
  • Repository name
    리포지토리의 이름. 파일명처럼 내가 원하는 이름으로 설정 가능하다.
  • Description
    해당 리포지토리에 대한 설명이다. 어떤 프로젝트를 관리하는지, 어떤내용을 주로이루는지 등 설명하고싶은 내용을 적으면 된다.
  • Public/Private
    해당 리포지토리를 다른사람들이 모두 볼 수 있는 public으로 할건지 나만 보거나 나의팀원들만 볼 수 있도록 private으로 설정할 것인지 선택한다.
    private으로 하면 제약이 좀 있을 수 있다.

README file

깃허브는 대표적인 첫 화면을 만들기 위해 readme 파일을 생성하게 해준다.체크를 하면 자동으로 하나 만들어준다.

.gitignore

프로젝트와 관련이 없는 부수파일 (메타데이터, 숨겨진 파일 등등)
개발자들은 이미 이 파일들이 불필요한 것을 알고 있고, 어떤 파일들이 불필요한지도 다 알고있다. 즉, 집단지성을 이용하여 불필요한 파일들의 rule들이 다 정해져 있다고 보면 된다.

이와 같이 예를들어 C언어 개발에 필요없는, 즉 업로드 하지 않을 부수파일들을 template로 제공을 해준다.

요즘에는 개발 툴에서 자동으로 .gitignore를 만들어 주기 때문에, 딱히 저 template을 사용하지 않아도 상관없다.



그리고, 다른분들은 gitignore.io를 다들 많이 사용한다고 들었다.

.gitignore 파일을 자동으로 생성해주는 사이트이다. 관련 키워드를 위와 같이 입력하면, 자동으로 .gitignore파일이 생성되어 그대로 사용하면 된다.

License

오픈소스 프로젝트를 진행한다면, 라이센스를 지정 해 주어야 한다.

여러 라이센스들이 존재한다. 가장 널리 알려진 라이센스는 MIT License(아무 제한 없이 누구나 공개된 상태로 이용 가능한 라이센스의 한 종류)이다.

2. GitKraken에서 Clone 및 관리


레포지토리를 생성하면 GitKraken Client에서 위와 같이 clone할 레포지토리와 어디에 clone할건지 등을 정하고 clone이 가능하다.

하지만, 좀더 최신기능을 사용하여 repository관리를 해보자.

메뉴에서 Workspaces를 찾아 클릭한다. 그리고 New Workspace로 새로운 워크스페이스를 생성하거나 기존의 워크스페이스 안에 들어간다.

워크스페이스에서 위와 같이 Add Repositories로 관리하고 싶은 레포지토리 명을 입력하여 생성하면 위와 같이 레포지토리가 워크스페이스 안에 들어가게 된다.

하지만, clone을 시도할 시, readme파일을 생성하지 않았다면 에러가 날 것이다.
그렇게 되면 위의 레포지토리 명을 클릭을 하여 들어가보면

위와 같이 위에 "아무 commit이 없어서 최초의 commit이 꼭 필요해요. commit 해줄까요?" 라고 한다.
즉, readme파일을 만들어주겠다는 뜻이다.

initialize를 클릭한다.


그러면 이렇게 README.md가 자동으로 만들어진 것을 확인 할 수 있다.




그리고 다시 보면 원래 branch명이 master로 지정이 되어있을 것이다.
요즘에는 slave, master 라는 어감이 좋지 않다는 이유로 main을 많이 쓰는 추세이기 때문에 branch명을 main으로 수정하자. (개인적으로는 GitKraken 에서 이를 인지하고 main으로 자동지정 해주면 좋겠다)

위와 같이 master로 되어있는 명을 우클릭 -> Rename master를 클릭하여 main으로 바꾸면 끝이다.

이제 push를 해주면 README.md파일이 변경된 main브랜치가 반영이 될 것이다. 위와 같이 Push를 눌러준 후 github를 보자.


이와같이 GitKraken과 github 로컬 리포지토리가 잘 연동이 된 것을 확인할 수 있다.

연동되었는지 확인 할 수 있는 또다른 방법

프로필 setting -> application에서 활성화 되어있는지 확인해본다.
권한문제가 있다면 이렇게 setting을 잘 보는것도 팁이다.

3. Repository 메뉴들 간단 설명

Issues 메뉴

Issues는 업무 관련 내용을 작성할 수 있는 곳이다.

new issue를 누르면

새로 할 안건 및 업무를 입력하여 제출한다.

  • Assignees
    해당 업무를 진행 할 사람 지정
  • Labels
    어떤 업무인지 라벨링. 새로운 기능 개발은 보통 enhancement 라벨링을 사용한다.

-projects, milestone
특정 프로젝트나 마일스톤이 있다면 연동이 가능하다.

마일스톤이란?

이렇게 업무 기간 관리 하는 것이다. 나는 학교 다니면서 지겹도록 해봤다.


예를들어 github에서 issues -> create milestone으로 마일스톤을 생성 하면

이와 같이 마일스톤이 생성된다. 해당 마일스톤에 issue를 연동하고 나서 업무를 완료하면 마일스톤의 bar가 채워지는 형식이다.

Pull requests 메뉴

Pull requests는 팀원들이나 조직 구성원들에게 "실제 제가 개발한 내용입니다. 확인 해보시고 괜찮다면 소스코드 합쳐주세요"를 할 수 있는 곳이다.
여기에서 code review를 진행하고 merge를 한다.

Actions 메뉴


Actions는 마지막에 빌드와 배포를 자동으로 해주는 곳이다.

Projects 메뉴

소프트웨어 개발 방법론중에서 애자일 방법론(소통 위주. 정처기때 공부한 기억이 있다) 이 있는데, 요즘에는 엄청나게 엄격한? 프로젝트가 아니라면 거의 애자일을 활용한다. (특정 기업에서는 고칠 수 없는 기능이 있거나 하면 폭포수를 아직 사용한다고 한다)

애자일 방법론에서 많이 사용하는 칸반보드, 백로그 등을 사용할 수 있다.(테이블 등 다른 방법도 사용 가능)

예를들어 백로그(할 일 쌓아두고 드래그 앤 드롭 ) 방식을 선택하면,

이와 같이 할일들을입력하고 드래그 앤 드롭으로 관리 가능하다.

ready 아이템을 클릭시 Conver to issue로 , 이를 위에서 말한 issue로 만들 수 있다.

Issue와 같이 Assignees, Status 등을 설정 가능하다. 조금 다른부분을 설명해보자면

  • Priority
    우선순위이다. 회사마다 다르겠지만, 그렇게 긴급하거나 우선순위가 높지 않은 것이라면 Medium 정도로 하면 된다.

  • Size
    큰개발인지 작은개발인지 등 개발 사이즈를 지정한다. 그렇게 큰 개발이 아니면 예를들어 Medium으로 가능하다.





    완성한 예를 보면 간단하게 이렇게 가능하다.

그리고 나서 해당 업무를 진행하기로 했으면, ready 상태 에서 in progress 상태로 드래그 앤 드롭한다.

그러면 나의 repository Issues 에서 해당 내용이 반영된 것을 확인 할 수 있다.

그리고 pull request를한다면

in progress 상태 에서 in review 상태가 될 것이다.


그리고 확인 되고나서 merge가 되면

in review 상태에서 done상태로 넘어가게 되는 구조이다.


이외에 다른 자동 상태변경을 custom하려면


Workflows 메뉴로 들어가 설정이 가능하다.




또한 settings 메뉴에서 field 등과 같은 것들을 custom가능하다.

Wiki 메뉴

해당 개발중에 사용된 기술 지식 등과 같이 문서화를 하고싶은 내용들이 들어간다.

Settings 메뉴

매우 다양한 셋팅들을 할 수 있다. 해당 setting은 직접 보고 해보면서 익히는 것을 추천한다.
예를들어 settings -> general -> discussions를 활성화 하면


위와 같이 질문 등과 같은 소통을 할 수 있는 메뉴가 생성이 된다.


이렇게 대략적으로 처음에 익히면 좋을 내용들을 정리해보았다. 나도 잘 모르지만 그래도 배운 내용들을 정리하며 공유를 하고자 적었다. 앞으로도 새로운 기능이나 내가 공부해야하거나 공유하고싶은 내용이 있다면 글을 작성 할 예정이다.

0개의 댓글