Git 이란?
분산 환경에서 동시에 여러개의 브랜치 작업을 수행할 수 있도록 돕는 버전 관리 시스템.
Git 저장소를 공유하는 사이트인 GitHub를 통해 전세계 수많은 데이터를 공유할 수 있다.
로컬저장소
실제 존재하는 파일(물리적인 영역)
branch(브랜치)
로컬저장소에서 나만이 사용하는 고유의 작업영역(논리적인 영역)
Git을 이용하면 한 파일에 대하여 서로 다른 브랜치에서 독립적으로 작업할 수 있다
Git 설치후 Git Bash에서 작업
-설치 시 환경설정에서 vim편집기 체크
사용자설정
git config --global user.name "이름"
git config --global user.email "이메일"
로컬저장소에 파일 생성하여 commit 하기
pwd : 현재위치 확인
cd : 디렉토리 이동
mkdir : 디렉토리 생성
git init: 로컬저장소 생성
(로컬저장소: 나만이 저장할 수 있는 폴더)
git init 명령어를 실행하면
.git폴더가 생성된다
git init: 로컬 저장소를 생성하면서 브랜치를 하나 생성시켜준다.
★브랜치: 공통으로 사용되는 파일을 각자의 영역에서 아무런 충돌없이 사용할 수있도록 해주는 영역
현재 저장소에서 작업중인 브랜치가 master 라는 의미로 괄호안에 표시된다
C:\imsi 위치에 로컬 저장소를 생성한 후, test.txt 파일을 생성한다
test.txt 파일 생성
vim test.txt a,i,o -> insert모드 내용입력 esc :wq 저장후 편집기 종료 cat test.txt 내용확인 |
git status : 지금까지 작업한 내용 확인
- 새로 생성한 test.txt파일을 추적하지 못하고 있으므로 git add 명령어를 사용해야한다고 알려준다
- commit을 하기 전 add 명령어가 먼저 실행되어야 한다
git add 명령어를 실행하면, CRLF문제가 발생했다고 경고한다
CR: 현재의 위치에서 다음줄로 개행할때 커서가 맨앞에 위치
LF: 현재의 위치는 변하지 않은 상태에서 커서만 위로 이동
->파일을 저장할때 리눅스 운영체제에 맞게 저장하지 않아 발생한 에러
CRLF문제 해결 방법
git config --global core.autocrlf true
리눅스에 맞게 자동 줄바꿈
-> branch가 바뀔때마다 해야한다
commit 명령어를 실행한후 첫번째 줄에 커밋메세지 작성한다
(커밋 메세지는 반드시 작성한다)
혹은 git commit -m "커밋 메세지" : 편집기에 들어가지 않고 커밋하면서 커밋메세지 작성
(커밋메세지에 쌍따옴표를 사용할 수 없다)
변동 사항을 모두 commit 하였음을 알 수 있다
새로운 브랜치(hotfix)를 생성하여 기존 브랜치(master)에서 작업하던 파일을 수정한 후, master 브랜치에서 확인 및 병합
git branch : 브랜치 목록 확인(현재 작업중인 브랜치에 *붙음)
git branch hotfix : hotfix브랜치 생성
git checkout hotfix : hotfix브랜치로 이동
-앞에서 작성한 test.txt파일을 이어 작업(hotfix branch에서 작업)
vim test.txt -print("Tell your world"); 추가 git commit -a 커밋메세지 작성 |
hotfix에서 수정 후 commit, master branch에서 파일 확인했을때
파일이 수정되지 않은 것을 확인할 수 있다
-> 하나의 공통 파일을 서로 다른 작업영역에서 작업이 가능하다(독립적으로)
-> 즉 hotfix에서 공통 파일을 수정해도 master에서 수정되는건 아니다
git merge hotfix : hotfix 브랜치와 병합
병합 후에 파일이 수정된것을 확인할 수 있다
exit : 종료
- 파일을 새로 생성했을때와 기존 파일을 수정했을때, commit 명령어의 차이점
파일 분류 | 커밋 명령어 | 예시 |
기존에 있던 파일 수정 | git add > git commit | ![]() |
git commit -a | ||
새로 파일 생성 | git add > git commit | ![]() |