깃을 시작하다.

작업물을 관리하고 포트폴리오를 만들어볼 생각에 깃허브 페이지를 사용해보기로 했다.
지금까지 한번도 깃을 사용해본 적이 없어서 접근이 좀 낯설었고, 생소한 개념에 이해가 잘 되지 않는 것도 있었지만 어찌어찌 하다보니 블로그처럼 보이는 형태로 만들어지긴 했다.

당장 자체 블로그 페이지를 개발할 여력이 없다보니 오픈소스로 제공되는 템플릿을 사용하기로 결정했다.
찾아보니 지킬(Jekyll)이라는 정적 사이트 생성기가 있는데, 테마가 다양하고 깃허브 공동 설립자가 루비(RUBY)언어로 개발해서 오픈소스로 배포하고 있다고 한다.
그래서인지 일반적으로 많이들 쓰더라.

일단은 기초적으로 깃을 설치하고 클론으로 간단하게 테스트를 진행했다.

git clone 리포지터리주소

그리고 지킬을 설치하려는데 루비가 없으면 실행할 수 없어서 루비 또한 같이 설치해줬다.
설치참고 블로그

지킬까지 설치한 후 클론한 폴더(로컬 리포지터리)로 이동하여

jekyll -v  

를 입력했다. 원래 잘 된다면 지킬의 버전이 출력돼야하지만, Bundler::GemNotFound 에러가 발생했다.
잘은 모르지만 찾아보니 Bundler 명령어를 한번 수행해주면 설치된 라이브러리가 정리되어 문제가 해결된다고 한다. 이를 실행하니 이후에는 문제가 발생하지 않았다.

이후 클론 폴더에서

jekyll new ./

로 지킬 초기코드를 생성해주었다. 이때 클론 폴더는 비어있어야 한다. 다음으로

bundle install

도 입력했다. 그리고 테스트를 위해

bundle exec jekyll serve

명령어로 로컬 서버를 실행했고, 도메인에 기본 로컬 주소인 http://127.0.0.1:4000/를 입력하니 정상적으로 서버 샘플 페이지가 오픈되었다.
그러면 이제 나의 깃허브 페이지 주소로도 연결이 되게끔 해야하니, 작업한 것들을 깃허브에 push 해준다.
클론 폴더에서 git bash를 실행하고

git add .
git commit -m "커밋메시지 입력"
git push

로 깃허브에 push 해줬다. 이때 커밋 메시지는 꼭 입력해야한다. 이후 주소창에 사용자이름/github.io를 입력해주니 서버 샘플 페이지가 정상적으로 보여졌다.
(push 동기화에 시간이 걸리는지 바로 나오지 않아서 조금 기다렸다.)

테스트가 끝나서 실행시켰던 로컬 서버를 Ctrl+C로 종료해줬다.
이제는 지킬 테마로 사용할 템플릿을 찾아야한다. 여러 템플릿 사이트를 찾아보다가 제일 마음에 드는것으로 골랐다.
테마 탐색 사이트
적용한 테마 사이트

적용할 테마의 깃허브 페이지로 이동해서 코드 .zip파일을 다운로드하여 압축을 풀고 파일을 모두 복사하여 클론한 폴더에 붙여 넣어줬다.
(동일한 이름의 파일은 모두 덮어쓰기 해버렸다.)

그리고 클론 폴더에서 명령 프롬프트를 실행하여

bundle install

을 다시 수행해줬다. 이후 로컬서버를 다시 실행시키기 위해

bundle exec jekyll serve

명령을 다시 입력해줬다. 기본 로컬 주소로 접속해보니 정상적으로 보여졌다.
이제는 로컬에서 이렇게 수정하여 확인한 후 최종적으로 반영할 것을 깃허브에 push 해주면 될 듯 하다.

일단은 기본적인 _congif.yml 파일을 수정해봤다. 대부분의 간단한 설정은 여기서 이루어진다.
이것저것 만져보던 중 깃허브에 push 했더니,

![remote rejected] main -> main (refusing to allow a Personal Access Token to create or update workflow ~
error: failed to push some refs to ~ 

에러 메시지가 발생했다.

찾아보니 내 토큰에 workflow 권한이 없어서 그런 것이었다.
깃허브 홈페이지에서 해당 권한을 추가해준 후 다시 해보니 정상적으로 push가 되었다.

여차저차 고생을 좀 했지만, 무작정 하다보니 어떻게든 되긴한 것 같다. 웃기게도 게시글의 comment 기능이 안되긴 하지만.. 언젠간 내가 고치겠지?

어쨌든 지금은 지킬을 사용하지만 언젠간 직접 개발한 웹사이트를 적용해볼 수 있지 않을까 싶다.

혹시라도 이 블로그 템플릿을 사용할 사람이 있다면 간단하게 리포지터리를 fork하여 사용하면 된다.

지킬 공식 문서