본문 바로가기

Dev/Git10

[GitHub] 10. 스태시하는 법 (stash) 만약 기능 브랜치(feature)에서 개발하던 중에 운영에 급하게 고쳐야 하는 버그가 생겼습니다. 다른 브랜치로 이동하려는데 현재 브랜치에 아직 commit하는 못한 파일들이 있고 당장에 commit하기 애매합니다. 이럴 때 잠시 다른 곳(스택)에 두었다가 다시 꺼낼 때 사용하는 것이 stash입니다. 1. stash 생성하는 법 stash는 git stash 명령어를 실행합니다. 그러면 작업 디렉터리가 깨끗해집니다. 제대로 실행됐는지 확인하려면 git stash list 명령어를 실행합니다. 2. stash 적용하는 법 다른 브랜치에서 작업이 완료한 후 했던 작업을 가져올 때는 git stash apply 명령어를 사용하면 가장 최근의 stash를 가져와 적용됩니다. 만약 stash 했을 때의 상태까지.. 2023. 9. 6.
[GitHub] 9. 포크하는 법 (fork) 포크는 다른 사람의 원본저장소를 가져와 내 계정의 원격저장소에 복사하는 것입니다. 기본적으로 원본저장소에 직접 커밋하고 푸시할 수 있는 사람의 원본저장소를 만든 본인과 소유자가 협력자로 등록한 사람들뿐입니다. 협력자가 원본저장소에 직접 푸시할 수 있기 때문에 협력자가 늘어날수록 원본저장소가 관리하기 힘듭니다. 이를 해결할 수 있는 방법이 풀 리퀘스트입니다. 개발자는 원본저장소에서 포크를 해서 원격저장소를 생성하고 커밋을 올린 후 원본저장소의 소유자에게 병합을 요청하면 (풀 리퀘스트) 소유자가 검토 후 원본저장소에 반영합니다. 원본저장소에 [Fork] 버튼을 클릭하면 포크 됩니다. 성공적으로 포크 한 원격저장소를 clone 해 지역저장소로 받아옵니다. git clone git remote -v 명령어 실행.. 2023. 9. 4.
[GitHub] 8. 태그하는 법 (tag) 프로그램을 출시하는 것을 릴리즈라고 합니다. 릴리즈에 맞춰 코드 상태에 버전을 붙이는데 이때 태그를 통해 표시를 할 수 있습니다. 특정 commit에 포스트잇을 붙인다고 생각하시면 됩니다. 1. 태그 조회하는 법 git tag 2. 태그 생성하는 법 태그에는 2가지 종류에는 Lightweight/Annotated가 있습니다. Lightweight는 단순히 특정 커밋을 가리키고 Annotated는 만든 사람, 이메일, 날짜, 메시지를 함께 저장합니다. 보통 Lightweight는 누가 만들었고 어떤 태그인지 알 수 없기 때문에 Annotated 태그를 사용하는 것이 좋습니다. 2-1) Lightweight 태그 생성하는 법 git tag 명령어를 실행하면 버전이 추가되고 그 내용을 원격저장소에 반영합니다... 2023. 9. 3.
[GitHub] 7. 풀 리퀘스트하는 법 (+ fetch, pull) 브랜치에 병합 중 충돌이 났고, 충돌을 해결한 후 무작정 병합하기보다 확인하는 과정이 있다면 좀 더 안정적일 겁니다. 이러한 과정을 위해서는 풀 리퀘스트가 필요합니다. 풀 리퀘스트는 협력자에게 브랜치 병합을 요청하는 메시지를 보내는 것입니다. commit과 푸시를 한 다음 원격저장소가 있는 github에 가면 [Compare & pull request] 버튼을 나옵니다. 해당 버튼이 바로 풀 리퀘스트를 보낼 수 있는 버튼이고 최근에 푸시한 내역이 있을 경우에만 나옵니다. (만약 없다면 Pull requests 메뉴에서 New pull request 버튼을 누르면 됩니다.) 버튼 클릭 후 풀 리퀘스트에 대한 내용을 작성합니다. base : 병합된 커밋이 들어갈 브랜치 compare : base에 반영시키고.. 2023. 9. 3.
[GitHub] 6. commit 이력 조작하는 법 (cherry-pick, reset, revert) 1. git cherry-pick : 다른 작업 브랜치의 commit을 작업 브랜치에 추가 git cherry-pick cherry-pick은 commit을 생성한 후 현재 작업 브랜치가 잘못됐다는 것을 발견했을 때, 운영에서 에러가 났는데 해당 문제를 해결할 수 있는 코드가 다른 브랜치에 있을 경우 해당 commit을 가져올 때 등 사용합니다. ** 만약 cherry-pick 과정 중 충돌이 날 경우 충돌이 난 파일을 수정합니다. 완료된다면 해당 명령어들을 실행해 작업을 완료하면 됩니다. git add . git cherry-pick --continue 충돌이 나서 해당 작업을 중단한다면 해당 명령어를 실행합니다. git cherry-pick --abort 2. git reset : 이미 생성된 com.. 2023. 8. 31.
[GitHub] 5. 브랜치 생성, 삭제, 병합하는 법 (branch, merge) 하나의 프로젝트를 기반으로 어떤 개발자는 새로운 기능을 개발하고, 어떤 개발자는 운영에 버그를 수정할 수 있습니다. 동일한 프로젝트를 기반으로 서로 다른 버전의 코드를 만들어 낼 수 있는데 이를 가능하게 하는 것이 바로 브랜치입니다. 즉, 브랜치는 프로젝트 기준 브랜치로부터 독립적인 작업 공간을 만들어 주는 기능입니다. 1. 브랜치 생성 먼저 지역저장소에서 새로운 브랜치를 생성하겠습니다. 기준이 되는 브랜치로 이동하고, 해당 브랜치로부터 새로운 브랜치를 생성해야 합니다. 먼저 기준이 되는 브랜치로 이동할 때는 git checkout 명령어를 실행해 작업 브랜치를 master 브랜치로 변경합니다. git checkout master git branch 명령어를 이용해 master 브랜치로 이동했는지 확인합.. 2023. 8. 23.
[GitHub] 4. 원격저장소 복제하는 법 (clone, pull) 하나의 프로젝트를 대상으로 여러 개발자가 협업하는 경우가 있습니다. 이미 생성된 원격저장소를 지역저장소에 git clone 명령어를 사용하여 복제합니다. git clone ** 지역저장소 이름을 작성하면 현재 디렉토리에서 지역자정소 이름의 폴더가 생성됩니다. 현재 디렉토리를 원격저장소을 복제할려면 git clone . 명령어을 실행하면 됩니다. ** 다른 개발자가 새로운 commit이 만들어서 원격저장소에 올라올 경우, 복제한 지역저장소에 갱신하기 위해서 git pull 명령어을 실행합니다. git pull origin master 2023. 8. 22.
[GitHub] 3. commit 생성, 조회, 수정, 푸시하는 법 ** commit을 생성하기 전에 각 버전을 누가 만들었는지 알기 위해 내 정보를 미리 등록합니다. git config --global user.email "이메일" git config --global user.name "이름" 1. commit 생성 파일을 수정 후 git add 명령어로 스테이징 영역에 등록했다면 commit을 생성할 차례입니다. commit 메시지를 간단하게 입력한다면 -m 옵션을 사용합니다. git commit -m "add .gitignore file" ** 만약 좀 더 자세하게 commit 메시지를 작성한다면 git commit 명령어를 실행합니다. 실행하면 현재 commit을 기록하는 브랜치, 어떤 파일에 commit이 추가되는지 알 수 있습니다. 키보드 i를 입력하면 입력모.. 2023. 8. 22.
[GitHub] 2. git 작업 트리란? git에서 작업 흐름은 크게 2가지 흐름을 가지고 있습니다. 1. 지역저장소 → 원격저장소 (github) git init 명령어로 지역저장소로 지정 → 파일을 수정 → git add 명령어로 수정된 파일을 스테이징 영역으로 옮김 → git commit 명령어로 지역저장소에 저장 git push 명령어로 원격저장소에 반영 2. 원격저장소 (github) → 지역 저장소 git clone 명령어로 프로젝트 전체를 지역저장소에 내려받음 git pull 명령어로 일부 변경 사항만 내려받음 ** git init 명령어로 지역저장소를 지정하면 해당 폴더에 .git 숨김 폴더가 생성됩니다. 해당 폴더에는 파일, 브랜치, 설정 정보 등이 담겨있습니다. 만약 지역저장소를 관리하고 싶지 않다면 .git 폴더를 삭제하면 .. 2023. 8. 14.
[GitHub] 1. git을 왜 사용하는가? (+ 원격저장소, 지역저장소 생성) 개발 업무에서 git은 떼려야 뗄 수 없는 존재입니다. 그렇지만 처음 개발 업무를 시작하면 잘못해서 '망치면 어떡하지' 라는 막연한 두려움을 느낄 수도 있습니다. 그러한 두려움을 없애기 위해서는 git에 대해 공부를 하고 또 연습하고 계속 사용하다 보면 '별 게 아니구나' 하는 순간이 생길 겁니다. (저도 아직 익숙하지 않지만 그렇게 되기 위해서 이렇게 글을 쓰고 기록하는 것처럼요ㅎㅎ) git을 왜 사용할까요? 물론 반드시 git을 사용해야 하는 건 아닙니다. 정확하게는 버전 관리 시스템을 사용해야죠. 버전 관리 시스템, 즉 git을 사용하면 이점이 있습니다. 1. 누가, 언제, 어떤 파일을, 어떻게 수정했는지 변경 이력을 기록할 수 있다. 2. 소스 코드, 변경 이력을 분산 저장할 수 있어 원격 저장소.. 2023. 8. 11.