[git] git과 github (1)

EMMA·2022년 3월 11일
0
post-thumbnail

git과 github이 같은건 줄 알았지 ...

smooth한 프로젝트 진행을 위해, 잘 알아둬야 할 git/github 사용법


0
Introduction of Git

Git은 version control system
: version이란 프로젝트 파일 version을 말함
: 한마디로, 프로젝트 파일의 버전 변동을 tracking하는 프로그램
: git을 설치하고, 설치 여부를 아래와 같이 작성해서 알 수 있음

git --version

: 내 정보는 아래와 같이 등록

git config --global user.name "이름"
git config --global user.email "이메일" 

(220312 update) 왜 코드 veresion 관리가 필요할까?

  • 수많은 version을 현실적으로 관리하기 어려워, git에 그 역할을 위임하는 것
  • 언제든 이전 버전의 코드로 돌아갈 수 있음
  • 이력 관리
  • 여러 명이 하나의 프로젝트를 작업할 수 있는 환경 조성

1
모든 작업 파일을 저장할 Repository

Local / Remote 2가지 종류가 있음
: local은 내 컴퓨터에 있는 저장소
(내 컴퓨터에 git 초기화하면 모든 파일의 version을 추적할 수 있는 git repository가 생기는 것)
: remote는 외부(원격 서버)에 있는 저장소, 모두가 접근 가능함

terminal을 열고, 프로젝트 폴더로 이동한 뒤 아래와 같이 입력해 보자.

git init

그러면 이제 해당 폴더의 모든 파일들의 변천사를 git이 트래킹할 준비가 되었단 뜻이다. hidden된 상태로 생성되고, 존재를 확인하고 싶으면 아래와 같이 입력.

ls -al 
#숨겨진 list까지 all 보여준다 

만약 git을 취소하고 싶으면, 아래와 같이 작성한다.

rm -r .git

2
add & commit

commit은 "보고서.ver1" 처럼 버전을 저장하는 것과 같다.
: 특정 시점에 작업자의 수정사항이나 추가 사항을 명시하고 저장하는 행위
: 수정 사항을 만든 후 commit 하면 됨 (기준은 flexible)
: 그래야 나중에 그때 그때 코드를 찾아서 볼 수 있음

전체 process는 아래와 같음

#staging area 체크 
git stauts

#프로젝트 폴더 내 파일을 staging area에 넣기 
git add file1.js
git add file1.js file2.js file3.js
git add . 

#commit하기
git commit -m"메세지 내용"

commit 할 때, convention 확인해서 작성할 것 (commit message convention)
그리고 모두가 이해할 수 있게 작성할 것

유다시티 가이드는 아래와 같다.

(220317 update) repo의 현상태 체크하기 위한 명령어는 아래와 같다. 수시로 쓰인다, 그래야 add 되지 않은 파일들이 있는지 여부를 확인할 수 있다.

git status
분류(add,remove 등 하나 선택): 한줄 제목
- 구현내용 detail
- 구현내용 detail

log 명령어는 commit의 history와 hash 정보를 보여준다.

git log

생성한 파일을 삭제하고 싶다면, 아래와 같이 작성한다.

#원격 repo와 로컬 repo에서 모두 삭제 
git rm <file name>

#원격 repo에서만 삭제, 로컬 repo에서는 삭제 x
git rm --cached <file name>

만약 특정 commit으로 되돌리고 싶다면, 아래와 같이 작성.
commit-hash는 git log를 쳤을 때 보이는 실제 hash값을 입력해야 한다.

git checkout <commit-hash(cusotmize 해야함)>

여러 개 버전을 만들었는데, 다시 첫 번째 버전으로 정정하려면,
2가지 방법이 있다.

git reset --soft <hash(cusotmize 해야함)>
git reset --hard <hash(cusotmize 해야함)>

soft는 그 사이에 commit한 버전들이 저장은 되어 있다.
하지만 hard는 다 삭제되고 첫 번째 버전만 남는다.

staging area에 추가하고 싶지 않은 파일의 경우,
.gitignore 파일을 프로젝트 폴더에 생성해서 해당하는 파일/폴더명을 입력.

touch .gitignore
vi .gitignore 

그리고 gitignore.io에 들어가 아래 키워드를 추가 후, 생성된 내용을 .gitignore에 추가한다.


3
branch & master

github에서 처음 repository를 생성하면 자동적으로 master 라는 메인 브랜치가 만들어진다. terminal에서 branch를 따로 만든게 아니라면 모든 작업은 master에서 이뤄진다.

개발자들은 협업을 하는 경우가 대부분이라, 실제로 master를 사용하는 것은 모든 branch 별 작업이 컨펌된 후 완전히 합칠 때라고 한다. master에는 최종 통합본만 저장되며, 이와 관련한 영상은 코딩누나 클릭.
(feat. "신입이 master에 소스코드 올리면 죠오오오오오ㅗㅗㅗ옹나 욕먹어!!")

어쨌든, branch를 terminal에서 만들어 보자.

git branch <new-branch-name>

checkout을 이용하면 다른 branch로 이동할 수도 있다. 그래서 만약 생성+이동을 한번에 하고 싶으면, 아래와 같이 작성하면 됨!

git checkout -b <new-branch-name>

(220317 update) 원하는 브랜치로 이동하면, 해당 브랜치 안에 있는 마지막 커밋 내용 기준으로 셋팅되며, 브랜치가 전환 되었으므로 이후에 남기는 커밋은 전환한 브랜치에만 추가된다.
이후 다른 브랜치로 이동해 작업 할 수 있고, 이 브랜치에서의 작업 또한 이전 브랜치의 변경 사항 및 커밋의 영향을 받지 않는다.

존재하는 모든 branch를 알고 싶을 경우에는 아래와 같이 작성.

git branch

다른 branch와 병합하려면?

git merge <branch-name>

branch 삭제는 다음과 같다.

git branch -d <branch-name> 
profile
예비 개발자의 기술 블로그 | explore, explore and explore

0개의 댓글