#Git

박경찬·2022년 3월 16일
0

Git

#Git 설치

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

press RETURN to... 메세지가 나오면 엔터를 누릅니다
Xcode가 우선 설치됩니다. (5~30분 소요)
Xcode의 설치가 끝나면 비밀번호를 다시 요구합니다. (homebrew 설치)

brew -v  ////버전 확인 

brew install git

#Git 은 왜 사용하는가??

소스코드 관리를 위한 형상 관리 도구로써, 파일을 수정할 때마다 그 데이터를 기록하여 필요할 때 이전 버전으로 파일을 복구할 수 있게 해주며, 이를 분산시켜 여러 개발자가 협업하여 프로젝트를 효율적으로 관리할 수 있도록 도와주는 협업 도구이며 로컬저장소를 이용한 빠른 퍼포먼스와 브랜치를 통한 효율적인 협업에 있다.

#Git repository(저장소)

파일이나 폴더를 저장해 두는 곳. 그런데 Git 저장소가 제공하는 좋은 점 중 하나는 파일이 변경 이력 별로 구분되어 저장된다는 점. 비슷한 파일이라도 실제 내용 일부 문구가 서로 다르면 다른 파일로 인식하기 때문에 파일을 변경 사항 별로 구분해 저장할 수 있다.

Git은 원격 저장소와 로컬 저장소 두 종류의 저장소를 제공한다.
원격 저장소(Remote Repository): 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소
로컬 저장소(Local Repository): 내 PC에 파일이 저장되는 개인 전용 저장소
평소에는 내 PC의 로컬 저장소에서 작업하다가 작업한 내용을 공개하고 싶을 때에 원격 저장소에 업로드 한다. 물론 원격 저장소에서 다른 사람이 작업한 파일을 로컬 저장소로 가져올 수도 있다.

#변경을 기록하는 커밋

파일 및 폴더의 추가/변경 사항을 저장소에 기록하려면 '커밋'이란 명령을 반드시 입력해줘야한다.

커밋 하게되면 이전 커밋 상태부터 현재 상태까지의 변경 이력이 기록된 커밋(혹은 리비전)이 만들어집니다.

커밋은 아래 그림처럼 시간순으로 저장됩니다. 최근 커밋부터 거슬러 올라가면 과거 변경 이력과 내용을 알 수 있겠죠.

#실습

실제로 저장소를 만들고 브랜치도 만들어보자!

계정부터 먼저 생성하고 확인해보자

난 기존 계정은 생성되어 있어서 뭐가 있는지 확인만 하면된다.

생성하는 명령은 아래와 같다.

$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com코드를 입력하세요
# 전역 설정을 삭제
$ git config --global --unset user.name
$ git config --global --unset user.email

# 개별 저장소의 설정을 삭제
$ git config --unset user.name
$ git config --unset user.email

Git 저장소의 커밋 정보와 GitHub 사용자

GitHub에서는 Git 커밋의 이메일 정보를 사용해 GitHub 사용자를 매칭합니다. GitHub 하나의 계정에는 Primary 메일을 비롯해 추가 이메일을 등록할 수 있습니다. 고유한 이메일 주소는 오직 하나의 계정에만 등록될 수 있기 때문에 이메일 주소로 GitHub 사용자와 매칭하는 것이 가능합니다.

따라서 GitHub에 등록된 이메일을 user.email에 설정하고 커밋한 다음 GitHub 저장소에 Push하면 해당 이메일을 사용하는 GitHub 사용자로 자동으로 연결됩니다.

Git저장소만들기

폴더를 하나 만들고, 그 안에서 아래 명령을 실행하세요.

git init

새로운 git 저장소가 만들어집니다.

ls -al <<.git 확인
.git 이 없으면 git에서 관리하지 않는 파일이라고 분류되어 git을 사용할수 없다.

로컬 저장소를 복제(clone)하려면 아래 명령을 실행하세요.
git clone /로컬/저장소/경로

원격 서버의 저장소를 복제하려면 아래 명령을 실행하세요.
git clone 사용자명@호스트:/원격/저장소/경로

여러분의 로컬 저장소는 git이 관리하는 세 그루의 나무로 구성돼있어요.
첫번째 나무인 작업 디렉토리(Working directory)는
실제 파일들로 이루어져있고, 두번째 나무인 인덱스(Index)는
준비 영역(staging area)의 역할을 하며, 마지막 나무인 HEAD는
최종 확정본(commit)을 나타내요.

추가와 확정(commit)
변경된 파일은 아래 명령어로 (인덱스에) 추가할 수 있어요.
git add <파일 이름>
git add *
이것이 바로 git의 기본 작업 흐름에서 첫 단계에 해당돼요.
하지만 실제로 변경 내용을 확정하려면 아래 명령을 내려야 한답니다.
git commit -m "이번 확정본에 대한 설명"
자, 이제 변경된 파일이 HEAD에 반영됐어요.
하지만, 원격 저장소에는 아직 반영이 안 됐답니다.

만약 기존에 있던 원격 저장소를 복제한 것이 아니라면,
원격 서버의 주소를 git에게 알려줘야 해요.
git remote add origin <원격 서버 주소>
이제 변경 내용을 원격 서버로 발행할 수 있어요.

가지(branch)치기
가지는 안전하게 격리된 상태에서 무언가를 만들 때 사용해요.
여러분이 저장소를 새로 만들면 기본으로 master 가지가 만들어집니다.
이제 다른 가지를 이용해서 개발을 진행하고, 나중에 개발이 완료되면
master 가지로 돌아와 병합하면 돼요.

**아래 명령으로 "feature_x"라는 이름의 가지를 만들고 갈아탑니다.

git checkout -b feature_x

아래 명령으로 master 가지로 돌아올 수 있어요.

git checkout master

아래 명령으로는 가지를 삭제할 수 있어요.

git branch -d feature_x

여러분이 새로 만든 가지를 원격 저장소로 전송하기 전까지는
다른 사람들이 접근할 수 없어요.

git push origin <가지 이름>****

git을 완전히 이해하지 못한 상황에서 git을 이용하려고 하니 진짜 힘들었다..
위에 글을 공유해주신분이 누군지는 모르겠지만 이글 보고 도움이 정말 많이 된거 같다.. 구글링을 아무리해도 뭔가 시원하게 설명해주는 글들이 없었다
이 분의 블로그를 보고 나서 완전히는 아니지만 어느정도 이해는 한거 같다.
git의 관련해서 아직 많이 남았지만 배운내용까지 포스팅 하궁... 다음에또 추가로 포스팅.. 하쟈..

출처 https://rogerdudler.github.io/git-guide/index.ko.html

0개의 댓글