TIL 12 Git

CastleQ·2021년 5월 23일
0

Git & GitHub

목록 보기
1/2
post-thumbnail

Git이란?

Git의 공식 명칭은 분산 버전 관리 시스템 (VCS) 입니다.

쉽게 말해, 프로젝트 파일의 변경 사항을 추적하는 시스템입니다. 이를 통해 개발자들은 프로젝트의 변경 사항을 기록하고, 특정 시점의 버전으로 언제든 돌아갈 수 있습니다.

Git을 사용하는 이유

이런 버전 관리 시스템은 많은 사람들이 효율적으로 함께 작업하고, 프로젝트를 중심으로 협업할 때 사용할 수 있습니다. 각 개발자가 자신만의 프로젝트 버전을 본인 컴퓨터에 갖게됩니다. 나중에 이러한 개별 버전의 프로젝트를 병합하여 기준이 되는 버전의 프로젝트에 적용 할 수 있게 됩니다.

How to use Git?

Git버전확인

git --version

이름 & 이메일 설정

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

Git의 저장소

  • Local repository - 본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소
  • Remote repository - 로컬 repository 와는 반대로 내 컴퓨터가 아닌 외부 (일반적으로 원격 서버) 버전의 프로젝트 저장소. 팀에서 작업 할 때 특히 유용합니다. 이 곳에서 프로젝트 코드를 공유할 수 있고, 다른 사람의 코드를 확인할 수도 있습니다. 또, 로컬 버전의 프로젝트와 병합하고, 변경 사항을 적용 할 수 있는 곳입니다.

Initializing a repository (깃으로 프로젝트 관리 시작)

내가 원하는 프로젝트 폴더로 이동 후

git init

입력하면 프로젝트 폴더 내에 숨겨진 .git 디렉토리를 생성한다.
이제 Git현재 저장소 내의 모든 변경사항을 추적 관리 하게된다.

commit

Git에서 commit 이란, 프로젝트의 현재 상태를 나타내는 체크포인트 또는 스냅샷으로 생각할 수 있습니다. 쉽게 말해, 현재 버전의 코드를 커밋에 저장한다고 생각하시면 됩니다. 커밋 히스토리에 필요한만큼 커밋을 생성 할 수 있으며, 커밋 간 앞뒤로 이동하여 프로젝트 코드의 다른 변경사항을 확인할 수 있습니다. 이를 통해 프로젝트의 진행 상황을 효율적으로 관리할 수 있게 됩니다.

🔴 코드를 커밋하려면 우선 코드를 staging area 에 추가해야 합니다. 🔴

Checking the status (상태 확인)

repository의 현재 상태를 확인

git status

파일의 변경, 파일의 추가 등 확인 하는 명령어
git status 명령어를 통해 Git 으로 관리(추적)되고 있지 않던 파일(들)이 있다면 해당 파일들을 staging area 로 추가해줄 수 있다.

Staging files (Staging area에 파일 추가하기)

아래와 같이 특정 파일만 추가할 수 있다.

git add file.js

여러개의 파일들을 추가하고 싶다면 아래와 같이 할 수 있다.

git add file.js file2.js file3.js

파일을 각각 추가하지 않고, 아래와 같이 모든 파일을 한번에 추가할 수도 있다.

git add .

위 명령어는 프로젝트 폴더 내의 모든 파일과 폴더를 staging area 에 추가하고 커밋을 남길 수 있게 해준다.

Making commits (커밋 남기기)

git commit -m "Commit message"

지금 까지 저장한 파일을 커밋하는 명령어이다
큰 따옴표 안에는 간단한 개요를 작성할 수 있다.

Commit history

모든 커밋 내역 보기

git log

만약 특정 커밋 시점의 코드로 되돌리고 싶다면

git checkout <commit-hash>

git log 에서 보이는 해쉬값을 commit-hash위치에 넣어주면 그시점으로 되돌아간다.

Ignoring files

staging area 에 추가하고 싶지 않거나, git 에서 관리하지 않아도 되는 파일이 있다면, .gitignore 파일을 프로젝트 폴더에 생성해주면 된다.

.gitignore 파일 안에, 해당하는 파일명과 폴더명을 나열하면 된다. (각 파일, 폴더가 새로운 줄에 입력되어야 합니다.)

// 예시

.DS_*
*.log
logs
**/*.backup.*
**/*.back.*
node_modules
bower_components

Branch란?

독립적으로 어떤 작업을 진행하기 위한 개념
필요에 의해 만들어 지고 만들어진 브랜치는 다른 브랜치의 영향을 받지 않기에 여러 작업을 동시에 진행하는게 가능하다. (like 가상환경?)
여러 명이서 동시에 작업 할 때 다른 사람의 작업에 영향을 주거나 받지 않도록, 메인 브랜치에서 자신의 작업 전용 브랜치를 만든다. 그리고 각자 작업 후 작업이 끝난 사람은 메인 브랜치에 변경사항을 적용 시킨다.
이렇게 함으로 다른 사람의 작업에 영향을 받지 않고 독립적으로 특정 작업을 수행하고 결과를 하나로 모아 나간다.(개발자들이 일하는 방식)
이 방식의 장점은 작업 단위 즉 브랜치로 기록을 남기게 되므로 문제가 발생했을 때 원인을 찾거나 대책을 세우기 수월하다.

저장소를 처음 만들면 Git은 Master라는 이름의 브랜치를 만들어 두는데 이새로운 저장소에 파일추가, 추가한 파일의 내용 변경을 하여 그 내용을 commit하는 것은 모두 Master라는 이름의 브랜치를 통해 처리가 가능하다.

Master 외의 브랜치를 만들어 '이제부터 이 브랜치를 사용할거야!'라고 선언(체크아웃, checkout)하지 않는 이상, 이 때의 모든 작업은 'master' 브랜치에서 이루어 진다.

How to use Branches?

Creating a new branch (브랜치 생성하기)

git branch <new-branch-name>

📍 코드의 개선, 새로운 기능 실험등의 작업을 할 때 많이 사용한다.
버그나 에러같은걸 체크한 후 사용할 준비가 되면 master브랜치에 병합한다.

Changing branches (브랜치 전환하기)

아래 명령어를 통해 다른 브랜치로 이동

git checkout <branch-name>

브랜치 생성과 동시에 이동하는 명령어

git checkout -b <new-branch-name>

모든 브랜치 확인

git branch

Merging branches (브랜치 병합하기)

git merge <branch-name>

내가 작업 한 내용을 master브랜치에 병합하고 싶을 때 이 명령어를 사용하면 된다 !

Deleting a branch (브랜치 삭제하기)

git branch -d <branch-name>
profile
DONE IS BETTER THAN PERFECT

0개의 댓글