Git & Github 35

[Git & Github] 10. 변경사항 취소하기 및 시간 여행

Critical ● 커밋 체크아웃 ● 분리된 HEADImportant ● 변경사항 무시하기 ● git restore(복원)/reset(재설정)/revert(되돌리기) git checkout 명령어로 브랜치를 생성하거나 이동하는것 말고도 이전 커밋을 확인 할 수도 있다. git checkout HEAD를 해당 커밋으로 이동시킨다. 명령어 실행 시 HEAD가 분리된 상태라는 메시지가 출력된다.브랜치는 언제나 해당 브랜치의 최근 커밋을 가리키고 HEAD는 그 브랜치를 가리키게 된다. 일반적으로 HEAD는 커밋이 아닌 특정 브랜치를 참조하게 된다.하지만 해당 명령어를 통해서 HEAD가 특정 커밋을 참조하도록 바꾼다. 원래 브랜치를 참조하던것이 커밋을 참조하게 되었으므로 분리된 상태가 된 것..

[Git & Github] 9. 스태시(Stash)의 모든 것

Important ● 스태시의 기초 ● git stash save/popNice To Have ● git stash 적용 ● 스태시 삭제 ● 여러개의 스태시로 작업하기 스태시는 유용한 기능이지만 반드시 사용해야 하는 상황은 발생하지 않는다.대부분 save와 pop을 사용한다. 브랜치에서 작업을 하다가 완료되지 않은 상태라서 커밋을 하지 않고 다른 브랜치로 이동해야 하는 경우에는 상황에 따라 해당 작업이 이동하는 브랜치로 따라오거나 깃에서 브랜치를 이동하지 못하도록 막는(병합 커밋 발생 예상 시) 두 가지 옵션이 존재한다.이 때 스태시를 사용한다. git stash (=git stash save)커밋되지 않은 변경사항을 저장하고 변경사항들을 모두 초기화 시킨다.내용이 삭제되는것이..

[Git & Github] 8. Git Diff로 변경사항 비교하기

Critical ● git diff 명령어 실행 결과 읽기 ● git diff 명령어의 기본적인 사용 방법Important ● 브랜치, 커밋, 특정 파일의 비교 ● git diff --stage git diff는 깃에서의 변경 사항들을 보여주는 명렁어이다.git status나 git log처럼 저장소에 아무런 영향을 미치지 않는 명령어이다.git diff스테이지에 등록되지 않은 작업 영역의 변경사항을 모두 나열한다.(아직 스테이지에 올라가지 않은 상태)(작업 영역 파일의 변경사항을 알려준다)(각 라인을 해석하면 위와 같다)a는 커밋된 파일, b는 작업 영역의 파일이다.git diff HEAD마지막 커밋이 실행된 이후의 변경사항을 모두 나열한다.마지막 커밋 이후 변경 사항을 스테이지에..

[Git & Github] 7. 브랜치 병합하기, 맙소사!

Critical ● Fast-Forward(빨리 감기) 병합 ● git merge & merge commits ● 병합 충돌과 해결 방법Nice To Have ● VS Code 사용을 통한 충돌 해결 방법병합의 2가지 원칙 ● 특정 커밋이 아닌 브랜치를 병합한다. ● 항상 현재 HEAD 브랜치에 병합한다. ● Fast-Forward(빨리 감기) 병합 1. 목적지(병합하려는) 브랜치로 이동한다. (B를 A에 합치고 싶다면 A로 이동) 2. git merge B 실행 3. A의 브랜치가 B의 브랜치를 따라잡게 된다. 병합을 하더라도 병합 대상의 내용들이 브랜치에 추가되는 것은 한 순간이고 동기화가 계속 이뤄지는것은 아니다. 여전히 별개의 브랜치로 존재한다...

[Git & Github] 6. 브랜치(branch)로 작업하기

Critical ● 브랜치는 무엇이고 왜 사용하는가? ● HEAD에 대해 이해 ● 명령어 git branch/switch/checkoutImportant ● 브랜치 삭제와 이름 변경 ● 브랜치 이름 (master vs main)Nice To Have ● HEAD & Refs behind the scenes 브랜치도 커밋처럼 매일 또는 자주 다루게 될 것이다. 커밋은 고유의 해시를 가지고 부모 커밋 하나를 참조하고 있다. 어떤 팀에서 각각 진행하는 작업의 내용이 진척도가 서로 다르고 작업 내용이 추후 적용된다고 했을 때, 순차적인 커밋은 불가능하다고 볼 수 있다.이 때, 브랜치로 작업을 분기시켜서 별도로 진행하다가 추 후 합칠 수 있다. 작업은 항상 브랜치 위에 존재한다. ..

