구매후기

홈 : 고객센터 : 구매후기

[codeit] Git으로 배우는 버전 관리

페이지 정보

작성자 Cherry 댓글 0건 조회 2회 작성일 25-04-07 02:53

본문

*코드잇 Sublime Merge 사용법 다운 강의내용 기록용 필기입니다.​​토픽 1 Git​Git 시작하기​01. Git이란?버전관리의 장점1) 지난 과정 확인 가능2) 이전 버전으로 돌아갈 수 있음​02. Git의 역사This comment has been hidden. Sign in to view This comment has been hidden. Sign in to view This comment has been hidden. Sign in to view This comment has been hidden. Sign in to view This comment has been hidden. Sign in to view This comment was marked as off-topic. Sign in to view This comment was...​03. GitHub란?Git- 버전 관리- 동시 협업- 다른 컴퓨터에 작업물 보내기 -&gtGitHub (원격 저장소)​04. Git 설치하기(Mac 사용자)​05. Git 설치하기(Windows 사용자)​06. Sublime Text 설치하기(Mac 사용자)​07. Sublime Text 설치하기(Windows 사용자)​08. Git 시작하기 퀴즈​​Git 써보기​01. repository와 commit- repository: 저장소 (버전별 프로젝트디렉토리가 저장된다) 커밋이 저장되는 곳- commit: 프로젝트 디렉토리의 특정 모습을 하나의 버전으로 남기는 행위 &amp결과물 커밋하면 해당 버전의 프로젝트디렉토리가 레포지토리에 저장된다.​02. repository 만들기​03. 첫 commit 해보기- 커밋하기 전 커밋하는 사람이 누구인지 git에게 알려줘야 하고, git은 이것을 강제하고있다.- 커밋에 필요한 것: 이름, 이메일(처음 커밋 시) 커밋 메시지(커밋에 대한 정보 옵션 -m)- untracked --&gt깃에 의해 아직 추적되지 않고 있다. 버전 관리의 대상이 아니다.- add --&gt커밋할 파일을 미리 지정해줘야 함, 수정된 파일의 모습이 커밋에 포함될 것이라 지정하는 것04. calculator.py 파일에 작성했던 코드​05. Git의 3가지 작업 영역- working directory (working tree) 작업을 하는 프로젝트 디렉토리- staging area (index) git add를 한 파일들이 존재하는 영역. 커밋을 하게되면 staging area 에 있는 파일들만 커밋에 반영됨- repository working directory의 변경 이력들이 저장되어 있는 영역. 커밋들이 저장되는 영역​working directory에서 뭔가 작업을 하고, 작업한 파일들을 git add 해주고,커밋을 하면 staging area에 있던 파일들의 모습이 마치 영화의 한 장면, 스냅샷처럼 repository에 저장된다.​06. Git 써보기 퀴즈 Ⅰ​07. git add 더 자세히 알아보기- status: 깃이 인식하고 있는 프로젝트 디렉토리의 현재 상태를 보여줌- 디렉토리를 만들고 git add 하면 디렉토리 안의 파일도 같이 add 된다- 변경사항이 있는 모든 파일을 한번에 add​08. Git이 보는 파일의 4가지 상태Git 에서 파일들은 크게 다음 2가지 상태를 가진다 - Untracked 상태 git에 의해 변동사항이 추적되지 않고 있는 상태 - Tracked 상태 git에 의해 변동사항이 추적되고 있는 상태. Tracked 상태는 다시 아래와 같은 3가지 상태로 나눌 수 있다. - Staged 상태 파일의 내용이 수정되고 나서 staging area 에 올라와있는 상태. - Unmodified 상태 현재 파일의 내용이 최신 커밋의 모습과 비교했을 때 전혀 바뀐 게 없는 상태 - Modified 상태 최신 커밋의 모습과 비교했을 때 조금이라도 바뀐 내용이 있는 상태​09. git add 취소하기git add: staging area에 파일 추가git reset: staging area에서 파일 제거 (변경된 새 모습은 working directory에 남아있음)​10. 특정 git 커맨드의 사용법을 알고 싶다면?git help [알고 싶은 커맨드의 이름]orman git-[알고 싶은 커맨드의 이름]​11. Git 써보기 퀴즈 Ⅱ​12 Git 써보기 정리 노트- Sublime Merge 사용법 다운 git init : 현재 디렉토리를 Git이 관리하는 프로젝트 디렉토리(=working directory)로 설정하고 그 안에 레포지토리(.git 디렉토리) 생성- git config user.name 'codeit': 현재 사용자의 아이디를 'codeit'으로 설정(커밋할 때 필요한 정보)- git add [파일 이름] : 수정사항이 있는 특정 파일을 staging area에 올리기- git add [디렉토리명] : 해당 디렉토리 내에서 수정사항이 있는 모든 파일들을 staging area에 올리기 - git add . : working directory 내의 수정사항이 있는 모든 파일들을 staging area에 올리기- git reset [파일 이름] : staging area에 올렸던 파일 다시 내리기- git status : Git이 현재 인식하고 있는 프로젝트 관련 내용들 출력(문제 상황이 발생했을 때 현재 상태를 파악하기 위해 활용하면 좋음) - git commit -m 커밋 메시지&quot: 현재 staging area에 있는 것들 커밋으로 남기기- git help [커맨드 이름] : 사용법이 궁금한 Git 커맨드의 공식 메뉴얼 내용 출력앞으로 각 챕터에서 새롭게 배운 커맨드들은 이렇게 정리하고 넘어가겠습니다.​GitHub 시작하기​01. GitHub 계정과 Remote Repository 만들기02. Local Repository의 내용을 Remote Repository 로 보내기03. Local Repository에서 바뀐 내용을 Remote Repository에도 반영하기- git push: 밀다, 밀어넣다. 로컬 레포지토리 내용 → 리모트 레포지토리에 반영- Github에서는 파일 이름이 README일 경우 내용을 바로 보여준다.04. Remote Repository에서 바뀐 내용을 Local Repository에도 반영하기- git pull: 리모트 레포지토리의 새로운 내용 → 로컬 레포지토리 05. GitHub 퀴즈 Ⅰ​06. 아무나 git push를 할 수 있는 건 아닙니다07. 다른 프로젝트 가져오기- git clone: 복제하다, 깃허브 프로젝트의 레포지토리를 그대로 복제08. 오픈 소스 프로젝트란?- 오픈 소스 라이센스 종류본문 바로가기 주 메뉴 바로가기 OLIS 오픈소스SW 라이선스 종합정보시스템 검색 로그인 회원가입 ENGLISH 주메뉴 라이선스 프로젝트 상담/컨설팅 검사도구 라이브러리 고객센터 전체보기 라이선스 라이선스 소개 라이선스 분류 라이선스 가이드 REUSE 라이선스 분쟁 대응방안 가이드 라이선스 FAQ 라이선스 비교표 라이선스 배포시 주의사항 OSS라이선스 상담하기 라이선스 라이선스 비교표 라이선스 비교표 라이선스 주요내용 각 라이선스별 허용 권한 표기, 라이선스 바로가기 링크 제공 라이선스 이름 복제, 배포, 수정의 권한허용 배포시 라...09. README.md를 더 예쁘게- 마크다운10. GitHub 퀴즈 Ⅱ​11. GitHub 시작하기 정리 노트git push -u origin master : 로컬 레포지토리의 내용을 처음으로 리모트 레포지토리에 올릴 때 사용git push : 로컬 레포지토리의 내용을 리모트 레포지토리에 보내기 git pull : 리모트 레포지토리의 내용을 로컬 레포지토리로 가져오기git clone [프로젝트의 GitHub 상 주소] : GitHub에 있는 프로젝트를 내 컴퓨터로 가져오기​커밋 다루기​01. 커밋 히스토리 살펴보기git log: 기록, 일지지금까지 했던 커밋의 아이디(커밋 해시)도 보인다.커밋 히스토리 깔끔하게 보려면, git log --pretty=onelinegit show 커밋아이디의 앞부분(유니크한부분): 해당 커밋에서 어떤 변경이 있었는지 볼 수 있다.​02. m 옵션 없어도 커밋 메시지를 남길 수 있어요git commit 하면 vim 창이 된다. i를 눌러 입력모드로 전환 후 메시지 입력 → :wq 입력하여 저장 후 나가기git log 로 확인하면 커밋 메세지가 잘 남겨진 것을 확인할 수 있다.​03. 최신 커밋 수정하기코드 수정 후,git add .git commit Sublime Merge 사용법 다운 --amend: 수정하다, 고치다. 깃에서 최신 커밋을 수정할 때 쓴다.명령어를 실행하면 커밋메시지 vim 창이 뜬다.커밋 메시지를 수정하려면 마찬가지로 i 눌러서 insert모드로 변경 후 메시지를 수정한 후, :wq로 저장 후 나오면 된다.git log로 확인해보면 커밋 ID가 바뀐 것을 확인할 수 있다.--amend 옵션은 최신 커밋을 수정해서 다시 새로운 커밋으로 만든다.​04. 커밋 생성, 커밋 메시지 작성 가이드라인​;(1) 커밋 메시지의 제목과 상세 설명 사이에는 한 줄 비워두기English ▾ Topics ▾ Version 2.34.1 ▾ git-commit last updated in 2.34.1 NAME git-commit - Record changes to the repository SYNOPSIS git commit [-a | --interactive | --patch] [-s] [-v] [-u;)] [-F <fi...(2) 커밋 메시지의 제목 뒤에 온점(.) 붙이지 말기(3) 커밋 메시지의 제목의 첫 번째 알파벳은 대문자로 작성(4) 커밋 메시지의 제목은 명령조로 작성.(Fix it (O), Fixed it (X), Fixes it (X))(5) 커밋의 상세 내용에는 이런 걸 적으면 좋다. - 왜 커밋을 했는지 - 어떤 문제가 있었고 - 적용한 해결책이 어떤 효과를 가지는지(6) 다른 사람들이 자신의 코드를 바로 이해할 수 있다고 가정하지 말고 최대한 친절하게 작성​;(1) 하나의 커밋에는 하나의 수정사항, 하나의 이슈를 해결한 내용만 남기자.(2) 현재 프로젝트 디렉토리의 상태가 그 내부의 전체 코드를 실행했을 때 에러가 발생하지 않는 상태인 경우에만 커밋을 하자. ​05. 긴 커맨드에 alias 설정하기git config 사용하면 aliasing 가능이렇게 하면 git history 라고 쓰면 자동으로 git log --pretty=oneline을 실행하게 된다.​06. 두 커밋 간의 차이 보기git diff 이전커밋아이디 이후커밋아이디​07. 커밋 퀴즈 Ⅰ​08. HEAD의 의미HEAD: 어떤 커밋 하나를 가리킴. 보통 가장 최근에 한 커밋을 가리킴HEAD가 왜 필요할까?HEAD가 가리키는 커밋에 따라 working directory가 구성된다​09. 이전 커밋으로 git reset하기git reset 커맨드를 쓰면 HEAD를 원하는 커밋으로 옮길 수 있다.HEAD에 따라 working directory도 바뀐 것을 확인할 수 있다.git reset은 과거 커밋으로 아예 돌아가고 싶을 때 사용할 수 있다.​10. git reset의 옵션을 배우기 전에 확실히 알아야 할 부분(1) git reset 과 함께 쓸 수 있는 옵션: --hard, --soft, --mixed(2) staging area 에 있던 것들은 커밋을 하더라도 계속 남아 있다.​11. git reset의 3가지 옵션 Ⅰgit reset① HEAD가 과거의 특정 커밋을 가리키도록 한다. --soft② staging area를 과거의 특정 커밋의 내용과 똑같게 만든다. --mixed③ working directory 를 과거의 특정 커밋의 내용과 똑같이 만든다. --hard​12. git reset의 3가지 옵션 Ⅱcalculator.py 파일 수정git add .git satus ;HEAD가 옮겨지면서 staging area 의 README파일이 현재 커밋 버전의 파일과 달라지면서 git status가 보이게 됨staging area 에 있던 것들은 커밋을 하더라도 계속 남아 있다. 기억하기!​;staging area에 있던 최신 파일들이 reset 때문에 staging area에서 내려왔다.;커밋 이후로 working directory에서 했던 작업들이 다 날아가므로 조심해야 함​git pull 을 이용해서 reset했던 내용을 다시 복구할 수 있다.​13. HEAD를 기준으로 git reset하기git reset --hard HEAD^: 현재 HEAD가 가리키고 있는 커밋의 바로 이전 커밋으로 resetgit reset --hard HEAD~2​: 현재 HEAD가 가리키는 커밋보다 2단계 Sublime Merge 사용법 다운 전에 있는 커밋으로 reset​14. 커밋에 tag 달기커밋 중 다른 것들보다 더 중요한 의미가 있는 커밋에 태그를 추가적으로 단다.git tag [태그 이름][커밋 아이디]: 태그 달기git tag: 이 프로젝트 디렉토리에 있는 모든 태그 조회git show [태그이름]: 각 태그와 연결된 커밋 조회​15. 커밋 퀴즈 Ⅱ​16. 커밋 다루기 정리 노트​git log : 커밋 히스토리를 출력git log --pretty=oneline : --pretty 옵션을 사용하면 커밋 히스토리를 다양한 방식으로 출력할 수 있. --pretty 옵션에 oneline이라는 값을 주면 커밋 하나당 한 줄씩 출력해준다. --pretty 옵션에 대해 더 자세히 알고싶으면 아래 링크 참고 English ▾ Topics ▾ Version 2.34.1 ▾ pretty-formats last updated in 2.34.1 PRETTY FORMATS If the commit is a merge, and if the pretty-format is not oneline , email or raw , an additional line is inserted before the Author: line. This line begins with Merge: &quotand the hashes of ancestral commits ar...git show [커밋 아이디] : 특정 커밋에서 어떤 변경사항이 있었는지 확인git commit --amend : 최신 커밋을 다시 수정해서 새로운 커밋으로 만듦git config alias.[별명] [커맨드] : 길이가 긴 커맨드에 별명을 붙여서 이후로 별명으로 해당 커맨드를 실행할 수 있도록 설정git diff [커밋 A의 아이디] [커밋 B의 아이디] : 두 커밋 간의 차이 비교git reset [옵션] [커밋 아이디] : 옵션에 따라 하는 작업이 달라짐(옵션을 생략하면 --mixed 옵션이 적용됨) (1) HEAD가 특정 커밋을 가리키도록 이동시킴(--soft는 여기까지 수행)(2) staging area도 특정 커밋처럼 리셋(--mixed는 여기까지 수행)(3) working directory도 특정 커밋처럼 리셋(--hard는 여기까지 수행)그리고 이때 커밋 아이디 대신 HEAD의 위치를 기준으로 한 표기법(예 : HEAD^, HEAD~3)을 사용해도 됨git tag [태그 이름] [커밋 아이디] : 특정 커밋에 태그를 붙임​​브랜치 사용하기​01. 브랜치란?branch: 나뭇가지. 하나의 코드 관리 흐름브랜치 만들기: git branch ~만든 브랜치로 이동하기: git checkout ~​02. 브랜치 다뤄보기현재 리포지토리의 모든 브랜치 조회: git branch브랜치 삭제하기: git branch -d ~브랜치 만들고 바로 이동: git checkout -b ~​03. 브랜치 퀴즈 Ⅰ​04. 브랜치 merge하기git merge ~merge하면 머지 커밋이 생긴다​05. merge할 때 conflict가 날 수도 있어요!컴플릭트 해결 후conflict 해결 방법① 컨플릭트가 발생한 파일을 연다② 머지의 결과가 되었으면 하는 모습 대로 코드를 수정③ 커밋​06. conflict가 났을 때 merge 자체를 취소해도 됩니다git merge --abort​07. 여러 파일에서 conflict가 났을 때는?① 파일 하나씩 컨플릭트를 해결하고 git add [파일]로 하나씩 staging area에 올리거나 ② 모든 파일들의 conflict를 다 해결하고, git add . 로 한번에 staging area에 올리고③ 커밋​08. 브랜치 퀴즈 Ⅱ​09. Remote Repository의 브랜치는 이렇게 보입니다!​현재 로컬 레포지토리에 있는 master 브랜치의 내용(=master 브랜치와 관계된 모든 커밋들)을origin이라는 리모트 레포지토리로 보낸다는 뜻.이때 같은 이름의 브랜치로 전송하게 되는데, 만약 origin이라는 리모트 레포지토리에 master 브랜치가 없으면 master 브랜치를 새로 생성하고 푸시 옵션 -u: --set-upstream로컬 레포지토리에 있는 master 브랜치가 origin에 있는 master 브랜치를 tracking하는 것으로 설정됨tracking: 로컬 레포지토리의 한 브랜치가 Sublime Merge 사용법 다운 리모트 레포지토리의 한 브랜치와 연결되어 그것을 계속 바라보는 상태가 되는 것. 이렇게 맺어진 연결 상태를 tracking connection이라 한다.​만약 로컬 레포지토리에 A라는 브랜치가 있고, 리모트 레포지토리에 B라는 브랜치가 있을 때 이런 tracking connection이 서로 맺어진 경우, B 브랜치를 A 브랜치의 upstream branch라고 한다.지금은 구별하기 위해서 A와 B라고 표현했지만 보통은 같은 이름인 경우가 대부분이다.이렇게 tracking connection이 한번 설정되고 나면, 사용자가 현재 master 브랜치에 위치해있을 때,git push 라고만 써도 자동으로 리모트 레포지토리의 master 브랜치를 대상으로 git push가 동작하고,git pull 이라고만 써도 리모트 레포지토리의 master 브랜치를 대상으로 git pull이 동작한다.사실 --set-upstream(-u) 옵션을 주지 않아도 그 후에 git push와 git pull을 할 수 있기는 하지만 맨 처음에 이 옵션을 주지 않으면 tracking connection이 없기 때문에 나중에 git push를 하고 싶을 때git push origin master:master 이런 식으로 적어줘야 한다. 여기서 origin은 리모트 레포지토리를 나타내고,master:master에서 더 먼저 나오는 master는 로컬 레포지토리의 master 브랜치(~에서)/더 뒤에 나오는 master는 리모트 레포지토리의 master 브랜치(~으로)를 나타낸다.그러니까 그냥 처음부터 tracking connection을 설정하고 그 이후부터는 git push, git pull이라고만 써서 편하게 푸시와 풀을 하는 게 좋겠다. ​10. master 브랜치와 premium 브랜치 둘다 push 하기​11. HEAD와 브랜치의 관계12. git reset의 비밀git reset을 한다고 그 이후의 커밋이 사라지는 건 아니다.이전이나 이후의 커밋으로 리셋도 가능​13. git reset git checkout의 차이점(심화)git checkout : HEAD가 직접적으로 가리키는 것을 바꿀 수 있음git checkout 뒤에는 커밋 아이디 또는 브랜치 이름을 주어서,HEAD가 직접 커밋을 가리키거나(Detached HEAD) 브랜치를 가리키도록 할 수 있다.git resetgit checkoutHEAD가 가리키던 브랜치가 다른 커밋을 가리키도록 한다HEAD 자체가 다른 커밋이나 브랜치를 가리키도록 한다HEAD도 결국 간접적으로 다른 커밋을 가리키게되는 효과가 생긴다브랜치를 통하지 않고, 커밋을 직접적으로 가리키는 HEAD를 Detached HEAD라고 한다​14. 새로운 커밋을 만들지 않는 merge도 있습니다(심화)머지의 종류는 크게- Fast-forward 머지- 3-way 머지두 가지 종류가 있다.​15. 브랜치 퀴즈 Ⅲ​16. 브랜치 정리 노트git branch [새 브랜치 이름] : 새로운 브랜치를 생성git checkout -b [새 브랜치 이름] : 새로운 브랜치를 생성하고 그 브랜치로 바로 이동git branch -d [기존 브랜치 이름] : 브랜치 삭제git checkout [기존 브랜치 이름] : 그 브랜치로 이동git merge [기존 브랜치 이름] : 현재 브랜치에 다른 브랜치를 머지git merge --abort : 머지를 하다가 conflict가 발생했을 때, 일단은 머지 작업을 취소하고 이전 상태로 돌아감​Git 협업하기​01. 지금부터 배울 Git 실무 지식​02. git push 전에 git pull을 해야하는 경우가 많을 겁니다​03. git pull말고 git fetch도 있어요git fetch: 리모트 레포지토리에 있는 브랜치의 내용을 일단 가져와서 살펴본 후에 머지하고 싶을 때 사용혹은 리모트 레포지토리에 있는 브랜치의 내용과 내가 작성한 코드를 비교해서 잘못된 부분이 없는지 검토해야 할 때 사용git diff: 두 커밋 혹은 두 브랜치간의 차이 확인리모트 리포지토리의 브랜치에 문제가 있을 때 해결방법① 잘못된 코드를 추가한 개발자에게 함수를 지우고 다시 리모트 레포지토리에 올려달라고 하기② 잘못된 부분을 알아서 해결하고 다시 Sublime Merge 사용법 다운 git push 하기​04. 이 코드는 누가 작성했을까요?git blame [파일 이름]: 어떤 파일의 특정 코드를 누가 작성했는지 찾아내기 위한 커맨드​05. 이미 Remote Repository에 올라간 커밋을 취소해야 한다면?git revert [커밋 ID]: 되돌리다, 복귀하다해당 커밋에서 했던 작업을 되돌리고 커밋​06. 여러 커밋 취소하기git revert a..da는 포함안되고 b, c, d가 리버트 됨커밋은 하나씩하나씩 d->c->b 순서대로 됨 ​07. Git 실전 퀴즈 Ⅰ​08. Git 협업하기 정리노트git fetch : 로컬 레포지토리에서 현재 HEAD가 가리키는 브랜치의 업스트림(upstream) 브랜치로부터 최신 커밋들을 가져옴(가져오기만 한다는 점에서, 가져와서 머지까지 하는 git pull과는 차이가 있음)git blame : 특정 파일의 내용 한줄한줄이 어떤 커밋에 의해 생긴 것인지 출력 git revert : 특정 커밋에서 이루어진 작업을 되돌리는(취소하는) 커밋을 새로 생성​Git 자유자재로 활용하기​01. git reset을 하고 나서 돌아오려면?git reflog: reference log, 헤드가 이때까지 가리켜왔던 커밋들을 기록한 정보​02. 커밋 히스토리를 보는 다양한 방법--graph: 커밋 히스토리가 각 브랜치와의 관계가 잘 드러나도록 그래프 형식으로 출력​03. Git을 GUI 환경에서 사용할 수 있게 해주는 프로그램A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.Want to master the world of Bitbucket Cloud? This mission provides two tools to get you going: Bitbucket and Sourcetree.​04. Git 실전 퀴즈 Ⅱ​05. 깔끔한 커밋 히스토리를 원할 땐 git merge 대신 git rebasegit rebase [브랜치]git rebase --continue: 컨플릭트가 발생해서 제대로 진행되지 못한 리베이스를 계속 진행하라merge와 rebase 차이1. rebase는 새로운 커밋을 만들지 않는다.2. rebase로 만들어진 커밋 히스토리는 merge로 만들어진 커밋 히스토리보다 좀 더 깔끔mergerebase두 브랜치를 합쳤다는 정보가 커밋 히스토리에 꼭 남아야 하는 경우커밋 히스토리를 깔끔하게 유지하는 게 더 중요한 경우​06. 작업 내용 임시 저장하기어떤 브랜치에서 하던 작업을 아직 커밋하지 않았는데 다른 브랜치로 가야하는 상황.git stash: 안전한 곳에 보관하다, 넣어두다. working directory에서 작업하던 내용을 깃이 따로 보관여기서 보관하는 장소: stackgit stash를 하면 최근 커밋 이후로 작업했던 내용은 모두 스택에 옮겨지고,working directory 내부는 다시 최근 커밋의 상태로 초기화git stash apply: 스택에 있는 내용을 다시 working directory로 가져와서 적용​07. 잘못된 브랜치에서 작업하고 있었다면?git stash를 쓰는 또다른 상황: 잘못된 브랜치에서 작업하고 있었을 때1. git stash로 stack에 작업 내용을 저장한다2. 올바른 브랜치로 가서 다시 git stash apply 한다git stash drop 작업내용: 작업내용 지우기​08. 적용한 작업 내용은 스택에서 없애기1. 작업 내용 저장git stash 2. 작업 내용 조회(=스택 살펴보기)git stash list3. 작업 내용 적용 git stash apply [작업 내용의 아이디]* 작업 내용의 아이디를 생략하면 가장 최근의 작업 내용이 적용됨4. 작업 내용 제거git stash drop [작업 내용의 아이디]* 작업 내용의 아이디를 생략하면 가장 최근의 작업 내용이 제거됨 git stash apply를 쓰고 git stash drop을 바로 해주는 것처럼 번거롭게 할 필요없이, 작업 내용을 적용하면서 동시에 스택에서 제거도 해주는 커맨드: git stash pop [작업 내용의 아이디]이 커맨드를 쓰면 특정 작업 Sublime Merge 사용법 다운 내용을 적용함과 동시에 그것을 스택에서 제거함git stash pop 커맨드는[작업 내용의 아이디]를 인자로 주면, 특정 작업 내용을 적용하면서 스택에서 제거한다.[작업 내용의 아이디]를 인자로 주지 않으면, 가장 최근에 한 작업 내용을 적용하면서 스택에서 제거한다. 스택에 저장된 작업 내용을 working directory에 적용할 때, 그 작업 내용을 나중에 또 쓸 필요가 있다면 git stash apply를 나중에 또 쓸 필요가 없다면 git stash pop을 쓰면 된다.일반적으로는 후자의 경우가 더 많다.(개인적으로 복사와 잘라내기와 같은 느낌이다)​09. Git 실전 퀴즈 Ⅲ​10. 필요한 커밋만 가져오는 git cherry-pickgit cherry-pick: 자신이 원하는 작업이 들어있는 커밋들만 가져와서 현재 브랜치에 추가​11. 여러 커밋을 하나의 커밋으로 만들기(심화)git reset --soft​12. git이 무시하는 파일들.gitignore 파일은 working directory 내에 존재하는 파일들 중에서 마치 존재하지 않는 것처럼Git이 인식해야할 파일들의 목록이 적힌 파일​버전 관리를 할 정도의 가치가 없고, 오히려 버전 관리를 하면 용량만 더 차지하고,나중에 각 버전을 살펴볼 때 가독성을 떨어뜨리기만 하기 때문에 Git이 무시하도록 설정​13. Git 실전 퀴즈 Ⅳ​14. Git 토픽 내용 총정리git init : 현재 디렉토리를 Git이 관리하는 프로젝트 디렉토리(=working directory)로 설정하고 그 안에 레포지토리(.git 디렉토리) 생성git config user.name 'codeit': 현재 사용자의 아이디를 'codeit'으로 설정(커밋할 때 필요한 정보)git add [파일 이름] : 수정사항이 있는 특정 파일을 staging area에 올리기git add [디렉토리명] : 해당 디렉토리 내에서 수정사항이 있는 모든 파일들을 staging area에 올리기 git add . : working directory 내의 수정사항이 있는 모든 파일들을 staging area에 올리기git reset [파일 이름] : staging area에 올렸던 파일 다시 내리기git status : Git이 현재 인식하고 있는 프로젝트 관련 내용들 출력(문제 상황이 발생했을 때 현재 상태를 파악하기 위해 활용하면 좋음) git commit -m 커밋 메시지&quot: 현재 staging area에 있는 것들 커밋으로 남기기git help [커맨드 이름] : 사용법이 궁금한 Git 커맨드의 공식 메뉴얼 내용 출력git push -u(또는 --set-upstream) origin master : 로컬 레포지토리의 내용을 처음으로 리모트 레포지토리에 올릴 때 사용git push : 위의 커맨드를 한번 실행하고 난 후에는 git push라고만 쳐도 로컬 레포지토리의 내용을 리모트 레포지토리에 올릴 수 있음git pull : 바로 위의 위에 있는 커맨드를 한번 실행하고 난 후에는 git pull이라고만 쳐도 리모트 레포지토리의 내용을 로컬 레포지토리로 가져옴git clone [프로젝트의 GitHub 상 주소] : GitHub에 있는 프로젝트를 내 컴퓨터로 가져오기git log : 커밋 히스토리를 출력git log --pretty=oneline : --pretty 옵션을 사용하면 커밋 히스토리를 다양한 방식으로 출력할 수 있습니다. --pretty 옵션에 oneline이라는 값을 주면 커밋 하나당 한 줄씩 출력git show [커밋 아이디] : 특정 커밋에서 어떤 변경사항이 있었는지 확인git commit --amend : 최신 커밋을 다시 수정해서 새로운 커밋으로 만듦git config alias.[별명] [커맨드] : 길이가 긴 커맨드에 별명을 붙여서 이후로는 별명으로도 해당 커맨드를 실행할 수 있게 설정git diff [커밋 A의 아이디] [커밋 B의 아이디] : 두 커밋 간의 차이 비교git reset [옵션] [커밋 아이디] : 옵션에 Sublime Merge 사용법 다운 따라 하는 작업이 달라짐(옵션을 생략하면 --mixed 옵션이 적용됨) (1) HEAD가 특정 커밋을 가리키도록 이동시킴(--soft는 여기까지 수행)(2) staging area도 특정 커밋처럼 리셋(--mixed는 여기까지 수행)(3) working directory도 특정 커밋처럼 리셋(--hard는 여기까지 수행)그리고 이때 커밋 아이디 대신 HEAD의 위치를 기준으로 한 표기법(예 : HEAD^, HEAD~3)을 사용해도 됨git tag [태그 이름] [커밋 아이디] : 특정 커밋에 태그를 붙임git branch [새 브랜치 이름] : 새로운 브랜치를 생성git checkout -b [새 브랜치 이름] : 새로운 브랜치를 생성하고 그 브랜치로 바로 이동git branch -d [기존 브랜치 이름] : 브랜치 삭제git checkout [기존 브랜치 이름] : 그 브랜치로 이동git merge [기존 브랜치 이름] : 현재 브랜치에 다른 브랜치를 머지git merge --abort : 머지를 하다가 conflict가 발생했을 때, 일단은 머지 작업을 취소하고 이전 상태로 돌아감git fetch : 로컬 레포지토리에서 현재 HEAD가 가리키는 브랜치의 업스트림(upstream) 브랜치로부터 최신 커밋들을 가져옴(가져오기만 한다는 점에서, 가져와서 머지까지 하는 git pull과는 차이가 있음)git blame : 특정 파일의 내용 한줄한줄이 어떤 커밋에 의해 생긴 것인지 출력 git revert : 특정 커밋에서 이루어진 작업을 되돌리는(취소하는) 커밋을 새로 생성​git reflog : HEAD가 그동안 가리켜왔던 커밋들의 기록을 출력git log --all --graph : 모든 브랜치의 커밋 히스토리를, 커밋 간의 관계가 잘 드러나도록 그래프 형식으로 출력git rebase [브랜치 이름] : A, B 브랜치가 있는 상태에서 지금 HEAD가 A 브랜치를 가리킬 때, git rebase B를 실행하면 A, B 브랜치가 분기하는 시작점이 된 공통 커밋 이후로부터 존재하는 A 브랜치 상의 커밋들이 그대로 B 브랜치의 최신 커밋 이후로 이어붙여짐(git merge와 같은 효과를 가지지만 커밋 히스토리가 한 줄로 깔끔하게 된다는 차이점이 있음)git stash : 현재 작업 내용을 스택 영역에 저장git stash apply [커밋 아이디] : 스택 영역에 저장된 가장 최근의(혹은 특정) 작업 내용을 working directory에 적용git stash drop [커밋 아이디] : 스택 영역에 저장된 가장 최근의(혹은 특정) 작업 내용을 스택에서 삭제git stash pop [커밋 아이디] : 스택 영역에 저장된 가장 최근의(혹은 특정) 작업 내용을 working directory에 적용하면서 스택에서 삭제git cherry-pick [커밋 아이디] : 특정 커밋의 내용을 현재 커밋에 반영​! 그 밖에 알아야할 사실 (1) git commit이라고만 쓰고 실행하면 커밋 메시지를 입력할 수 있는 텍스트 에디터 창이 뜬다. 거기서 커밋 메시지를 입력하고 저장하고 나면 커밋이 이루어진다.(2) git push와 git pull은 그 작업 단위가 브랜치이다. 예를 들어, master 브랜치에서 git push를 하면 master 브랜치의 내용만 리모트 레포지토리의 master 브랜치로 전송되지, premium 브랜치의 내용이 전송되는 것은 아니다.(git push에 --all이라는 옵션을 주면 모든 브랜치의 내용을 전송할 수 있기는 하다.)​​

계좌안내
좋은 재료와 요리법
상품작업공정
고객센터 010.3289.9293