Git

    git stash

    [문제 상황] 한 브랜치에서 다른 브랜치로 옮기려면 워킹 디렉토리에 흔적이 있어서 커밋을 날리고 다른 브랜치로 이동 해야 한다. 하지만 커밋 날리기에는 흔적을 남기기 싫고 그냥 다른 브랜치에 이동하고싶을때가 있다. 그러면 어떻게 해야 할까? [문제 해결방법] git stash를 명령어 통해 워킹디렉토리를 깨끗이 저장 할 수 있다. 그래서 다른 브랜치로 쉽게 이동 할 수 있다. → 버전관리가 되고 있는 파일들만 가능 git stash 작업 도중 커밋을 할 수는 없는 상태지만, 브랜치 전환을 하거나 커밋 변경을 해야할때 임시적으로 저장할 수 있는 명령어 commit되기 이전 작업 중 파일과 git add로 추가된 파일 까지 모두 stash 영역으로 저장되며 수정분량은 제거 된다 단, git add 명령어로 ..

    git merge

    git merge 나뉘어진 브랜치를 다시 하나의 브랜치로 합치는 것을 말한다. 가장 오류가 많이 발생하는 과정이니 주의해야 한다. Merge 진행 시 현재 브랜치를 브랜치가 합쳐지는 기존 메인 브랜치로 전환한 후 수정된 브랜치를 Merge해야 오류가 발생하지 않는다. 여러 개의 브랜치들을 한꺼번에 Merge할 때도 마찬가지로 차례차례 기존 브랜치 상태에서 Merge를 진행한다. git checkout [merge를 담을 메인브랜치] git merge [merge할 브랜치 이름] //현재 brach의 내용과 합칠 브랜치이름 //주의) //같은 파일의 같은 위치의 내용이 변경된 경우 충돌이 발생한다. //충돌나는 이유는 변경한 내용이 같은 행에 포함되어 있기 때문이다 Merge에는 종류가 2가지가 있다. 하..

    git checkout

    git checkout 워킹 디렉토리의 소스를 특정 커밋 또는 특정 브랜치로 변경한다. 현재 위치한 커밋에서 다른 커밋으로 이동하는 것을 체크 아웃이라 한다. 체크 아웃을 통해 현재 커밋에서 같은 브랜치 내 다른 커밋으로 이동하거나, 다른 브랜치 내 커밋으로 이동할 수 있다. 결론적으로 체크아웃으로 인해 이전 시점의 버전으로 되돌아갈 수도 있고, 다른 사람의 브랜치로 전환해 다른 개발자들의 코드 진행 상황을 확인해 볼 수도 있다. //특정 브랜치로 워킹 디렉토리 변경. 즉, 브랜치 위치 바꾸기 git checkout [브랜치 이름] //브랜치를 새로 만들면서 그 브랜치 위치로 지정 git checkout -b ‘브랜치이름’ //특정 커밋으로 워킹 디렉토리 변경 git checkout [Commit ID]..

    git branch

    git branch 브랜치를 생성, 수정, 삭제 등을 한다. //브랜치 보기 git branch //브랜치생성 git branch [브랜치명] //브랜치 수정 git branch -m [브랜치명] [바꿀이름] //브랜치 삭제 git branch -d [삭제할 브랜치이름] //브랜치 마다 마지막 커밋내용 보기 git branch -v 브랜치는 특정 커밋으로부터 분기되는 포인터를 말하는 것이다. 각 개발자들이 개발을 진행하고 있는 환경 또는 흐름을 말한다. 새로운 브랜치가 생성되더라도 기존의 메인 브랜치는 그대로 남아있다. 여러 명이 같은 코드를 공유하며 협업하는 상황을 생각해보자. 각 개발자들은 여러 커밋을 만들며 코드를 발전시키는데, 이때 누가 어떤 커밋을 추가했는지 구분이 가능해야 한다. 이때 사용되는..

    git clone

    git clone 원격 저장소로부터 특정 프로젝트를 통째로 내 로컬 저장소에 다운받는 것을 말한다. //원격저장소에 있는 프로젝트를 내 로컬저장소에 다운 git clone [Github내 원격저장소 주소] //b : 원격저장소의 특정 브랜치 내용을 clone git clone -b [브랜치이름] [원격저장소주소] //-b == --branch

    git pull

    git pull 원격 저장소에서 변경된 사항들을 내 로컬 저장소에 반영하는 것을 말한다 Push와 정반대의 개념으로, 다른 사람이 Push를 해서 원격 저장소에 코드를 업데이트하면 우리는 해당 코드를 Pull하여 로컬의 코드를 업데이트한다. 이때 기존의 코드와 내 코드가 다른 경우 Merge를 진행해 코드를 합치게 된다. git pull 참고) -rebase : 기본 방식인 merge가 아니라 rebase 방식으로 pull 수행