[Git & Github] 5. 커밋과 관련 주제 자세히 알아보기

Critical ● git ignoreImportant ● 커밋의 원자적 유지 (Atomic commits) ● 좋은 커밋 메시지 작성법 ● 깃 문서 탐색Nice To Have ● GUI 사용 ● Amending commits (커밋 변경) 깃의 문서는 https://git-scm.com 에서 볼 수 있다. 명령어의 기능이 궁금할 때 레퍼런스를 참조하면 된다. ● 커밋의 원자적 유지 (Atomic commits)가능하다면 커밋은 단일 기능이나 단일 변화, 수정만을 포함시켜야 한다.한 커밋에 모든 변경사항들을 통합한다면 커밋을 롤백할 때 많은 작업들을 취소해야 할 수도 있다. ● 커밋 메시지 작성현재 시제의 명령형 커밋 메시지를 사용할 것을 공식적으로 권장하고 있다.예를들어..

[Git & Github] 4. Git의 기초 : 추가하기와 커밋하기

Critical ● 깃 저장소의 개념 ● 명령어 git init/status ● 커밋의 흐름 (명령어 git add/commit/log)Important ● .git 폴더에 대한 이해 깃 저장소는 작업 공간이다.git init현재 있는 디렉토리를 새 저장소의 홈으로 만든다. init을 실행하기 전에 status로 먼저 확인해 주는 것이 좋다.git status현재 저장소의 상태를 확인한다. .git 폴더를 삭제하면 저장소의 이력까지 모조리 사라진다. 저장소 안에 또 다른 저장소를 넣지 말아야 한다. (초기화된 저장소 안에서 또 초기화를 하지 말라는 뜻)깃이 깃을 추적하기 때문에 혼란스러워진다. ● 커밋이란?프로젝트의 변경 사항이 있는 일종의 체크포인트.깃은 3개의 다른 영역으로 구분..

[Git & Github] 3. 설치 및 설정

Git 설치https://git-scm.com/ Git git-scm.com위 사이트에서 현재 사용중인 시스템 운영체제에 맞는 최신 버전 파일로 다운받아서 기본 설정대로 설치하면 된다.(기본 텍스트 에디터를 Visual Studio Code 등과 같이 파일 생성, 편집이 용이한 에디터로 수정하면 좋다)Git GUI 설치강의에서 설치하는 GitKraken은 한국에서 잘 사용하지 않는 GUI 프로그램이며 강의에서도 잘 사용하지 않아 설치 과정은 생략한다.Git 사용에 앞서터미널 vs GUI터미널장점 : 속도가 빠르다. 개발 환경에 상관없이 작동하기 때문에 의존성이 없다.단점 : 사용하기 어렵다.GUI장점 : 사용하기 편하다.단점 : 작업의 추상화가 이뤄져서 이해가 어려울 수 있다. 툴에 의존성이 생긴다. 깃..

[Git & Github] 2. Git을 소개합니다!

Git은 가장 많이 사용되는 버전 관리 시스템(VCS)이다.그 외 유명한 것으로는 Subversion, CVS, Mercurial이 있다.VCS란?"Version Control System"의 약자로, 파일의 변화를 시간에 따라 추적하고 관리하는데 도움을 주는 시스템 Git은 일종의 체크포인트(세이브포인트)를 지정하는 것이다. 브랜치를 합쳐서 새로운 체크포인트를 생성할 수도 있다. Git은 개발자 뿐만 아니라 정부, 과학자, 작가 등 다양한 분야에서 사용한다. Git과 Github의 차이점Git은 VCS이고 PC에서 실행된다. 인터넷이나 계정이 필요없다.Github는 웹 서비스이고 Git 저장소가 필요하다. 인터넷과 계정이 필요하다.Github는 사람들을 연결하고 Git 프로젝트를 연결한다.Github..

[Git & Github] Git & Github 실무 활용 완벽 가이드

유데미의 [한글자막] Git & Github 실무 활용 완벽 가이드 복습용으로 블로그에 내용을 정리할 예정 참고1) https://www.udemy.com/course/best-git-github/2) https://erikanes.tistory.com/354 [Git & Github] Git & Github 실무 활용 완벽 가이드유데미의 [한글자막] Git & Github 실무 활용 완벽 가이드를 보고 내용을 정리할 예정. 말머리는 [Git & Github]를 사용한다. Git의 핵심 주제 Git의 중요한 내용이지만 사용 빈도가 빈번하지 않은 것들 Giterikanes.tistory.com