티스토리 뷰

git

github

미짱~ 2022. 12. 15. 22:15

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 참고 하고 싶다면 밑에 글 참고

https://coding-study-hard.tistory.com/18

더보기

$ 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 상태 관련 및 상세 설명 참고 

https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%88%98%EC%A0%95%ED%95%98%EA%B3%A0-%EC%A0%80%EC%9E%A5%EC%86%8C%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0

 

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
링크
«   2025/12   »
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
글 보관함