Branch Switching 브랜치를 옮기는데 git checkout이라는 기존의 명령어가 있었습니다. 이 명령어가 너무 많은 기능을 가지고 있어 문제가 있었습니다. 한 명령어가 너무 많은 기능을 가지게 되면 객체지향에서 말하는 GOD Object와 같은 설계가 탄생할 수 있기 때문에 git 시스템은 버전업그레이드를 거치며 git switch라는 명령어를 만들게 되었습니다. checkout 브랜치 전환 : git checkout branch-name을 사용하면 다른 브랜치로 전환가능 커밋으로이동 : git checkout commit-hash을 사용하여 특정 커밋으로 이동가능 파일복원 : git checkout --file-name을 사용하면 특정 파일을 이전 커밋상태로 복원 가능 switch( 브랜치..
repository란? git이라는 친구가 파일버전을 저장해두는 장소를 repository라고 합니다. 로컬 작업폴더엔 .git폴더가 있는데 그게 repository입니다. repository는 한국말로 저장소라고합니다. 실제로 개발할 땐 온라인repository를 많이 사용합니다. 내가 컴퓨터에 만들어 놓은 git repository를 온라인으로 저장해두는 겁니다. Github에서 만든 원격 저장소에 올리기 로컬저장소 -> 원격저장소 이렇게 업로드하고 싶으면 작업폴더에서 터미널켜서 git push -u 원격저장소주소 main 하면 됩니다. 로컬저장소의 main브랜치를 원격저장소에 올리라는 뜻입니다. -u 옵션은 방금 입력한 주소 기억해두라는 뜻입니다. 다음부터는 주소를 입력안하고 git push만 입력..
브랜치를 합칠 때 다양한 방법으로 합칠 수 있습니다. 3-way merge 브랜치에 각각 신규 commit이 1회이상 있는 경우 merge명령을 내리면 두 브랜치의 코드를 합쳐서 새로운 commit을 자동으로 생성해줍니다. 이걸 3-way merge 라고 부릅니다. 이게 merge의 기본동작방식입니다. fast-forward merge 가끔은 새로운 브랜치에만 commit이 있고 기준이 되는 브랜치에는 신규 commit이 없는 경우가 있습니다. 이 경우 merge하게 되면 "fast-forward merge" 라고 알려줍니다. fast-forward merge가 뭐냐면 신규브랜치보고 "지금부터 니 이름은 main 브랜치야" 하는 것입니다. (그래도 결과는 어차피 같으니까) 그래서 "기준이 되는 브랜치에 ..
커밋하면서 계속 코드를 짜다보면 갑자기 새로운 기능을 추가해야하는 경우가 있습니다. 그럴 때는 원본파일에 코드를 추가하고 커밋해도 되겠지만 혹시나 잘못해서 지금까지 잤던 프로그램이 망가지거나 그러면 큰일납니다. 그럴 걱정 없이 안전하게 새로운 기능을 추가하고 싶으면 복사본을 만들어 먼저 개발하는것도 나쁘지 않습니다. git 안에선 branch 기능을 이용해서 복사본을 만들 수 있습니다. branch만들기 이러면 프로젝트 사본이 하나 생성됩니다. git branch 브랜치이름 방금 만든 브랜치로 이동하고 싶으면 아래의 명령어를 사용하면 됩니다. git switch 브랜치이름 (다시 메인브렌치로 이동하고 싶으면 git switch main 하면 됩니다, 어떤 브랜치에 와있는지 까먹었으면 git status ..
코드를 짜다가 실수해서 2일전으로 돌아가고 싶으면 어떻게 할까요? 매일매일 손수 파일 복사본을 만들어두거나 git쓰거나 둘 중 하나만 선택하면 됩니다. git의 commit 기능을 쓰면 파일의 현재상태를 매일매일 기록해둘 수 있습니다. 작업폴더에서 git을 이용하고 싶으면 터미널을 열어서 git init 부터 입력하고 시작합니다. 이제 git이 파일생성하는거, 코드작성하는걸 추적하기 시작합니다. 이제 짠 코드를 기록을 해두고 싶으면 차례로 터미널에 입력하면 됩니다. 이러면 방금 파일의 내용을 어딘가에 기록(기록보다는 버전생성이 더 정확)해줍니다. git add 파일명 git commit -m '아무메세지' staging area & repository 버전만들 땐 git add, git commit 차례..