사용법 정리[Day43] Git

코드를 작성하면 version 관리가 필요한 경우가 있는데요.

지금까지는 혼자 작업하다 보면 그대로 local에 폴더를 만들어서 작업하는 경우가 대부분이었는데,

Git, subversion과 같은 버전 관리 툴을 알고 사용해 보려고 한다.

요즘은 git가 더 유행하는 것 같아서 사용법 정리를 좀 해.

우선 인스톨은 인터넷에 나와 있는 대로, 아래의 명령 하나로 인스톨 완료.

sudo apt-get install git

  • 사용법 및 원리
  • git 사용 목적이 버전 관리이기 때문에 어떻게 코드를 update하고 이전 버전으로 rollback하느냐가 가장 중요한 것.
  • 마찬가지로 나머지 부가적인 기능을 나중에 천천히 살펴보도록 합시다.

  • git는 아래와 같은 status에서 file을 관리하는데, 아래의 포스팅에 정리되어 있다.

참조: https://ifuwanna.tisto ry.com/193 개요기(Git)의 장점 중 하나는 대부분의 명령을 로컬에서 실행한다는 점입니다.

원격 스토리지(remote Repository) 정보가 필요할 때만(pullpush 등) 네트워크가 필요하며, 그 외에는 오프라인 환경에서도.. ifuwanna.tistory.com

  • – git init, commit, add
  • 사용하는 폴더에 가서 gitinit 하면 .git 파일이 생겨 관리 가능

첫 init 이후에는 commit을 해야 head가 master를 가르치게 된다.

여기서 head는 이전 학부 때 linked list 때 배웠던 개념과 같은 것으로 보인다(처음을 가리키는 포인터).

파일추가는 commit전에 add해서 commit 대기상태로 해주세요.

원하는 파일만 따로 setting 가능 (다 하고 싶다면?)붙이면 되고)

  • 코드버전 표시에 우선 아래 포스팅에 reset과 revert의 차이가 자주 있기 때문에 http://victorydntmd.tistory.com/791.reset와 revert 작업을 진행하다가 실수로 중요한 파일을 삭제하거나 올바르게 병합되지 않았을 경우 잘 작동하던 이전 버전으로 돌아가야 합니다.

    이것이 버전 관리를 하는 이유이며 이때 사용하는 이름. victorydntmd.tistory.com 아직 이해가 되지 않는다……
  • 예를 들어 rev1→rev2→rev3→rev4→…이렇게 코드가 정리된다면
  • 내가 gitreset–hardrev2 이렇게 하면 rev2로 돌아가고 rev3rev4는 완전히 삭제된다(보이는 만큼 보이지 않는 것….reflog로 하면 rev3,4로도 돌아갈 수 있다)
  • 만약 gitrevertrev2 이렇게 하면 rev2에서 진행된 이력만 취소된다(충돌할 수 있으며 mergetoolsetting 필요)
  • 따라서 rev3, rev4에서 이루어진 것은 그대로 유지된다.

  • reset 옵션 – soft:index 저장(add한 상태, staged 상태), 워킹 디렉터리의 파일 저장. 즉 모두 저장. – mixed: index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉토리의 파일 저장(기본 옵션) – hard: index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉토리의 파일 삭제. 즉 모두 취소.
  • 조금 공부해보니 reset을 할 때 이전 버전으로 돌아가서 commit을 했을 경우, 그 후 버전으로 돌아가고 싶을 때 id를 어떻게 보는지 몰랐는데,
  • gitreflog를 치면 내가 commit한 모든 것이 보여서 이동 가능한 것 같다.

https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Reset-%EB%AA%85%ED%99%95%ED%9E%88-%EC%95%8C%EA%B3%A0-%EA%B0%80%EA%B8%B0Chapters22ndEdition7.7Git 툴-Reset 명확하게 알아가는 Reset 명확하게 알아가는 Git의 다른 특별한 툴을 더 보기 전에 reset와 checkout에 대해 이야기해 보자. 이 두 명령은 Git를 처음 사용하는 사람을 가장 혼란스럽게 하는 부분이다.

제대로 이해하고 사용할 수 없다고 생각될 정도로 많은 기능을 가지고 있다.

알기 쉽도록 간단한 예를 들어 설명해 보자. 3개의 트리 Git를 서로 다른 세트를 관리하는 콘텐츠 관리자로 생각하면 reset과 checkout을… git-scm.com가 포스팅을 보면서 더 공부해야 할 것 같아. 잘 모르겠다.

———————————————————————————https://opentutorials.org/module/4032/24550gitrevert2019-03-2709:49 수업 소개 revert 가 동작하는 방법을 알아보고 충돌이 일어났을 때 어떻게 처리하는지 알려드립니다.

강의 1 revert가 무엇인지 이론적으로 살펴보겠습니다.

강의 2 revert를 해봅시다!
강의 3의 충돌이 일어나는 이유를 살펴보겠습니다.

강의 4 충돌을 해결합시다!
opentutorials.org 이 분이 정리한 동영상이 제가 막 원하던 동영상 인코딩 도중에 바꾸려고 하는 상황인데 나중에 참조.

최초 생성:gitinit파일 staged상태로 만든다:gitadd-p로 할 경우 일일이 하나하나 체크하며)commit을 덮었다:gitinit파일 staged상태로 만든다:gitadd파일 이름(gitadd-p로 할 경우 일일이 하나하나 체크하며)commit 씌운다:gitcommit:gitcommit 하는:gitcommit-m”로그”adddddddd-p로 하는 것:gitchesAD무시된 파일 삭제,-f:파일 삭제,-n:가상 삭제)모든 이력을 표시:gitreflogmergetool설정:gitconfigmerge.toolvimdiff, 다른 부분을 표시:gitdiff(-color-words)or(-color-diff)modiffied해제:gitcheckout–file명

https://leehc257.tistory.com/13?category=896297git는 파일의 변경 내용을 추적하고 버전을 관리하기 위한 분산 버전 관리 시스템이다.

누가 어디서, 무엇을, 왜 바꿨는지를 저장하고 관리하는데 이를 저장하는 곳을 Repository라고 부른다.

이것은 협업에 의한 leehc257.tistory.com