코드를 작성하면 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