developer_kcm
Git, GitHub 본문
Git(깃)은 컴퓨터 파일의 변경사항을 추적하고 여러 사용자들 간에 해당 파일 작업을
조율하기 위한 대표적인 버전 관리 시스템(VCS)이다.
GitHub는 대표적인 무료 Git 저장소이다.
GitHub 업로드 순서
- git init // 현재 프로젝트에서 변경사항 추적(버전 관리)를 시작
- git config --global core.autocrlf true(windows) or input(MacOS) // 개행문자(Newline) 설정
- git config --global user.name '사용자이름' // 2~3 커밋(버전 생성)을 위한 정보 등록
- git config --global user.email '이메일주소' // 2~4는 git을 처음 설치하고 사용할 때 설정한다.
- git config --global --list // 2~4를 잘 작성했는지 확인 할 수 있는 명령어
- git status // 현재 버전관리 상태를 확인(구성 확인)
- git add . // 폴더 나 파일들을 버전관리 하기 위해 GitHub에 추가하는 명령어
- git commit -m '커밋 메시지 내용' // add . 를 통해 추가된 파일이나 폴더에 대한 메시지와 함께 버전을 생성
- git log // 커밋을 통해 등록한 버전을 확인하기 위한 명령어
- git remote add origin 저장소주소 // origin 원격 저장소를 연결
- git push origin main // 연결한 origin 원격 저장소에 버전 내역 전송
Git branch 생성
git branch 브랜치 명 // 브랜치 생성
git checkout 브랜치 명 // 생성한 브랜치 연결
Git reset(되돌리기)
git reset --hard HEAD~되돌리고 싶은 커밋 갯수 // 현재 상태에서 과거 commit 버전으로 돌아가기
*여기서 HEAD는 현재 브랜치를 가리키는 포인터이며 브랜치에 담긴 커밋 중 가장 마지막 커밋을 가리킨다.
git reset --hard ORIG_HEAD // orig는 origin을 뜻하며 과거로 돌아갔던 내용을 다시 되돌리는 즉, 가장 최근의 현재 상태로 돌아간다.
다른 환경에서 브랜치 가져오기
git branch -r (remote)
git checkout -t origin/브랜치명 // 원격 저장소에 있는 브랜치 내 로컬로 가져오기
git checkout main
git branch -d 브랜치명 // 로컬에서 브랜치 삭제하기
git checkout -b 브랜치 // 브랜치를 생성함과 동시에 해당 브랜치로 이동
.gitignore // Git이라는 버전 관리 시스템에서 무시할 폴더나 파일을 넣을 파일
예를 들어, .gitignore 파일을 만들고 그 안에
.vscode
.DS_Store
mode_modules
이렇게 작성하면, {.vscode / .DS_Store / mode_modules} 파일들은 github 저장소엔 업로드되지 않는다.
그러나, 이미 원격 저장소에 올라간 파일이나 폴더들을 무시하고 싶을 땐
똑같이 프로젝트 내 root에 .gitignore 파일을 만들고 저장소에서 안보기에 할 폴더나 파일을 집어 넣은다음 저장하고
터미널 명령어에 git rm -r --cached . 를 친다.
rm => remove
-r => 재귀(recursive) 즉, 폴더일 경우 폴더 안의 폴더 또는 파일 또 그 폴더안의 내용까지
cache => 감추다
그 후, 똑같이 git add . => git commit -m "gitignore 규칙 추가" => git push origin 브랜치
Git 브랜치 전략 - Git Flow
- main => 기본/메인/제품 브랜치
- dev(develop) => 다음 제품 출시를 위해 여러 기능을 병합하는 브랜치
- feature/* => 각 기능 개발을 위한 브랜치
- release => 제품 출시 직전 최종 테스트(QA)를 위한 브랜치
- hotfix/* => 제품에 버그가 확인되었을 때 긴급 수정을 위한 브랜치
'TIL' 카테고리의 다른 글
230806 - til (0) | 2023.08.07 |
---|---|
css - 전환(transition) & 변환(transform) (0) | 2023.05.17 |
css - display (0) | 2023.05.16 |
css - Position (1) | 2023.05.10 |
css 속성(가상 클래스, 가상 요소 선택자) (0) | 2023.05.10 |