Layer 7 12과제 -Git 보고서-
프로그래밍에 관심 있는 사람이라면 git || github를 들어본 적이 있을 것이다.
필자는 git을 배우라는 얘기를 엄청 많이 들었다.
이렇게 HOT한 Git이란 과연 무엇이고 어떻게 사용해야 할까?
Git이란 무엇일까?
- Git이란 리누즈 토르발즈가 만든 리눅스 커널의 버전관리를 위해 만들었으며,
소스코드를 효과적으로 관리하기 위해 개발된 '분산 버전 관리 시스템'이다.
내가 봐도 무슨 소리인지 하나도 모르겠다.
$분산 버전 관리 시스템이란?
- 여러명의 개발자(분산)가 특정 프로젝트를 자신의 컴퓨터로 협업하여 개발하면서 버전을
관리할 수 있는 시스템이다.
$깃(Git)은 왜 사용할까?
- 이 글을 보는 독자들은 파일의 버전관리를 어떻게 하고 있는가?
내가 생각하는 가장 간단한 방법은 파일을 편집하기 전
다음과 같이 파일을 미리 복사해두는 것이다.
- 다음과 같이 버전(version) 관리를 하는 것도 가능하지만, 매 버전의 달라진 부분을
일일이 기록하는 것은 어려운 일이라고 생각한다. 깃(Git)을 제대로 사용한다면 이러한 변화를
효과적으로 기록이 가능해진다.
- Git에서는 소스 코드가 변경된 이력을 쉽게 확인할 수 있고, 특정 시점에 저장된 버전과
비교하거나 특정 시점으로 되돌아갈 수도 있다.
이런 장점들 때문에 git은 많은 개발자들에게 사랑 받는다.
Git은 어떤 방식으로 버전 관리를 하는가?
- 컴퓨터 A에서 업데이트 한 것을 중앙 서버에 올리면 버전이 업데이트 되고, 컴퓨터 B는
이를 중앙 서버 컴퓨터로 부터 최신화 시키면서 버전과 파일을 모두 컴퓨터 A와 동일하게 유지할 수 있다.
Git의 저장소
● 원격 저장소(Remote repository)
- 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유
● 로컬 저장소(Local repository)
- 개인 PC에 파일이 저장되는 개인 저장소 입니다.
내 pc에서 작업 하던 내용을 원격 저장소로 업로드 할 수 있고
반대로 다른 사람의 원격 저장소에 있는 파일을 불러 올 수도 있습니다.
깃(Git) DOWNLOAD
- 이제 Git이 무엇인지, 어떻게 동작하는지 대략적으로 알아보았다.
Git은 어떻게 사용하는 것일까? Git은 소프트웨어이다.
아래 주소를 통해 다운로드 받을 수 있다.
Git CLI(Command Line Interface, 명령줄 인터페이스)를 설치할 수 있다.
자신의 컴퓨터 운영체제에 맞는 Git을 설치하면 된다.
여기서 CLI란, Windows 운영체제에서의 CMD, Mac OS나 LInux 운영체제에서의 Terminal과 같이
텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식을 뜻한다.
사용자가 사용자 컴퓨터 키보드 등을 통해 문자열의 형태로 입력하며, 컴퓨터로부터의 출력 역시 문자열의
형태로 주어진다.(@copyright by 위키백과)
Git의 주요 용어 정리
1)영역
- Repository(저장소)
- 저장소를 의미합니다. repo라고도 줄여 사용한다.
- 본인 PC에 존재하는 저장소인 Local repository
- github, gitlab 같은 원격 저장소인 remote repository가 있다.
- 저장소를 통해 작업자가 변경한 모든 작업 내역을 확인 할 수 있다. - Index
- stage 또는 staging area라고도 하며, 준비 공간을 말한다.
- 작업한 내용을 기록하기 전 임시로 저장해두는 공간이다. - Working directory
- 현재 작업하고 있는 공간을 말합니다.
- commit: 현재 변경된 작업상태에 점검을 마치면 Staging Area에 저장하는 작업이다.
- Working Tree: 우리가 흔히 아는 폴더를 말한다. 그리고 커밋을 실행하기 전 저장소와 작업
공간 사이의 공간을 인덱스라고 한다. 인덱스에 등록되지 않은 파일은 저장소에 커밋이 되지
않는다고 한다. - branch: 작업자들이 메인 프로젝트의 브랜치를 따서 자신만의 버전을 만드는 것을 말한다.
작업이 끝난 후 프로젝트의 메인 디렉토리인 master에 비랜치를 다시 merge한다. - head: 현재 작업 중인 branch를 가리키는 것이다.
Git의 명령어
git config (최초 1회 실행)
//git commit에 사용될 username
git config --global user.name "my_name"
//git commit에 사용될 email
git config --global user.email "my_email@company.com"
//설정한 내용을 확인 할 수 있다.
git config --list
git init
//로컬 저장소로 설정할 프로젝트 위치로 이동한다.
cd c:/Desktop
//로컬 저장소로 설정한다.
git init
git add
//특정 파일을 수정한 후에 아래와 같이 git 명령어를 수행한다.
git add A.py
//그러면 index영역으로 보내진다.
//많은 파일을 한꺼번에 수정했고, 어디를 수정했는지도 잘 기억이 나지 않는다면
git add *
//또는
git add .
//을 통해서 한꺼번에 수정한 것들을 넣을 수 있다.
git help, git status
//깃 명령어를 잊어버렸다면 이것을 이요해 유용한 명령어를 볼 수 있다.
git help
//저장소의 상태를 체크하는 명령어이다. 프로젝트의 수정된 파일이나 어떤 브랜치에서 작업하는지
//등을 체크할 수 있다.
git status
git remote
//원격 저장소 등록
git remote add origin https://github.com/[이름]/gitExample
//로 origin이라는 이름으로 원격 저장소 주소를 등록합니다.
//이제부터 origin이라는 이름을 사용하면 방금 전에 우리가 만든 저장소에 접속할 수 있습니다.
git push
//push 명령으로 local에 있는 변경 사항을 서버에 올릴 수 있다.
git push origin master
git commit
//지금까지 변경 사항을 저장할 수 있다. 다만 아직 저장 사항은 local에 있으므로
//서버에 변경 사항을 알려줘야 한다.
git commit
//-m옵션을 이용하여 해당 버전에 대한 코멘트를 남길 수 있다.
git -m "my name is git"
git branch
//새 branch를 만든다.
git branch<branch명>
//branch 목록을 조회한다.
git branch[-a]
//branch 삭제
git branch -d<branch명>
긴 글 읽어주셔서 감사합니다.