티스토리 뷰
git != = github(Cloud Remote Repository Services)
버전컨트롤 시스템(git)과 웹서비스(github)은 다르다!
Cloud Remote Repository Services
-클라우드 원격저장소 시스템
- Github: 비영리였지만, Microsoft에 인수된 가장 유명한 서비스
- Bitbucket: Atlassian이 서비스. jira, confluence, trello 등 부가도구와 유기적( jira, confluence, trello 사용하는이유? 디자이너와 기획자가 쓰기 쉽다, 복합적인 규모(개발자,디자이너,기획자)의 회사에서 사용많이 한다. )
- GitLab: GitLab이 서비스. 사설 서버 구성이 가능
git command
{ } 중괄호는 커멘드에 쓰는거 아님 ( 해당 예시는 밑에 사진 첨부
- $ git clone { github repo addr }: 원격 저장소에 있는 파일 및 디렉토리 복제
- $ git status: 파일 상태 확인 ⭐⭐⭐⭐⭐ (파일 생성, 수정)
-Untracked(추적 되지 않은) file: 파일 생성시 추적되지 않는 파일 혹은 삭제된 파일 상태
-Staged : git add { file name } 후 해당 파일 Staged 상태
-Modified : vi~ { file name } 파일 보기 후 Insert 모드로 파일 작성 혹 수정 후 저정된 파일 상태
- $ git add { 파일명 }: 새로운 파일 추적
- $ git commit: (생성후) 추적된 파일 혹은 수정된 파일, 삭제된 파일, 파일명이 바뀔때 작업한 단위로 작업했던 내용 작성 (동시간에 작업한게 2~3개 일 경우 해당 부분을 뭉뚱그려 하나로 커밋X. 작업같은 경우 다 다른 작업을 했기때문에 변한 부분에 대해서 1커밋! ) ⭐⭐⭐⭐⭐
- $ git log or git lg : 이력 확인
- $ git lg가 가독성 좋음
- HEAD => [ branch name ] : 특정 브랜치의 마지막 커밋에 대한 포인터
- $ git push { store name } { branch name } : 저장소에 있는 해당 브랜치를 원격저장소에 올림
- $ git remote: 현재 프로젝트에 등록된 리모트 저장소(저장소의 이름)를 확인 가능
- $ git remote -v: 현재 프로젝트에 등록된 리모트 저장소 확인 및 주소 확인 가능
- $ git remote add {store name} {repo addr}: 원격을 추가할 때 원하는 이름으로 추가하는데 원하는 이름에 연결된 주소가 repo addr 가 된다
- $ git remote remove {store name}: 원격에서 저장소를 제거
- $ git pull {store name} {branch name}: 원격 저장소에 있는 브랜치를 로컬로 내려받음
- $ git branch : 브랜치 이름들이 나열되며 현재 위치에 있는 브랜치는 앞에 *(Asterisk 에스터리스크)로 표시
- $ git branch -D {branch name} : 해당 로컬 브랜치 삭제
- $ git branch {branch name} : 원하는 브랜치 이름으로 새로운 브랜치 생성
- $ git branch -m {current branch name} {change branch name} : 현재 브랜치 이름을 원하는 이름으로 변경
- $ git switch {branch name} : 해당 브랜치로 위치 이동
- $ git merge {branch name} : (merge 하기 전 먼저 선행행동: 브랜치 합병을 원하는 곳으로 먼저 이동 후) 브랜치 병합.
=> 각각에 브랜치가 같은 파일를 작업시 내용이 다르다면 conflict (충돌)이 일어난다!
=> 해결 방법? 해당 파일로 찾아가서 다른 부분을 삭제 및 퇴고
시작 전 세팅 필수!
-github 가입 필수
-git 설치 확인 $ git -v
git bash에 해당 환경설정 필
환경설정
$ git config --global user.name "당신의 유저네임"
$ git config --global user.email "당신의 이메일"
$ git config --global core.editor "vim"
$ git config --global core.pager "cat"
lg alias 설정 https://gist.github.com/johanmeiring/3002458
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"
$git config --list로 정상 설정 확인
수정이 필요할때 $ vi ~/.gitconfig에서 수정가능
git flow

깃헙에 레포지토리 만들기
더보기 눌러주시면 내용 확인 가능 !!
-위에 작업
github 로그인(필)

깃허브 네비바 상단 우측에 플러스 버튼 (빨간 동그라미) 클릭

사진 처럼 클릭후 나온 곳에 New repository 클릭

표시되어 있는 순서대로 작성 후 5번 클릭
그럼 내 레포지토리 생성 완료.

레포가 생성되면 생성한 나의 레포 화면
1번을 누르고 2번을 클릭하면 방금 생성한 나의 레포 주소가 복사

git bash (각자 운영체제에 맞는 shell 프로그램 쓰면 됩니다.)
$ git clone 아까 복사한 레포 주소를 붙인다(오른쪽 클릭 paste 단축키 shift + Ins)

그럼 레포가 복제되어 second-repo 파일이 생김
shell command 참고 하고 싶다면 밑에 글 참고
$ git status
- 파일 상태 확인 해준다 그럼 untracked files 라고 나오는데 추적되지 않던 파일 있다고 얘기한다
=> 그 이유는 내가 index.html 파일을 생성했기 때문이다.
$ git add {파일명}
- 파일을 추적

상태를 확인 하면 staged 상태로 되어있다 commit도 해달라고 표시되어있으니 커밋을 해주자
$ git commit
- staged 상태로 된 파일에 커밋을 작성

하단에 사진 처럼 뜬다 insert(i키)를 누른 후 commit 작성 => 노멀 모드로 변경(esc)=>wq(작성 저장후 종료)

$ git log or git lg
- 이력 확인 가능
- $ git lg 같은 경우 더 가독성이 좋다

$ vi README.md
-파일 열기


$ cat README.md
-작성 후 작성된 파일 보여주기

$git status
-파일 상태 확인 README.md 파일 현재 수정되었다고 나옴 , 현재 not staged 이기 때문에 다음
> $ git add README.md 명령어써준다
-staged 상태로 올려준다

$ git commit
-작업한 내용을 작성해준다

$ git commit 하면 나오는 화면
-insert 모드 (파일 수정모드)로 해 수정한 부분에 대해서 작성해준다

커밋이 완료 되면
$ git push origin mian
해서 로컬 저장소에 있는 파일을 원격저장소인 github으로 올려준다.


push 하고 나면 github 내 레포에 해당 변경된 md 파일 확인 가능 하다.
Conventional Commits
커밋 작성할때 규칙 !!
1. commit의 제목은 commit을 설명하는 하나의 구나 절로 작성.
2. commit 작성시 띄어쓰기및 영문일 시 대문자로 구분이 가게 작성
=> importanceofcapitalize (X)=>Importance of Capitalize (O)
3. prefix 달기
-commit 시 필수로 어떤 부분이 수정됬는 지 짧게 머리말 달아준다 생각하면 된다!!
-예시 docs: Edit index.html 이런식으로 작성
build: 시스템 또는 외부 종속성에 영향을 미치는 변경사항 (npm, gulp, yarn 레벨)
ci: ci구성파일 및 스크립트 변경
chore: 패키지 매니저 설정할 경우, 코드 수정 없이 설정을 변경
docs: documentation 변경
feat: 새로운 기능
fix: 버그 수정
perf: 성능 개선
refactor: 버그를 수정하거나 기능을 추가하지 않는 코드 변경, 리팩토링
style: 코드 의미에 영향을 주지 않는 변경사항 ( white space, formatting, colons )
test: 누락된 테스트 추가 또는 기존 테스트 수정
revert: 작업 되돌리기
commit 시 필수로 기억!!
- commit은 동작 가능한 최소 단위로 자주할 것
=> 4~5개 작업을 했다해도 그걸 뭉쳐서 한꺼번에 commit 하면안된다. 최소 단위라 함은 내가 작업한 하나 하나
다 다른 작업을 했을 것이다 그러므로 commit은 4개의 작업을 했다면 4개의 commit이 있어야 하며
어떤 작업을 했는지 작성해줘야한다.
- 해당 작업 단위에 수행된 모든 파일 변화가 해당되어 commit에 포함
- 모두가 이해 할수 있는 log를 작성
- Open Source Contribution시 영어가 강제, 그렇지 않을 경우 팀 내 사용 언어를 정해서 사용.
- 제목은 축약하여 쓰되(50자 이내), 내용은 문장형 작성하여 추가 설명 필
- 제목과 내용은 한줄 띄어쓰기로 분리
- 내용은 이 commit의 구성과 의도를 충실히 작성
gitignore
:추가 되지 말아야하는 폴더나 파일을 정의하는 파일.
-특정파일 추적을 하고 싶지 않을 경우
해당 홈페이지에서 인풋창에 추가 되지 말아야하는 걸 작성 하면된다
> windows, node_modules
https://www.toptal.com/developers/gitignore/
gitignore.io
Create useful .gitignore files for your project
www.toptal.com
참고
Git 상태 관련 및 상세 설명 참고
Git - 수정하고 저장소에 저장하기
.gitignore`를 사용하는 간단한 방식은 하나의 `.gitignore 파일을 최상위 디렉토리에 하나 두고 모든 하위 디렉토리에까지 적용시키는 방식이다. 물론 .gitignore 파일을 하나만 두는 것이 아니라 하위
git-scm.com
Conventional Commits 관련 참고
https://www.conventionalcommits.org/ko/v1.0.0/
Conventional Commits
커밋 메세지에 사용자와 기계 모두가 이해할 수 있는 의미를 부여하기 위한 스펙
www.conventionalcommits.org
오늘 느낀 점
조금 command가 아직은 익숙치 않아 고생고생 타자도 넘느림
=> 영타 속도 더 빠르게 연습 필요
오늘 중요도
물론 다 중요하지만!!
git status ⭐⭐⭐⭐⭐ 항상 상태 확인!!
=> 파일 생성, 파일 추가 , 커밋시 !! 항상 상태 확인
git add ⭐⭐⭐⭐
git commit ⭐⭐⭐⭐⭐파일 작업 당으로 자주 커밋 필수
'git' 카테고리의 다른 글
| Git Flow (0) | 2022.12.19 |
|---|---|
| shell command/vim 편집기 command (2) | 2022.12.15 |
- Total
- Today
- Yesterday
- CSS
- shell command
- 가상클래스
- 국비지원교육
- 내일배움카드
- MegabyteShool
- 개발자치업부트캠프
- 컴포넌트
- git flow
- Git
- 개발자취업부트캠프
- 패스트캠퍼스
- html
- 그룹스터디_북스터디
- export
- vim 편집기
- Root_Component
- component
- 북스터디
- 리액트
- react
- javascript
- GitHub
- MegabyteSchool
- 메가바이트스쿨
- til
- 스코프
- 그룹스터디
- 국비지원
- JSX
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |