티스토리 뷰

gogs

지난번에는 gogs라는 자체 호스팅 git 서비스를 설치해 보았고 프로젝트를 만들어 보는것을 포스팅하였다. 이번시간에는 gogs를 어떻게 사용하는지에 대해서 알아보도록 하겠다. 결론부터 얘기를 하자면 gitlab을 사용해본 사람은 안읽어봐도 된다. 거의 똑같다. 


gogs 저장소 생성

gogs 프로젝트 생성

gogs로 저장소를 위와 같이 생성을 하였다. 물론 아무것도 올리지 않았기에 아무것도 없다. 하지만 어떻게 gogs에 새 저장소를 만드는지에 대한 방법이 친절하게 나와 있다. 이를 사용해서 프로젝트를 testgogs라는 공간에 올려보도록 하자. 

 

저장소에 프로젝트 push

> C:\Users\oing\git>git clone http://localhost:3000/oingdaddy/testgogs.git
Cloning into 'testgogs'...
warning: You appear to have cloned an empty repository.

> C:\Users\oing\git>cd testgogs

> C:\Users\oing\git\testgogs>git add --all
warning: LF will be replaced by CRLF in HELP.md.
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in mvnw.
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in mvnw.cmd.
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in pom.xml.
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in src/main/java/com/example/demo/DemoApplication.java.
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in src/main/resources/application.properties.
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in src/test/java/com/example/demo/DemoApplicationTests.java.
The file will have its original line endings in your working directory

> C:\Users\oing\git\testgogs>git commit -m "first commit"
[master (root-commit) 8f61e74] first commit
 7 files changed, 592 insertions(+)
 create mode 100644 HELP.md
 create mode 100644 mvnw
 create mode 100644 mvnw.cmd
 create mode 100644 pom.xml
 create mode 100644 src/main/java/com/example/demo/DemoApplication.java
 create mode 100644 src/main/resources/application.properties
 create mode 100644 src/test/java/com/example/demo/DemoApplicationTests.java

> C:\Users\oing\git\testgogs>git push -u origin master
Enumerating objects: 21, done.
Counting objects: 100% (21/21), done.
Delta compression using up to 8 threads
Compressing objects: 100% (12/12), done.
Writing objects: 100% (21/21), 7.83 KiB | 1001.00 KiB/s, done.
Total 21 (delta 0), reused 0 (delta 0), pack-reused 0
To http://localhost:3000/oingdaddy/testgogs.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

위와 같은 과정을 거쳐 프로젝트를 내가 gogs에서 생성한 공간에 push를 하였다. 그리고 나서 gogs로 돌아가 보자. 

 

gogs 화면

gogs에서 testgogs라는 공간에 정상적으로 프로젝트가 push 되어 잘 들어간 것을 확인 할 수 있다. 

 

gogs source view

소스가 있는 곳으로 들어가서 한번 열어봤다. 여기서 소스를 직접 수정할수도, 삭제할수도 있다. 


branch 생성

이건 꼭 gogs에 해당하는 내용은 아니고 git을 사용하는데 있어서 알고 있어야 할 지식이고 gogs에서 이것을 어떻게 다루나 살펴보기 위해 branch를 만들어 보았다. 

> C:\Users\oing\git\testgogs>git branch tester

> C:\Users\oing\git\testgogs>git branch
* master
  tester

> C:\Users\oing\git\testgogs>git checkout tester
Switched to branch 'tester'

/// test.txt 파일 삽입

> C:\Users\oing\git\testgogs>git add --all

> C:\Users\oing\git\testgogs>git commit -m "second commit"
[tester cb1c5bd] second commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.txt

> C:\Users\oing\git\testgogs>git push -u origin tester
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 262 bytes | 262.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
To http://localhost:3000/oingdaddy/testgogs.git
 * [new branch]      tester -> tester
Branch 'tester' set up to track remote branch 'tester' from 'origin'.

위와 같은 과정을 거쳐 tester라는 branch를 만들고 test.txt 라는 파일 하나를 push 하였다. gogs에서는 어떻게 보이나 확인을 해보자. 

 

gogs branch

새로고침을 한번 해보면 정상적으로 tester branch가 생성된것을 확인할 수 있고 tester로 branch를 바꾸면 정상적으로 test.txt 파일이 들어온 것을 확인할 수 있다. 


branch source merge

gogs merge

이제 branch에서 작업한것을 master에 merge하려고 한다. 이런 과정들도 모두 CLI에서 처리를 할 수 있지만 gogs에서도 처리를 해줄 수 있다. 좌측에 보이는 초록색 버튼을 클릭한다. 

 

 

gogs merge

master와 새로 만들고 작업을 한 tester branch를 비교 후 변경된 내용을 확인하고 풀 리퀘스트 생성을 해준다. 

 

 

 

gogs 풀 리퀘스트

그럼 풀 리퀘스트에 1 이라는 숫자가 표시가 되고 tester에서 master로 머지를 하려 한다는것을 확인 할 수 있고 마지막으로 풀 리퀘스트 머지를 수행한다. 

 

 

gogs merge 결과

그럼 정상적으로 병합이 되었다는 메세지가 나오고 merge는 종료가 된다. 

 

 

gogs merge 결과 확인

다시 원래의 화면으로 돌아가면 merge가 정상적으로 되어 master branch에서 test.txt 파일이 보이는것을 확인할 수 있다. 


기본 branch 설정

branch 설정

이렇게 branch가 나뉘면 실수할 일이 늘어나는데 이를 조금이라도 방지해주고자 하는 기능이 있다. 설정으로 들어가면 기본 branch를 설정할 수도 있고 특정 branch를 보호할수도 있다. 

 


지금까지 설명한 내용은 거의 git의 기본 개념을 gogs를 통해서 수행을 해본 것이다. 다른 호스팅 git 서비스를 사용한다고 해도 거의 동일하게 진행할 수 있다. 다음으로는 권한관리에 대해 알아보도록 하겠다.

gogs 권한관리 

새 계정 생성

oingdaddy라는 계정 외에 oingfather라는 계정을 생성하였다. oingfather를 testgogs의 일원으로 추가를 할 계획이다. oingfather로 한번 로그인을 하고 로그아웃을 한 후 다시 oingdaddy라는 계정으로 로그인을 하였다. 

 

 

gogs 비공개 저장소

지금까지 다룬 testgogs라는 저장소는 비공개 저장소이다. 그렇기에 내가 수락한 사람만 이 저장소에 접근 및 작업을 할 수 있어야 한다. 

 

gogs 공동작업

마찬가지로 설정에서 공동 작업 이라는 메뉴로 들어가서 추가할 멤버를 검색해본다. oingfather가 보인다. 새 공동작업자로 추가를 해준다. 

 

gogs 공동작업 권한

그럼 oingfather에 대해서 권한을 부여할 수 있다. 참 편리하다. 

 

이상 아주 간단히 gogs에 대해 알아보았다. 오픈소스인데도 참 속도도 빠르고 괜찮은것 같다. 

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
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 31