Chapter_1_Git(3)

5495 단어 gitgit

Summary

  • 정적 블로그 작성 (github.io & hexo)
  • .gitignore
  • branch 생성 & merge
  • gitflow

Daily Tutorial

1. 정적 블로그 작성(Hexo)

  1. MYNAME.github.io의 이름으로 repo를 만든다(Owner Name). 그 외 이름은 동작하지 않으니 주의.
  2. dev에 clone 후 index.html을 작성, add+commit+push 해준다.
  3. 브라우저 주소창에 repo 이름을 넣고 접속해본다.
  4. Node.js를 다운받는다(LTS버전 이용)
  5. git 재시작 후 node -v, npm -v 명령어를 인식하는지 확인한다.
  6. hexo-cli를 설치한다. 뭔가 오류가 있다면 윈도우 cmd에서 설치해도 무방하다.
npm install -g hexo-cli
  1. 블로그 이름을 반드시 기입하고 hexo를 시작한다.
hexo init BLOG_NAME
  1. 생성된 디렉토리로 이동, package.json 파일 확인 후 관련 패키지를 설치한다.
npm install
  1. 포스팅을 시작한다. hexo 명령어는 _config.yml 파일이 있는 곳에서 사용할 것.
hexo new post "MY FIRST POST"
  1. hexo 서버를 켜주고 localhost:4000으로 접속해보자.
hexo server
  1. github과 연동해준다.
vi _config.yml	//102번 라인, Deploy 항목으로 이동

type: 'git'
repo: MYNAME.github.io URL
  1. hexo에 deploy를 시작한다. 다음 명령어를 입력 후 MYNAME.github.io에 접속하면 hexo 페이지를 볼 수 있다.
npm install hexo-deployer-git --save
hexo clean && hexo deploy
  1. 원한다면 테마를 설치한다. 설정 파일에서 테마를 적용하고, deploy로 확인한다. 예시로 next 테마를 설치했다.
npm install hexo-theme-next

vi _config.yml	//100번 라인, theme을 next로 수정
hexo clean && hexo deploy	//적용 시간이 필요하니 조금 기다릴 것

2. .gitignore

  1. second-repo에서 .gitignore 파일을 생성한다.
  2. 임의의 파일들을 만든다.
  3. git status로 상태를 확인하면 만든 파일들에 대해 staging이 필요한 것으로 표시된다.
  4. .gitignore 파일에 트랙킹하지 않을 파일, 디렉토리를 기입한다.
  5. 다시 git status로 확인하면 더이상 트랙킹을 하지 않는다.

3. branch

  1. 로컬 저장소에서 임의의 브랜치(hello)를 생성한다.
    생성할 브랜치 이름은 작업할 내용을 명시하는 제목을 지어준다.
git branch hello

브랜치 생성 시

fatal: not a valid object name: 'master'

다음과 같은 오류 메시지가 출력 된다면 최초 1회의 커밋을 진행해야 한다. git init으로 프로젝트를 시작했기 때문에 README.md를 생성 후 커밋함으로써 해결하였다. git branch 명령 시 아무것도 보이지 않다가 최초 커밋을 진행한 후에야 * master가 보였다.

  1. 생성한 브랜치로 이동하고 임의 파일을 생성한다.
    여기서 커밋을 하지 않고 master로 나가면 hello에서 만든 example.md가 보인다.
    커밋까지 완료해야 hello에서만 보이고, 작업 내용이 master와 분리된다.
git switch hello	//git구버전은 switch 대신 checkout
touch example.md
git add example.md
git commit
  1. master 브랜치로 돌아와 상태를 확인하면 example.md가 보이지 않는다. hello에서의 작업 내용을 master에 병합한다. 작업을 마친 브랜치는 삭제해준다.
git switch master
git merge hello
git branch -d hello

4. git flow

  1. 새로운 repo를 생성하고 dev에 clone 한다.
  2. git flow를 디폴트 설정으로 시작한다. 초기 상태는 브랜치가 develop으로 선택되어 있다.
git flow init
  1. 기능 개발 코드를 작성한다.
git flow feature start HELLO
//기능 개발
git flow feature finish HELLO	//develop에 자동 merge된다.
  1. 기능 개발이 완료 되었다면 배포를 준비한다.
git flow release start v0.0.1	//버전은 보통 3자리로 표기한다.
git flow release finish v0.0.1
  1. main 브랜치로 이동하고 release 내용을 배포한다.

Notes

1. .gitignore

git이 어떤 파일이나 폴더 등을 추적하지 않도록 명시하기 위해 작성한다. 해당 문서에 작성된 리스트는 수정사항이 발생해도 git이 무시한다. gitignore.io 참고.

2. License

반드시 신경쓸 것. 가장 많이 사용하는 3가지는 아래와 같다.

  • MIT
    행동 제약 없음, SW와 관련한 책임에서 자유롭다.
  • Apache Licence 2.0
    써도 상관 없지만 소유자를 명시해야 한다.
  • GNU General Public License v3.0
    소스코드 사용시 합의금을 물거나 코드를 의무적으로 오픈해야한다.

3. gitflow

브랜치는 분기점을 생성해 독립적으로 코드를 변경할 수 있도록 도와주는데, 브랜칭 모델 중 가장 많이 사용되는 것은 git-flow 전략이다.

3-1. master, develop

주요 브랜치인 master와 develop은 항상 유지한다.

  • master
    곧 배포할 코드를 보관한다.
  • develop
    개발 중인 코드를 보관한다.

3-2. feature, release, hotfix

보조 브랜치는 필요 시 생성한다.

  • feature
    기능을 개발하는 브랜치. 기능이 완료되는 시점에 develop으로 merge한다.
  • release
    배포를 준비하는 브랜치. develop 브랜치가 배포할 수 있는 상태가 되었으면 생성한다.
  • hotfix
    배포 이후의 오류나 버그 발생 시 생성한다.

Commands

git config --list
git config --global user.name "NAME"
git config --global user.email "[email protected]"
git config --global core.editor "vim"
git config --global core.pager "cat"

git clone URL
git status
git add FILE
git commit
git push origin main

git init
git remote -v
git remote add origin URL
git remote remove mask

git branch
git branch -M main 	//브랜치가 master일 경우
git switch BRANCH	//구버전은 switch > checkout
git merge BRANCH	//main에서 진행
git branch -D BRANCH

git flow init
git flow feature start NAME		//종료 시 finish
git flow release start VERSION	//종료 시 finish

npm install hexo-cli
hexo init ghblog
npm install
hexo new post "POST NAME"
hexo server
npm install hexo-deployer-git --save
hexo clean && hexo deploy

좋은 웹페이지 즐겨찾기