TIL no.21 - Git, Github - Intro

codeamor·2020년 7월 29일
0

Github

목록 보기
1/1

✔ Git

: Git분산 버전 관리 시스템 (VCS) 입니다.

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

  • 많은 사람들이 효율적으로 함께 작업하고, 프로젝트를 중심으로 협업할 때 사용할 수 있습니다.

  • 각 개발자가 자신만의 프로젝트 버전을 본인 컴퓨터에 갖게 됩니다.

  • 나중에 이러한 개별 버전의 프로젝트를 병합하여 기준이 되는 버전의 프로젝트에 적용 할 수 있게 됩니다.

  • Git은 개인 혹은 팀 간의 프로젝트를 관리하는 데 가장 널리 사용되고 있는 툴입니다.

1. 설치 가이드

Git 다운로드 링크: https://git-scm.com/downloads

  • 설치 확인

git --version

이름, 이메일 설정

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


2. Repositories (저장소)

  • Local repository - 본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소
  • Remote repository - 내 컴퓨터가 아닌 외부 (일반적으로 원격 서버) 버전의 프로젝트 저장소입니다.


3. Initializing a repository

새 저장소(repository) 를 만들고 Git으로 프로젝트 관리를 시작하려면 터미널에서 프로젝트 폴더로 이동 후 다음 명령어를 입력해주세요.

git init

이 명령어는 프로젝트 폴더 내에 숨겨진 .git 디렉토리를 생성합니다. 이제 Git은 현재 저장소에 대한 모든 변경사항을 추적/관리하게 됩니다.


4. Staging and committing code

  • commit
    : 현재 버전의 코드를 커밋에 저장합니다.
    커밋 히스토리에 필요한만큼 커밋을 생성 할 수 있으며, 커밋 간 앞뒤로 이동하여 프로젝트 코드의 다른 변경사항을 확인할 수 있습니다.

일반적으로 커밋을 남기는 시점은 특정 내용, 기능을 추가한 후 또는 수정 사항을 적용한 후 정도로 들 수 있습니다.

4.1. Checking the status (상태 확인)

터미널에서 repository의 현재 상태를 확인할 수 있습니다.

git status

어떤 파일이 변경되었는지, 어떤 파일이 추가되었는지 등을 전부 보여줍니다.

git status 명령어를 통해 Git 으로 관리되고 있지 않던 파일이 있다면 해당 파일들을 staging area 로 추가해줄 수 있습니다.

모든 파일이 Git으로 관리되고 있는 시점에서는, git status 명령어를 통해 모든 변경사항을 확인할 수 있고, 커밋을 남기기 위해 staging area 로 추가해줘야 합니다.

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

작업 폴더에서 git add 라는 명령어를 통해 파일들을 staging area 로 추가해줄 수 있습니다.

git add abcd.js

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

git add a.js b.js c.js

아래와 같이 모든 파일을 한번에 추가할 수도 있습니다.

git add .

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

4.3. Making commits (커밋 남기기)

git add 명령어를 사용하여 모든 파일을 staging area에 추가 해주었다면 이제 커밋을 남길 준비가 되었습니다.

아래 명령어를 통해 staging area에 있는 파일들을 커밋할 수 있습니다.

git commit -m "Commit message"

커밋 메시지는 repository에 커밋하는 변경 사항을 설명하는 요약 내용이어야 합니다.

위 명령어를 실행하면, 터미널에 방금 남긴 커밋에 대한 세부 내용이 보여지게 됩니다.

새 커밋을 남기려면 staging area에 파일을 추가 한 다음 커밋을 남기는 프로세스를 반복해야합니다.

git status 명령어를 통해 어떤 파일이 수정, 추가 또는 추적되지 않고 있는지 확인할 수 있습니다.



4.4. Commit history

프로젝트의 모든 커밋 내역을 보려면 다음 명령어를 입력하면 됩니다.

git log

git log 명령어는 각 커밋에 대한 자세한 정보를 담고 있습니다.
(작성자, hash 값, 날짜와 시간, 그리고 커밋 메세지)

만약 특정 커밋 시점의 코드로 되돌리고 싶다면, 아래 명령어를 사용할 수 있습니다.

git checkout <commit-hash>

<commit-hash>git log 에서 보이는 커밋의 실제 hash 값으로 대체해주세요.

4.5. Ignoring files

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

.gitignore 파일 안에, 해당하는 파일명과 폴더명을 나열하면 됩니다.

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


5. Branches

