[Git & GitHub]기초 상식

길현민·2022년 7월 7일
0

Git&GitHub

목록 보기
1/8

학습목표
1.Git이 무엇이고 왜 필요한가?
Git의 공식 명칭은 분산 버전 관리 시스템 (VCS) 입니다.
쉽게 말해, 프로젝트 파일의 변경 사항을 추적하는 시스템입니다. 이를 통해 개발자들은 프로젝트의 변경 사항을 기록하고, 특정 시점의 버전으로 언제든 돌아갈 수 있습니다. 이런 버전 관리 시스템은 많은 사람들이 효율적으로 함께 작업하고, 프로젝트를 중심으로 협업할 때 사용할 수 있습니다. 각 개발자가 자신만의 프로젝트 버전을 본인 컴퓨터에 갖게됩니다. 나중에 이러한 개별 버전의 프로젝트를 병합하여 기준이 되는 버전의 프로젝트에 적용 할 수 있게 됩니다.
Git은 개인 혹은 팀 간의 프로젝트를 관리하는 데 가장 널리 사용되고 있는 툴입니다. 따라서 Git을 다룰 줄 아는 것은 요즘 모든 개발자들에게 가장 중요한 기술 중 하나입니다.
2.Github가 무엇인지 알고 해당 개념을 Git과 구분하여 설명할 수 있다.
GitHub은 Git repository를 위한 호스팅 플랫폼입니다. GitHub (및 기타 유사한 플랫폼) 없이도 Git을 사용할 수 있지만 다른 개발자와 같은 프로젝트를 두고 협업하거나 내 코드를 공유하기는 어렵습니다.Git은 버전 관리 시스템으로, 시간이 지남에 따라 파일의 변경 사항을 추적하는 도구입니다.
3.터미널 상에서 Git의 init, add, status, commit, log, push 명령어를 사용할 수 있다.
4.Github에 Repository를 생성하고 자신의 Git 프로젝트를 업로드할 수 있다.

Git을 사용할 때는 repository 라는 용어를 잘 알고 있어야합니다. Git repository는 Git으로 관리하는 프로젝트 저장소입니다. (쉽게 말해 폴더라고 생각하시면 됩니다.)
Git repository 에는 크게 두 가지 종류가 있습니다.
Local repository - 본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소
Remote repository - 로컬 repository 와는 반대로 내 컴퓨터가 아닌 외부 (일반적으로 원격 서버) 버전의 프로젝트 저장소. 팀에서 작업 할 때 특히 유용합니다. 이 곳에서 프로젝트 코드를 공유할 수 있고, 다른 사람의 코드를 확인할 수도 있습니다. 또, 로컬 버전의 프로젝트와 병합하고, 변경 사항을 적용 할 수 있는 곳입니다.
새 저장소(repository) 를 만들고 Git으로 프로젝트 관리를 시작하려면 터미널에서 프로젝트 폴더로 이동 후 다음 명령어를 입력해주세요.

git init

이 명령어는 프로젝트 폴더 내에 숨겨진 .git 디렉토리를 생성합니다. 이제 Git은 현재 저장소에 대한 모든 변경사항을 추적/관리하게 됩니다.
프로젝트 폴더에서, git add 라는 명령어를 통해 우리가 원하는 파일들을 staging area 로 추가해줄 수 있습니다.
아래와 같이 특정 파일만 추가할 수 있습니다.

git add file.js

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

git add file.js file2.js file3.js

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

git add .

위 명령어는 프로젝트 폴더 내의 모든 파일과 폴더를 staging area 에 추가하고 커밋을 남길 수 있게 해줍니다.
커밋은 특정 시간의 코드 스냅샷의 형태로 해당 repository의 커밋 기록에 남게됩니다. git add 명령어를 사용하여 모든 파일을 staging area에 추가 해주었다면 이제 커밋을 남길 준비가 되었습니다.
아래 명령어를 통해 staging area에 있는 파일들을 커밋할 수 있습니다..

git commit -m "Commit message"

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

git log

