git / github 정리
Git 이란?
- History를 관리하는 도구
- 개발과정, 소스파일을 관리하는 도구로 History가 관리되어 개발 되어온 과정과 역사를 볼 수 있고 특정시점으로 복구할 수 있다.
- 개인적으로 협업을 하지 않을때는 4가지 명령만 알고있어도 깃을 사용할 수 있다.
- status : 현재의 상태 확인
- add : 커밋할 목록에 추가
- commit : 커밋(history의 한단위) 만들기
- push : 커밋한 것을 Github에 밀어넣기
Git 설치의 경우 이전 게시물 git 설치하기 글을 참고하여 설치하면 된다.
- 터미널에서 새로운 폴더를 만들어서 진행.
mkdir git-test
- git-test 폴더로 이동
cd git-test
- git을 초기화하고 ls를 했을 때는 .git이 보이지 않지만 ls -A 를 하면 .git이 생긴 것을 확인할 수 있다.
- touch test 를 통해 test라는 파일을 생성한다.
- git add * 을 하여 add 시키지 않은 파일들을 전체를 add.
- git status 를 통해 상태 확인
- git reset 을 통해 add 한 것들을 취소.
- github에 들어가서 repository를 만든다.
- 위에 쓰여져있는 ‘https://github.com/BoKyeong-Kim/git-test.git’ 를 복사한다.
- 아래의 사진과 같이 git remote add origin 복사한 주소를 git에 입력한다.
- master에 push 해준다.
- 그리고 생성한 레파지토리에 들어가면 업로드된 것을 확인할 수 있다.
- vi로 test 파일을 수정한다.
commit 수정하기
- git diff로 변경된 부분을 확인한다.
- ㅣ(pipe line)으로 연결하여 nl을 확인하면 현재창에서 확인할 수 있다.
- 수정한 파일을 add한다.
- git commit –amend를 하게되면 vi 에디터 또는 지정된 에디터가 열릴 수 있다. commit 메시지를 수정하거나 수정없이 에디터를 닫으면 된다. (vi가 열렸다면 ESC를 누른 후 :wq를 입력하면 저장하고 닫아진다.)
- 그 후 push를 하면 충돌이 난다.
- 충돌의 이유는 Local에 기록된 commit과 github에 먼저 push하여 저장된 commit들의 commit ID가 일치하지 않기 때문이다.
- 모든 commit ID가 일치한 상태에서 Local에만 새로운 추가 commit이 있을때는 push가 가능하다.
- 위와 같이 git push origin master -f (=git push origin master –force)를 하게되면 강제로 push할 수 있다. (작업하는 도중 내용을 관리하고 있는 입장이라면 지양해야한다.)
- 레파지토리에 들어가서 파일을 확인해보면 정상적으로 업로드 된 것을 확인할 수 있다.