git은 저장소가 local에 존재

SVN은 저장소가 원격서버에 존재하기 때문에 네트워크가 안되면 SVN으로는 작업을 할수가 없다. 하지만 git은 저장소가 local에 존재한다. local에 존재하기 때문에 혼자서도 작업할 수 있다. 그런데 작업자가 나혼자가 아니라 2명이상이 공동작업을 할려면 local에 존재하는 저장소를 원격에 공유해야 한다. 원격에 빈저장소를 만든다음 로컬에 존재하는 저장소를 원격 저장소와 동기화 해야 하는데 이것을 push라고 한다. 그리고 공동작업하는 다른 개발자는 로컬 저장소가 없기 때문에 원격 저장소를 복사해야하는데 이것을 clone 이라고 한다. 그러면 이제 2사람이상이 작업을 할 수가 있다. 로컬 저장소에 저장하는것을 commit 이라고 하고 커밋된 내용을 원격 서버와 동기화하는것을 push라고 하고 원격에 커밋된 내용을 다른 개발자가 가져오는것을 pull 이라고 한다.

SVN

GIT

Git은 저장소가 두개다

git은 저장소에 저장하기 전에 staging 영역에 add 를 먼저해야 한다. staging 영역에 add가 되어야 git은 tracking해야할 대상이라는것을 알고 변경사항들을 추적하게 된다. staging area에서 변경사항들이 추적된 화일들을 저장소에 저장하는것을 commit 이라고 한다.

git은 변경사항을 snapshot으로 저장한다.

git 은 SVN 처럼 commit 된것을 저장하는게 아니라 commit 과 commit 사이 변경된 사항을 snapshot 으로 저장한다. 따라서 브랜치를 아무리 많이 만들더라도 부담이 없다.

소스가 아닌것은 .gitignore에 명시

형상관리 혹은 소스관리는 소스만 저장해야 한다. 3rd party 라이브러리 같이 남이 만든 라이브러리는 형상관리 대상이 아니다. 또한 IDEA, WebStom, Visual Studio Code, Sublime Text, Eclipse 등 개발툴 환경화일도 또한 형상관리 대상이 아니다. 소스를 clone해서 개발자가 편한 어떤 개발툴로도 개발할수 있기 때문이다. 따라서 이런 화일들은 모드 .gitignore에 넣어두어야 한다. node_module 같은 폴더는 3rd party 라이브러리가 저장되는곳이므로 .gitignore에 저장해야 한다.

실습

+ 저장소 만들기

git init

+ 저장소 상태 확인

git status

+ staging 영역에 올리기

git add index.html

+ 저장소에 커밋하기

커밋 메시지를 적을때는 쌍따옴표를 사용해야 한다.

git commit index.html -m “first commit”

webstorm에서 실습하기

webstorm에서 GUI 방식으로 git을 쉽게 사용할 수 있다.

먼저 아래쪽 탭에 git 탭이 보여야 한다. 만일 git 탭이 보이지 않는다면 git 저장소가 안 만들어졌거나 만들어졌지만 인식이 되지 않는 경우이다. 그럴 경우에는 아래와 같이 생성하여야 한다.

상단 내비게이션 메뉴에서 VCS > Enable Version Control 을 클릭한다.

저장소를 Git을 선택하고 OK를 클릭한다.

그럼 하단에 Git 이라는 탭이 생성될것이다.

Git탭에 local changes가 보이지 않는다면 아래와 같이 해주어야 한다.

Settings > Version Control > Commit 에 Use non-modal commit interface를 체크 해제해주어야 한다.

local changes 탭을 확인해 보면 unversioned Files가 19,742개라고 나올것이다.

왜 이렇게 많은 것일까? 소스 형상 관리라는 것은 자기 소스만 형상 관리해야 하는것이지 남이 만든 3rd party 소스를 형상 관리하는 것은 아니다. 그러므로 자기 소스가 아닌 부분은 모두 형상 관리에 포함 시키지 말아야 한다.

webpack-tutorial 폴더 바로 아래에 .gitignore 파일을 생성하고 아래와 같이 기록한다.

webpack-tutorial 폴더 선택후 우클릭: New > File > .gitignore

그러면 Unversioned Files 가 14개 정도로 줄어들것이다.

커맨드라인에서 git add 한 명령을 GUI에서는 아주 쉽게 할 수 있다. 아래와 같이 Unversioned Files를 펼치고 맨 위를 클릭한 다음에 shift 누르고 아래쪽을 눌러서 전체를 선택한다. 그 다음 선택된 영역을 왼쪽 클릭한 다음 드래그 해서 위쪽 Default ChangeList로 drop 한다. 그러면 git add 가 된다.

commit 하는 방법은 changeList를 다 선택한 다음 우클릭하면 컨텍스트 메뉴가 나오고 거기서 commit을 선택한다.

원격 저장소 만들기

+ github.com.에 가입하고 빈 저장소를 만든다.

이 때 주의할 점은 빈저장소를 만들때 readme 같은 화일을 생성하면 안된다. 화일을 생성하게 되면 원격저장소에 커밋이 일어나게 되는데 그러면 로컬의 저장소와 동기화가 될 수없다.

+ 로컬 저장소를 원격 저장소와 연결하기

git remove -v 로 먼저 연결된 저장소를 확인해본다.

git remote add origin [원격 저장소 url] 로 동기화를 한다.

ex) git remote add origin https://github.com/eastflag/webpack-tutorial.git

+ 로컬 저장소를 원격 저장소에 push 하기

git push origin master

403 에러시

윈도우 자격증명에서 github를 삭제

다른 사람 이름으로 커밋될때

git config –global user.name “FIRST_NAME LAST_NAME”

git config –global user.email “MY_NAME@example.com”

– quiz