Git이란?
Git이란 분산형 버전 관리 시스템(Version Control System) 의 한 종류이며, 빠른 수행 속도에 중점을 둔다.
말이 어렵다. 간단히 말해서 다른 개발자들과 일을 할때, 파일을 실수로 삭제하거나 수정할수있으니 이러한 부분들을 해결하기 위해 나온 프로그램이다.(또한 수정한 파일을 주고받는다 생각하면 이 프로그램이 필수다.)
이런경우가 생긴다는 말씀.
기본적으로 리눅스 명령으로 쓰는 BASH가 있으며, Source Tree라는 GUI통해 사용하는 방법도 있다.
여기서는 BASH를 사용한다.
Git설치
들어가서 Download를 클릭해서 설치하자
Git기본용어(중요)
Git을 사용하기 위해 알아야 할 용어 몇가지가 있다.
- Repository: 저장소를 의미하며,저장소는 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장한다. 저장소를 통해 작업자가 변경한 모든 히스토리를 확인 할 수 있다.
- Working Tree : 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점.
- Staging Area : 저장소에 커밋하기 전에 커밋을 준비하는 위치.
- Commit : 현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업.
- Head : 현재 작업중인 Branch를 가리킨다.
- Branch : 가지 또는 분기점을 의미하며, 작업을 할때에 현재 상태를 복사하여 Branch에서 작업을 한 후에 완전하다 싶을때 Merge를 하여 작업을 한다.
- Merge : 다른 Branch의 내용을 현재 Branch로 가져와 합치는 작업을 의미한다.
Git 명령어
git config —global user.name "" : ""에 이름을 넣으면 git을 이용하는 이름을 설정
git config —global user.email "" : ""에 이메일을 넣으면 git을 이요하는 이메일을 설정
git init(초기화) : 현재 파일 위치를 git 저장소를 설치하고 마스터 브렌치로 만듬.
git add(스테이징) : 스테이징에 넣어줌
git commit -m "넣을 메세지" : 넣을 메세지와 함께 현재상태를 커밋해줌
git status : 스테이징과 커밋된 부분을 확인해줌
git log : 지금까지 어떤 로그를 가지고 있는지 보여줌
(-stat하면 간단하게 수정된 부분을 요약해서 보여줌)
git checkout (해쉬코드) : 해쉬코드에 해당되는 곳으로 되돌아감
git checkout HEAD~숫자 : 숫자만큼 되돌아감
git restore <file> 작업트리에서 되돌려줌
git restore —staged <file> 스테이지에 올려논것을 되돌려줌
git branch <name> : name의 브렌치를 하나 만들어줌
git checkout <branch_name> : 브렌치 네임을 체크아웃 할경우 브렌치로 이동됨(ex/ master > o2)
git mearge
Branch
Branch를 다른 동료들과 협업하다보면
Merge하는 경우가 있는데, 잘못하게 되면 자주 충돌나고 난리가 난다.(...)
따라서 주간솜뭉치라는 팀프로젝트를 할당시 Merge 절차를 밑의 방식으로 고정시켜서 수행하였더니
충돌이 거의 없어졌다.
merge 절차
- "defalut master name" 브랜치로 체크아웃("defalut master name" 는 본인들이 합칠 master branch이다.)
- git pull 로 최신화
- 본인 브랜치로 체크아웃
- git merge "defalut master name" 해서 Master 코드 가져오기
- 동일 영역 작업시 코드 선택처리 나오는거 최신버전으로 개별재정리
- Push!
- "defalut master name" 브랜치로 이동해서
- git merge 본인브랜치