: 브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념입니다.
필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.

여러 명이서 동시에 작업을 할 때에 다른 사람의 작업에 영향을 주거나 받지 않도록, 먼저 메인 브랜치에서 자신의 작업 전용 브랜치를 만듭니다. 그리고 각자 작업을 진행한 후, 작업이 끝난 사람은 메인 브랜치에 자신의 브랜치의 변경 사항을 적용합니다.

저장소를 처음 만들면, Git은 바로 'master'라는 이름의 브랜치를 만들게 됩니다.

'master'가 아닌 또 다른 새로운 브랜치를 만들어서 checkout 하지 않는 이상 master 브랜치를 사용하게 됩니다.

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

아래 명령어를 통해 새로운 브랜치를 생성할 수 있습니다.

git branch <new-branch-name>

새로 만들어진 브랜치는 현재 프로젝트의 코드를 그대로 반영하여 생성됩니다.

보통 코드를 개선하고 새로운 실험 기능을 추가하는 등의 작업을 할 수있는 development 브랜치를 만드는 것이 좋습니다.
새로운 기능을 개발하고 테스트 한 후 버그가 없고, 사용할 준비가 되어있는지 확인한 후 최종적으로 master 브랜치에 병합할 수 있습니다.

5.2. Changing branches (브랜치 전환하기)

아래 명령어를 통해 다른 브랜치로 이동할 수 있습니다.

git checkout <branch-name>

원하는 브랜치로 이동하면, 해당 브랜치 안에 있는 마지막 커밋 내용이 작업 트리에 펼쳐집니다.
브랜치가 전환 되었으므로 이후에 남기는 커밋은 전환한 브랜치에 추가됩니다.
계속해서 다른 브랜치로 이동하여 작업 할 수 있으며, 이전 브랜치의 변경 사항 및 커밋의 영향을 받지 않습니다.

브랜치 생성과 동시에 생성된 브랜치로 이동하고 싶다면 기존 checkout 명령어에 -b 라는 flag 를 추가해주면 됩니다.

git checkout -b <new-branch-name>

프로젝트에 존재하는 모든 브랜치를 확인하고 싶다면 git branch 명령어를 입력하면 됩니다.



6. Using GitHub

Common Workflow: 내 로컬 Repository를 GitHub 에 push 하기

  1. 로컬에서 add / commit 한다.
  2. Github 으로 이동 후 새 repository를 생성한다.
  3. 나의 로컬 repository 를 GitHub repository 와 연결한다. (remote 추가)
  4. 새 remote 를 이용하여 코드를 Push 한다.

6.1. repository 생성하기

GitHub repository 를 생성하려면, github.com 으로 이동 후 우측 상단 + 버튼을 누른 뒤 'New repository' 라는 옵션을 선택해주세요.

repository 를 생성하는 페이지에서 제일 먼저 Repository name 을 설정해야 합니다.

6.2. repository 에 코드 push 하기

  • 'Create repository' 버튼을 누르게 되면 새로 만든 GitHub repository 의 스타팅 페이지로 이동하게 됩니다.

  • git remote add origin 명령어는 내 컴퓨터에 있는 로컬 repository 와 방금 만든 GitHub repository 를 연결해줍니다. 쉽게 설명하면, 로컬 Git repository 에게 이름이 origin 이라는 어떤 URL을 알려주는 것과 같습니다. 이름이 꼭 origin 이어야 하지는 않지만 보통 remote 주소가 한개라면 origin 이라고 지어주게 됩니다.

  • git push 명령어는 로컬 Git repository 의 코드를 GitHub repository 로 업로드 해줍니다.

git remote add origin https://github.com/<your-username>/<your-repo-name>.git
git push -u origin master
  • git push 명령어를 실행하면 GitHub 유저네임과 비밀번호를 입력하라고 하며 입력해줍니다.

성공적으로 push 되었다면, 전에 만든 GitHub repo 페이지로 가서 새로고침하면 반영이 되어 있는 것을 확인할 수 있습니다.

6.3. repository 에 변경사항 남기기

push 까지 했다고 로컬에서 작업한 내용들이 자동으로 remote 에 반영되는 것은 아닙니다.

그래서 변경사항이 있으면 다시 push 를 해줘야 GitHub repo 가 업데이트 됩니다.

git add .
git commit -m "something change"

커밋을 한 뒤, 아래 명령어를 입력해서 업데이트 된 로컬 repo를 GitHub repo로 push 해줍니다.

git push origin master

0개의 댓글