staging area 에 추가하고 싶지 않거나, git 에서 관리하지 않아도 되는 파일이 있다면, .gitignore 파일을 프로젝트 폴더에 생성해주시면 됩니다.
.gitignore 파일 안에, 해당하는 파일명과 폴더명을 나열하면 됩니다. (각 파일, 폴더가 새로운 줄에 입력되어야 합니다.)

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

브랜치(Branches)란 독립적으로 어떤 작업을 진행하기 위한 개념입니다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.
여러 명이서 동시에 작업을 할 때에 다른 사람의 작업에 영향을 주거나 받지 않도록, 먼저 메인 브랜치에서 자신의 작업 전용 브랜치를 만듭니다. 그리고 각자 작업을 진행한 후, 작업이 끝난 사람은 메인 브랜치에 자신의 브랜치의 변경 사항을 적용합니다.
이렇게 함으로써 다른 사람의 작업에 영향을 받지 않고 독립적으로 특정 작업을 수행하고 그 결과를 하나로 모아 나가게 됩니다. 이러한 방식으로 작업할 경우 '작업 단위', 즉 브랜치로 그 작업의 기록을 중간 중간에 남기게 되므로 문제가 발생했을 경우 원인이 되는 작업을 찾아내거나 그에 따른 대책을 세우기 쉬워집니다.
저장소를 처음 만들면, Git은 바로 'master'라는 이름의 브랜치를 만들어 둡니다. 이 새로운 저장소에 새로운 파일을 추가 한다거나 추가한 파일의 내용을 변경하여 그 내용을 저장(커밋, Commit)하는 것은 모두 'master' 라는 이름의 브랜치를 통해 처리할 수 있는 일이 됩니다.
'master'가 아닌 또 다른 새로운 브랜치를 만들어서 '이제부터 이 브랜치를 사용할거야!'라고 선언(체크아웃, checkout)하지 않는 이상, 이 때의 모든 작업은 'master' 브랜치에서 이루어 집니다.
Creating a new branch (브랜치 생성하기)아래 명령어를 통해 새로운 브랜치를 생성할 수 있습니다.

git branch <new-branch-name>

Changing branches (브랜치 전환하기)아래 명령어를 통해 다른 브랜치로 이동할 수 있습니다.

git checkout <branch-name>

원하는 브랜치로 이동하면, 해당 브랜치 안에 있는 마지막 커밋 내용이 작업 트리에 펼쳐집니다. 브랜치가 전환 되었으므로 이후에 남기는 커밋은 전환한 브랜치에 추가됩니다. 해당 브랜치에만 영향을 주게 되는 것이죠. 그런 다음 다른 브랜치로 이동하여 작업 할 수 있으며, 이전 브랜치의 변경 사항 및 커밋의 영향을 받지 않습니다.
브랜치 생성과 동시에 생성된 브랜치로 이동하고 싶다면 기존 checkout 명령어에 -b 라는 flag 를 추가해주면 됩니다.

git checkout -b <new-branch-name>

프로젝트에 존재하는 모든 브랜치를 확인하고 싶다면 git branch 명령어를 입력하면 됩니다.
Merging branches (브랜치 병합하기)
A 라는 브랜치에서 작업한 내용을 B 라는 브랜치에 적용하고 싶을 때, 브랜치 A 와 브랜치 B 를 병합(merge) 할 수 있습니다. 예를 들어, 특정 브랜치에서 새로운 기능을 완벽하게 구현하고 테스트까지 완료한 시점이면, 기준이 되는 master 브랜치에 구현내용을 적용시켜야겠죠? 이럴 때 merge 를 사용합니다.
아래 명령어를 통해 다른 브랜치를 현재 브랜치와 병합할 수 있습니다.

git merge <branch-name>

Deleting a branch (브랜치 삭제하기)
아래 명령어를 통해, 브랜치를 삭제할 수 있습니다.

git branch -d <branch-name>

🐔참고문헌

·깃 공식 사이트

https://git-scm.com/

·깃허브 공식 사이트

https://github.com/

profile
맛집탐방러

0개의 댓글