[TIL] 데일리 학습 - 20929

David Oh·2022년 9월 29일
0

TIL

목록 보기
1/6

git

코드 관리를 위한 git

git을 이용하여 코드를 관리하고 github 저장소에 업로드하여 편리하게 관리할 수 있습니다.

git bash

git bash라는 terminal을 활용하여 명령어를 입력하여 코드 파일을 관리할 수 있습니다.

cd Documents : Documents라는 파일로 경로를 변경합니다.
mkidir dev : dev라는 경로를 생성합니다.
cd .. : ..는 상단 폴더를 의미합니다.
touch index.html : index.html 파일을 생성합니다.
vi index.html : vim을 이용하여 index.html 파일을 수정합니다.

vim 내에서 파일을 수정하고 작성하기 위해서는 insert mode로 진입해야합니다. vim command에서 i를 입력하여 insert mode로 진입할 수 있습니다.
그리고 vim command에서 빠져나가기 위해서 esc를 눌러 이전 모드에서 빠져나가고, :q를 입력하시면 됩니다.
:q!는 수정 이전의 파일로 되돌리기 위한 명령어이며, :wq를 쓰면 작성을 저장 후, vim command를 빠져나가게 됩니다.

우리는 주로 :wq를 사용하게 됩니다.

git

git을 이용하면, 수정내용을 commit 단위로 관리할 수 있으며, 원하는 시점에 대한 코드 및 코드 작성자를 확인하고 배포 역시도 확인할 수 있습니다.

새로운 기능을 추가하기 위해서는 branch를 이용하여 개발이 가능하며, 개발이 완료된 후 merge를 통해 원래의 폴더에 병합시킬 수 있습니다.

git을 통해 코드를 관리하는 법은 다음과 같습니다.

git add : working directory에서 staging area로 파일을 이동시킵니다.
git commit : staging area에서 local repo로 파일을 이동시킵니다.
git push : local에서 remote repo로 파일을 이동시킵니다.
git pull: remote에서 local로 파일을 불러들입니다.

로컬 저장소와 github 연결하는 법은 다음과 같습니다.

mkdir repo
cd first repo
git init
git remote add origin {github repo}  (또는 git clone {github repo})
touch 파일
git add 파일
git commit
git push -u origin master  (git push)

commit convention

commit의 제목은 commit을 설명하는 하나의 구 혹은 절로 작성합니다.
또한, prefix를 꼭 달아주어야 합니다.

feat : 기능 개발 관련
fix : 오류 개선 혹은 버그 패치
docs : 문서화 작업
test : test 관련 작업
conf : 환경설정 관련 작업
bulid : 빌드 작업 관련
ci : continuous integration 관련

commit은 동작이 가능한 최소 단위로 자주해야합니다. 이러한 단위로 수행된 모든 파일의 변화가 해당 commit에 포함되어야 합니다.

commit의 log는 모두가 이해할 수 있도록 작성해야 합니다. 그리고 제목과 log 모두 영어로 사용하는 것이 권장됩니다.

.gitignore

gitignore는 git이 파일을 추적할 때, 특정 파일이나 폴더를 추적하지 않게 하기 위해 작성하는 파일입니다. 해당 문서에 작성된 리스트는 수정사항이 발생하더라도 git은 이를 무시하게 됩니다.

gitignore는 github 내보단 다음의 사이트에서 직접 사용하는 환경을 바탕으로 설정하는 것이 권장됩니다.

https://www.toptal.com/developers/gitignore/

협업을 위한 git

branch

branch는 원본 파일에 분기점을 생성하여 원본 파일로부터 독립적으로 코드를 작성하고 수정하며, 협업을 수행할 수 있도록 도와주는 모델입니다.

git branch : 우리는 우리가 작업하고 있는 branch의 위치를 확인할 수 있습니다.
git branch 이름 : 해당 이름의 branch를 만듭니다.
git branch -D 이름 : 해당 이름의 branch를 삭제합니다.
git push origin 이름 ": 해당 이름의 branch를 remote에 push합니다.

branching model - git flow

git flow는 단계를 명확하게 구분하여 코드를 관리하도록 도와주는 모델입니다.

master - release - develop - feature branch로 단계가 구성되어 있으며, 급한 경우 master branch에서 hotfix branch를 생성하여 코드를 수정하기도 합니다.

git flow를 설치하기 위해서는 다음의 페이지를 참고하시면 됩니다.

https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html

git flow process

  1. 초기화
    기존의 git 저장소 내에서 초기화를 수행하여 git flow 사용을 시작하도록 만듭니다.
git flow init
  1. release를 위한 새 기능을 개발
    새 기능은 master branch가 아닌 develop branch에서 분기하여 개발을 시작합니다.
git flow feataure start {feature name}
  1. 기능 개발 완료
    기능 개발을 완료하여 develop branch에 병합합니다.
git flow feature finish {feature name}
  1. 기능 게시
    remote repository에 해당 기능을 게시합니다.
git flow feature publish {feature name}
  1. 원격 저장소에 저장된 기능 가져오기
    remote repository에 저장된 기능을 가져옵니다.
git flow feature pull origin {feataure name}
  1. release 하기
    develop branch로부터 release branch를 생성합니다.
git flow release start RELEASE [BASE]
git flow release publish {RELEASE}
  1. release 완료
    release branch와 master branch를 병합합니다. 그리고 release 이름을 태그합니다. 또한 release를 develop branch로 다시 병합하고 release branch를 삭제합니다.
git flow release finish {RELEASE}
git push --tags

git 수정하기

rename

git mv {파일이름1} {파일이름2}

위와 같이 입력을 수행해야 파일 이름 변경 history가 남게 됩니다.

Undoing

git checkou -- .

Unstaging

git reset HEAD {file name}

Unstaging & Remove

git rm -f {file name}

reset commit

git revert --no-commit HEAD~(되돌릴 commit 수)
git commit
git push origin {branch name}

commit을 하지 않을 때는--no-edit을 작성합니다.

profile
let David_Oh === UX+Programming

0개의 댓글