github

    revert로 특정커밋 하나 되돌리기

    일단 main을 checkout한 상태에서 revertest1을 만든다. 이런식으로 revertest1을 만들고 revertest1을 chekout한 상태에서 일단 충돌방지를 위해 3개의 새 파일을만들어서 커밋한다고 가정하자. 해당 소스 파일에는 각각 revert1 revert2 revert3 이렇게 내용이 적혀있다고 하자. revert2가 적힌 파일만 커밋 되돌리기 하고싶다면 그냥 revert2가 적힌 파일을 커밋한 것을 선택하고 - 우클릭 - 커밋되돌리기 하면 된다. 웬만하면 근데 충돌을 방지하기위해 최신순서대로 revert해주는 것이 좋다.

    Rebase를 사용해서 tree 정리

    rebase는 merge와 비슷하다. rebase는 두 branch를 합칠 때 사용한다. SourceTree에서는 "재배치"라는 명령이다. 장점 : 커밋 히스토리가 깔끔해짐 단점 : 잘못하면 위험. github에 올라갔거나 협업을 하고 있는 경우에는 매우 위험하다. rebase라는 branch를 만들어보자. 이렇게 대충 내용써주고 스테이지에 올리고 커밋도해준다. rebase를 checkout한 상태에서 main이 있는곳에 branch를 또 새로 만들것이다. etc에는 rebase 내용도 없다. 그러면 여기에 이렇게 쓰고 스테이지에 올리고 커밋을 해주자. 이렇게 두 갈래가 생긴다. 이제 merge를 해보자. etc와 rebase 둘 중에 하나만 fast forward가 가능하다. 일단 main을 check..

    stash를 이용한 작업 내용 저장

    자 이상태에서 test라는 branch를 만들어보자. 이렇게 브랜치를 만들어보자. 이상태에서 커밋을 아무거나 해보겠다. 뭐 이런 식으로 내용을 추가했다. commit하지 않은 변경사항이 생겼습니다. 스테이지에 올리고 commit해줍니다. 이렇게 써주고 커밋합니다. 이제 만약에 이렇게 적었다고 가정해보자. 커밋하지 않은 변경사항이 생겼다. 마지막 커밋(test 커밋) 과 현재 작업 디렉토리의 내용이 다르기 때문에 이런게 생긴 것이다. 이상태에서 main을 checkout하면 에러가 뜬다. 이 에러는 해당 프로그램에 버그가 생겨서 급하게 수정해야하는 상황에 흔히 볼 수 있다. 이러한 상황을 해결하려면 첫째, branch1에서 임시커밋을 하기 둘째, branch2에서 checkout을 하고 볼 일 보기 셋째,..

    Revert를 이용해서 여러가지 commit을 되돌리기

    revert로 쉽게 커밋을 되돌릴 수 있고 revert로 되돌리면 이전 커밋이 남기 때문에 좋다. SourceTree 에서는 커밋 선택 - 우클릭 - 커밋 되돌리기를 통해 Revert를 할 수 있었다. 이때 되돌아가고 싶은 위치를 선택해서 되돌아가는 것이 아니라, 되돌리고 싶은 커밋을 되돌리는 것이다. 즉 내가 파란색으로 선택한 커밋으로 되돌리고 싶다고해서 파란색으로 선택한 커밋을 우클릭 - 커밋 되돌리기를 하는 것이 아니라 이 친구를 우클릭해서 커밋되돌리기를 하는 것이다. revert로 여러 커밋을 되돌리는 법? 최신부터 순서대로 revert를 반복 적용하면 된다. main checkout한 상태에서 main을 클릭하고 브랜치를 만든다. 그리고 test1으로 파일을 하나 만들겠다. 내용은 이렇게 추가하..

    branch로 commit 되돌리기

    # ver 충돌 방지용만 적혀있었던 것에 내용을 추가해보겠다. 요런식으로 뜨는데 stage에 올리고 commit해준다. 커밋하였다. 저번에는 origin/main이 있는 곳으로 되돌아가려면 '이 커밋까지 현재 브랜치를 초기화' 이걸로 되돌아갔는데 이번에는 브랜치를 추가해서 되돌아갈 것이다. 일단 main을 checkout한 상태에서 origin/main이 있는 부분을 클릭한다. 그리고 오른쪽 마우스를 클릭한다. 이렇게 뜰텐데 브랜치를 눌러준다. 요렇게 적고 브랜치를 생성해보겠다. 자동으로branch가 생겼으며 자동으로 checkout까지 된 상태다. 다시 python으로 되돌아가보면 아까 추가한 내용이 없어져있다. 그렇지만 다시 main을 checkout하면 다시 나타나니 이점은 걱정할 필요 없다. 아무..

    병합(2)

    저번시간에 병합에 대해 이론을 공부했으니 이제 직접 SourceTree해서 해보겠다 main 브랜치를 선택하여준다. 한번 merge를 해보자. ver2.0을 클릭만해주고 오른쪽마우스클릭~ 병합을 눌러줍니다. 확인 눌러준다. 충돌이 일어난다 ㅠㅠ 컴퓨터에서 나는 띠링 소리와 함께 가슴이 쿵 하겠지만 너무 걱정하지 않아도 된다. HEAD가 현재 변경 사항 즉, main 꺼고 =====과 ver2.0 사이에 들어간 것은 main이랑 ver2.0을 합치려고 했더니 y = 1 이라는 것이 있었다는 의미 일단 다시 지워주자 그 부분을 지웠다. 그냥 그 부분을 지우고 수동으로 merge 해버렸다. 일단 저장한다. 그리고 SourceTree에 가면 그대로 이런 상태인데 스테이지에 올라가지 않은 파일을 다시 스테이지에 ..

    병합(1)

    보호되어 있는 글입니다.

    브랜치

    브랜치 : 기능을 변경하고 싶을 때 생성 및 사용 즉, 기존 내용을 유지한 채 새로운 내용을 추가하고 싶을 때 사용한다. 이 상태에서 우클릭을 하면 이렇게 나오는데, 브랜치를 클릭하여 들어간다 그러면 이렇게 나오는데, ver2.0라고 쓰고 브랜치 생성을 해보자. 이렇게 되면 언제든지 이전 단계로 되돌아 갈 수 있다. 체크아웃 : 특정 브랜치(혹은 커밋)으로 돌아가고 싶을 때 사용. 소스트리의 체크아웃 : 브랜치 이름을 더블 클릭하는 것 만으로 체크아웃 가능. 이런식으로 브랜치를 설정한 파일을 열어 내용을 수정하거나 하면 이렇게 빨갛게 나온다. 한번에 하나의 '브랜치'에서만 작업을 할 수 있고 이것을 'Head 브랜치'라고 부른다. 다시 제대로 보시면 커밋하지 않은 변경사항이 생겼는데 이거를 스테이지에 올..