Git 입문
[카카오 클라우드 스쿨] Git 입문. 아주 기초가 되는 내용
GIT 입문
1. GIT의 개념
- 버전 관리 도구(프로그램)
- GIT을 잘 활용하면 문서도 작성할 수 있음!
- github는 git을 업로드하는 저장소임!
Git과 Github는 엄연히 다릅니다!
- Repository
- 실제로 저장되는 공간
- 원격 저장소: 굳이 없어도 됨, 공영 저장소로 쓰기 위함, 큰 규모 프로젝트 진행 시 필수
- 로컬 저장소: 내 PC에 저장, 나 혼자 쓸 땐 로컬 저장소만 써도 버전 관리 가능
- 규모가 커지면 github보다는 gitlab을 쓰는 것이 일반적, 큰 회사 가면 자체 레포지토리를 쓰는 것을 볼 수 있음
- 다음 그림과 같이 문서 충돌의 우려가 없음
- 실제로 저장되는 공간
- Commit
- 변경을 기록한다 (무언가를 적용시킨다)
- 원격 레포랑 연결되어 있는 경우, commit은 내 컴퓨터에 기록을 남기는 것 (push까지 필요)
- 다음 형식을 권장한다
2. GIT 실습 - 초기설정
- Git을 설치한다 (기본 설정으로)
- C 드라이브에 폴더 생성
-
- 우클릭, git bash here
- 리눅스의 bash shell이 뜰 것임 (깃을 설치하며 깃에 해당 셸이 설치됨)
-
- 초기 설정
- 아래 명령어는 설정들을 git에 전달한다
- git config –global user.name “
" - git config –global user.email
- 내 설정값 확인
- git config –list
- git config –list
- 설정값 삭제
- git config –unset –global user.name
- git config –unset –global user.email
3. GIT 실습 - 기본 명령어
- git init
- 로컬 저장소(repository) 만드는 명령어 git init
- 우리가 만든 폴더에 숨겨진 .git폴더가 생성됨 (손대지 말것)
- 위 명령어로 만들어진 .git 폴더가 있으면 로컬 저장소가 됨!
- git add
- txt 파일을 하나 생성해서 막 적어본다
- git add test.txt 혹은 git add .(점: 전체)
- 아직 커밋을 진행한 것은 아님
- git status
- 상태를 확인해 보기 위해 다음을 입력
- git status
- 새로운 파일이 생겼구나!를 알 수 있다
-
- git commit
- 커밋을 함, 어떤 작업을 했는지 적는다
- git commit -m “created new file”
- 작업내용의 경우, 회사같은 곳에서는 add, create등 단어를 지정해 주기도 함
- git log
- git log 입력해 보면 commit 한 이력이 나온다
- 커밋 이력을 확인해 볼 수 있다
-
- 연습: 이제 파일을 수정해 보자
- 내용을 추가한다
- 이 상태에서 git status 입력하면 수정할 게 있다고 나옴
- git add -> git commit 수행!
- git log 확인해 보면 생성한거, 수정한거 모두 확인 가능
-
- 내용을 추가한다
4. GIT 실습 - github 연동
- 깃에 깃허브 연동하기
- 레포 주소 복사
- * 원격 저장소(원본) 이름을 지정후 연동한다 (이름을 origin이라고 지정할 경우)
- git remote add origin https://github.com/passionleader/tutorial.git
- 원격 저장소에 올려보기
- git status를 보면 branch를 볼 수 있음
- 아직까지는 master 라는 브랜치 하나밖에 없음 (로컬)
- master를 origin에 집어넣겠다고 origin 한테 알리기 (현재까지 master(로컬)에서 작업한 내용들을 origin이라는 원격 저장소에 푸시한다)
- git push -u origin master
- git push -u origin master
- 연결된 곳 확인해 보기
- git remote -v
-
- 주의사항
- DB 주소, 암호 등이 적혀있는 파일의 경우 git ignore을 통해 숨겨야 함(업로드X)
- DB 주소, 암호 등이 적혀있는 파일의 경우 git ignore을 통해 숨겨야 함(업로드X)
5. GIT 실습 - 동기화
1 . 서로 다른 PC에서 순서대로 동일한 파일을 수정한 뒤 commit/push 하는 경우
- PC1
- 레포 생성: git init
- 파일 생성: test.txt
- git status - git add - git commit
- 깃헙 연동1: git remote add origin https://github.com/passionleader/tutorial.git
- 깃헙 연동2: git push -u origin master
- (동기화 및 업로드 완료)
- PC2 (그냥 연습용으로 다른 폴더여도 됨)
- 원격 레포 복제: git clone https://github.com/passionleader/tutorial.git ../tutorial2
- 받아온 파일 수정: test.txt
- git status - git add - git commit - git push
- PC1
- git pull
- PC2에서 변경된 사항이 적용된다
- 와 정말 잘 수정된다!
2 . 서로 다른 PC에서 동시에 동일한 파일을 수정한 뒤 commit/push 하는 경우
- 상황
- hehehe를 먼저 푸시
- hahaha를 뒤늦게 푸시할 때, 다음과 같은 오류 발생
- 이런 경우 어떻게 해야 할까?
- 해결시도
- 뒤늦게 푸시하려는 hahaha를 푸시하기 전에 git pull을 시도한다
- 안내 메시지가 뜸 (니가 작업한 hahaha는 먼저 들어온 hehehe랑 달라서 어떻게 할지 모르겠다)
- 곧바로 파일을 확인한 경우 둘중에 고르라고 친절하게 파일에 표시를 해줌
- 자동으로 합쳐지는 것을 아니고, 수동으로 해야 함
- 불필요한 단어를 다 지우면 둘다 남게 되고
- 이 상태에서 commit, push를 수행하면 된다
하나의 브랜치로 작업하면 이런 문제가 생기기 쉬움, 실무에서는 사람별로 브랜치를 나누는 것이 좋음