ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (생활코딩) GIT2 - CLI 버전관리 - 7~하나0. 버전 시점변경(checkout), 삭제(reset), 되돌리기(revert) (끝) !!
    카테고리 없음 2020. 2. 9. 23:56

    >


    git log 명령어를 입력했을 때, 저 master는 무엇인가? 현재로서는 master는 최신 버전입니다. 정도로만 알아둔다 - master=branch에서 위의 설명은 정확하지 않다.git checkout : HEAD가 가리키는 commitid를 변경하여 해당 버전을 만든 시점으로 돌아간다. HEAD가 master를 나타낸다.


    git add.: 현재 디렉토리 내에 있는 모든 파하나가 Staging Area에 추가 git add : 디렉토리 내에 있는 모든 파하나가 Staging Area에 추가 git commit-am : 현재 디렉토리 내에 있는 모든 파하나가 Staging Area에 추가 + 버전 발발 한 번에 실행. 주의점 : untracked 파하나에 있는 상태에서 이 명령어를 사용하면 해당 파하나는 자동으로 파하나가 되지 않는다. 처음의 1번째는 add되고 tracked상태의 파 1개만 자동으로 추가한다. 추적하고 싶지 않은 파하나가 잘못 추적되는 것을 방지하기 위해 gitcommit-m : commandline에서 직접 commitmessage를 작성할 때 사용 gitcommit: 기본 editor가 열린다→commitmessage를 여러 줄 작성할 수 있는 sound gitcomfig-global core.editor : gitor 변경사항


    git reset - hard : commitid에 해당하는 버전으로 돌아간다. -- checkout는 commitid에 해당하는 버전을 만든 시점으로 돌아감으로써(commitid에 해당하는 버전이 master로 바뀔 수 없다) checkout은 해당 버전의 다음 버전(수정한 사항)이 남아 있는데 reset은 그런 사항을 지운다(그러나 엄밀히 내용하면 삭제한 것이 아니므로 되돌릴 수 있다 sound).


    git revert - 명령어를 실행하면 기본 editor가 뜨며 자동으로 이 commit는 에 해당하는 버전을 revert 했다고 대신 기재해 줌.(선택)의 추가적으로 왜 revert했는지 이유 기재하는 것-아시아, 최근까지 발생한 버전을 V하나, V2, V3, V4와 가정한다. *만약 너무 제가 요즘 V3으로 돌아가고 싶다면 git revert명령을 실행해야 한다. 실행 후 git log에서 확인하고 보면 기존 V4는 꺼지지 않고 새로 Revert"V4"라는 commit이 생긴 것(V3상태와 갓소리)*기존의 commit은 내버려두고, 해당 commit에서의 변화를 취소한 것.만약 V하나로 돌아가고 싶다면 git revert명령을 실행해서는 안 된다. V하 나에게 돌아가고 싶다면, V4, V3, V2의 역순으로 V하나의 직전까지 revert해야 한다. 그렇지 않으면 충돌(conflict) 발생.(이유:revert은 V2를 revert하면 그 다음(V3, V4)을 모두 revert할 것이 아니라 V2에 해당하는 변화만 revert하기 때문에)​ ​ ​ ​ ​ ​ 정리하고 보자!


    >


    현재 repository의 상태와 파 1. 이 상태를 이 글에서는 base상태라고 가정한다.V최초~v6까지 발생하고 파 1은 hello처음이다.txt, hello2.txt, hello3.txt가 있다.현재 commit는 v6이었다 ​ ​


    >


    각 파 하나들의 스토리는 이후와 같다.Checkout


    >


    base상태에서 V3에 checkout했다.HEAD→master가 아니고, 단지 HEAD만이 보인다.V3에 checkout하고 해당 버전을 만든 시점으로 돌아갔다.해당 버전에 존재하던 섬인가의 hello1.txt만 끝인가 명단에 보인다.hello1.txt파 하나에는 V3까지 해당하는 이야기만 한다.master은 아직 v6이었다도 한 V3해안의 commit(V4, V5, V6)는 삭제된 것은 아니다. 계속 남아 있다.​


    >


    (출처:https://www.atlassian.com/git/tutorials/using-branches/git-checkout) 파란색 원이 HEAD가 가리키는 commit였던 위가 HEAD→master 상태이며 아래가 checkout 후 상태였다) reset


    >


    base상태에서 V3에 reset했다.위에서 V3에 checkout한 것과 매우 유사한 것에 차이가 있다. 즉시 V3에 HEAD->master가 있는 것 ​


    >


    >


    (출처:https://backlog.com/git-tutorial/rewriting-history/git-reset/)V3에 reset, 자신의 면 그 다음 commit들은 orphan상태가 된다.( 버려진 것(눈물)그러나 완전히 삭제되지 않고 살아남고 있다.git reset명령을 실행하면 다시 회복할 수 있는 것에!!! 하지만 commitid가 나타나지 않으면 돌아갈 수 없다는 것.도 하지만 이 상태에서 git log을 얼마나 실행해도 v6의 commit id를 알 수 없다.그래!! 엄연히 달리는 다이억츠계의 드라가이!!!!!


    >


    ./.git/logs/HEAD 파하나에서 확인할 수 있다.revert 하나. base상태(V6)에서 v5에 revert 하자.git revert이 아니라 git revert를 실행해야 한다.


    >


    >


    >


    v6의 commit id를 이용하고 revert 하면 v6는 당싱로 남아 있으며 Revertv6이라는 commit가 새로 일어나고 있다.Revertv6는 v6을 촉발할 때 변경된 사항을 취소한 상태의 commit였다 ​ ​ 2하나. base상태(V6)에서 V2에서 revert 하자.git revert를 실행했다.


    >


    명령어를 실행하려고 하면 error가 발생한다.제대로 V2->V3에서 변경된 부분(hello하나.txt 파일만 변경하는 것)이 제대로 revert되어 있지 않다.또"RevertV3"이라는 new commit이 발생하지 않는다.그래도 hello 하는가?txt파일을 보면 갑자기<명령어를 가장 최근 commit부터 V2직전 commit까지 역으로 모두 수행한다.나의 경우 v6commit id, V5, V4, V3까지 수행


    >


    HEAD는 master의 RevertV3을 가리키고 있고, 이는 V2과 똑같다.V2에서는 hello하나.txt만 포함되어 있고 Hello 하나.txt에 V2까지의 예기를 듣고 있는 것을 알 수 있다.​​​​​


    >


    revert는 무엇을 취소했는지 로그를 남긴다고 생각해도 된다.혼자 개발하는 경우와 달리 여러 명이서 개발할 때 내가 무엇을 취소했는지 다른 개발자와 공유하는 것이 중요한데, 이때 Revert의 역할이 높다.Reset는 무엇을 취소하고 어디로 돌아왔는지에 대한 로그가 남지 않는 반면 revert는 그런 로그의 그때그때를 남기는 것이었다.후... 어렵다.공부는 정이야기로 끝나지 않고, 나 자신뿐이야.


    버전 관리의 핵심=비교-비교를 통해 과거를 되돌아 볼 수 있다는 것이 버전 관리의 핵심적인 효용 git와 관련하여 더 공부하면 되는 것 difftool-차이를 비교하는 도구. gitignore-버전 관리를 할 때 예기해야 할 파일이 있으면 이.gitignore 파일을 만들고 여기에 버전 관리를 할 때 예기해야 할 파일의 이름을 적으면 된다 branch-마치 평행 우주처럼 리포터를 다양한 상태로 공존하게 된다. - ex) 보고서 작성 -> 리포트에 근거하여 구글, Apple, MS에 조금씩 다른 예를 수정하여 제공해야 할 때. 저장소 전부를 복사하여 디렉토리를 만든 이 강 각각 작업? X*branch를 이용 칠로리포지토리의 이름을 더럽히지 않고 자신의 레파지토리에서 다양한 작업을 진행 tag-각각의 버전을 식별하는 식별자로 commitid가 임금 인상 깨지지만, 기억하기가 쉽지 않으므로 대신 적당한 이름을 사용 backup-git은 독자적으로 너무 안전하고 편리한 backup장치를 갖고 있으며 클릭 1개(명령 일행)에서 가장 최근까지 작업한 것을 인터넷에 업로드 지 르-백업할 수 있는-컴퓨터를 옮기면 백업한 것을 다시 다운로드하고 곧바로 작업을 시작할 수 있을-git으로 백업하는 것은 편리, 조금 어렵게 git, goopo까지는 백업하는 방법을 배운다.le drive, one drive와 같은 서비스에 저장소 디렉토리를 높여서라도 백업을 하자!


    댓글

Designed by Tistory.