git / github 정리


Git 이란?

  • History를 관리하는 도구
  • 개발과정, 소스파일을 관리하는 도구로 History가 관리되어 개발 되어온 과정과 역사를 볼 수 있고 특정시점으로 복구할 수 있다.


  • 개인적으로 협업을 하지 않을때는 4가지 명령만 알고있어도 깃을 사용할 수 있다.
    • status : 현재의 상태 확인
    • add : 커밋할 목록에 추가
    • commit : 커밋(history의 한단위) 만들기
    • push : 커밋한 것을 Github에 밀어넣기


Git 설치의 경우 이전 게시물 git 설치하기 글을 참고하여 설치하면 된다.


  • 터미널에서 새로운 폴더를 만들어서 진행.
    mkdir git-test
    
  • git-test 폴더로 이동
    cd git-test
    

size_main

  • git을 초기화하고 ls를 했을 때는 .git이 보이지 않지만 ls -A 를 하면 .git이 생긴 것을 확인할 수 있다.


size_main

  • touch test 를 통해 test라는 파일을 생성한다.
  • git add * 을 하여 add 시키지 않은 파일들을 전체를 add.
  • git status 를 통해 상태 확인
  • git reset 을 통해 add 한 것들을 취소.


  • github에 들어가서 repository를 만든다.

size_main

size_main

  • 위에 쓰여져있는 ‘https://github.com/BoKyeong-Kim/git-test.git’ 를 복사한다.
  • 아래의 사진과 같이 git remote add origin 복사한 주소를 git에 입력한다.

size_main

size_main


  • master에 push 해준다.

size_main


  • 그리고 생성한 레파지토리에 들어가면 업로드된 것을 확인할 수 있다.

size_main


  • vi로 test 파일을 수정한다. size_main

commit 수정하기


  • git diff로 변경된 부분을 확인한다.
  • ㅣ(pipe line)으로 연결하여 nl을 확인하면 현재창에서 확인할 수 있다.

size_main


size_main

  • 수정한 파일을 add한다.
  • git commit –amend를 하게되면 vi 에디터 또는 지정된 에디터가 열릴 수 있다. commit 메시지를 수정하거나 수정없이 에디터를 닫으면 된다. (vi가 열렸다면 ESC를 누른 후 :wq를 입력하면 저장하고 닫아진다.)
  • 그 후 push를 하면 충돌이 난다.
  • 충돌의 이유는 Local에 기록된 commit과 github에 먼저 push하여 저장된 commit들의 commit ID가 일치하지 않기 때문이다.
  • 모든 commit ID가 일치한 상태에서 Local에만 새로운 추가 commit이 있을때는 push가 가능하다.


size_main

  • 위와 같이 git push origin master -f (=git push origin master –force)를 하게되면 강제로 push할 수 있다. (작업하는 도중 내용을 관리하고 있는 입장이라면 지양해야한다.)


size_main

  • 레파지토리에 들어가서 파일을 확인해보면 정상적으로 업로드 된 것을 확인할 수 있다.