Hexo 배포 원리에 따른 백업(backup) 방법

Hexo를 이용해서 블로그를 만들고 관리 하다보니 문제점을 하나 발견했다.
바로 백업에 관한 문제인데 Hexo 블로그는 Github에 repository를 통해 구성되어 있으니
다른 곳에서 작업할때 그것을 clone해서 수정하면 된다고 생각했다.

그러나 다른 곳에서 clone을 해보고는 문제가 있음을 알 수 있었다.
라이브되는 repository에 올라가는건 public 폴더의 내용이라 실제로 작업한 것은 repo에 push 되지 않고 로컬에만 저장되어있는 것이다.

그래서 해결책으로 별도의 백업 repository 하나를 생성하여 별도로 백업을 하기로 했는데 이 방법도 문제가 있었다.
Hexo의 테마가 별도의 git을 가지고 있어서 하나의 백업 repository만으로는 완벽하게 백업 관리가 어려웠다 그래서 두개의 백업 repository와
한개의 라이브 repository를 가지고 총 3개의 repository를 가지게 되었다.

새 저장소 생성

기존의 블로그가 라이브(.github.io) 되어있는 repository외에 2개의 저장소가 추가로 필요합나디.
테마 백업용포스팅 백업용 이렇게 2개 입니다.

새로운 repository 만들기

저는 제가 사용하는 테마의 이름인 icarus라는 저장소와 blog_backup 이라는 두 개의 저장소를 private로 만들어 줬습니다.

  • 2019.01.07일부로 Github의 private 저장소가 무료로 전환 되었습니다.

테마 백업

먼저 테마폴더를 백업해줍니다. 보통 테마를 설치 할때는 아래와 같은 명령어를 사용합니다.

1
git clone https://github.com/ppoffice/hexo-theme-icarus.git themes/icarus

물론 위와 같은 방법으로 설치해도 테마를 수정없이 사용하면 별다른 문제는 없습니다. 다만 테마의 들어가는 내용을 수정을 하게 되면 변경사항을 저장해야되고
그것을 한군데가 아니 여러곳에서 관리하러면 별도의 백업이 필요합나다.

그래서 설치되어 있는 테마의 원격 저장소의 주소를 변경해줍니다. 아래 명령어는 해당 테마폴더에서 실행해야합니다.(cd themes/icarus)

bash
1
2
3
4
5
6
7
8
9
10
11
12
# 테마 폴더에서 원격 저장소를 확인합니다.
$ git remote -v

# 원격 저장소를 변경해 줍니다. (자신의 저장소 주소로 변경)
$ git remote set-url origin <저장소 주소>

# 변경된 원격 저장소를 확인합니다.
$ git remote -v

# 변경 사항 올려줍니다.
$ git commit -a -m 'theme backup'
$ git push -u origin master

블로그 자료 백업

블로그 폴더를 git으로 초기화 시켜줍니다.

bash
1
2
3
4
5
6
7
8
9
10
11
12
#git 초기화
git init

#현재 내용을 전부 커밋해 줍니다.
git commit -a
또는
git add .
git commit -m "커밋메세지"

#백업 repo에 연결하고 push
git remote add origin <저장소주소>
git push -u origin master

이렇게 하면 각 repo에 테마백업과 포스팅 백업을 할 수 있습니다. 그러고 나서 hexo 명령어를 통해 배포해 줍니다.

배포하기

1
2
hexo clean
hexo d -g

힘든 백업 작업이 끝났습니다. ㅎㅎㅎ 약간 번거롭지만 안전한게 좋아서 이렇게 세팅하긴 했습니다.
그리고 마지막으로 테마폴더의 내용을 변경하게 되면 루트위치에서 한번에 관리가 되지 않습니다. themes/icarus 위치에서 테마백업 repo에
push 해주고 다시 루트 위치로 돌아와서 별도의 push를 해줘야 정상적으로 백업관리가 됩니다.

결과적으로 총 3개의 repo를 활용해서 블로그를 백업하고 라이브 하는 작업을 하였습니다. 먼가 조금 더 스마트한 방법이 있을것 같은데
아는게 없네요 ㅎㅎㅎ; 좋은 방법이 있으신 분은 댓글이나 메일로 남겨주시면 감사하겠습니다.

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×