본문 바로가기

Git15

git stash git stash에 대해 알아보기 이전 참고 글을 통해 몇 가지 지식을 얻었다. commit의 단위 commit의 단위에 대한 나만의 기준이 없었다. 오늘 분량을 끝내서 commit을 하거나, 로컬의 변경사항이 급하게 적용되어야 하는 경우 main branch에 병합하기 위해 사용했던 것 같다. git의 Commit의 기준을 논리적 단위라고 했을 때 이 논리적 단위의 자세한 내막은 어떻게 될까? 변경 사항이 특정 작업이나 기능과 관련된 경우, 새로운 작업 및 기능이 추가된 경우 해당 작업이나 기능에 대한 사항을 하나의 commit으로 묶을 수 있습니다. 즉 프로젝트의 기능 단위로 변경사항을 구성하고, 의미 있는 작업 단위로 버전 관리를 할 수 있도록 구성하는 것입니다. 이 기준은 개발팀이 정할 수 있습니.. 2023. 7. 3.
git commit 되돌리기 Git에서 코드를 수정하고 커밋하여 push 하는 일반적인 절차는 다음과 같습니다: 1. 저장소 복제(Clone): 원격 저장소를 로컬로 복제합니다. 아래 명령어를 사용합니다: git clone 2. 수정: 로컬에서 코드를 수정합니다. 원하는 변경사항을 작성합니다. 3. 변경 내용 확인: 변경된 파일들의 상태를 확인하기 위해 아래 명령어를 사용합니다: git status 4. 스테이징: 수정한 파일들을 스테이징 영역에 추가합니다. 아래 명령어를 사용합니다: git add # 특정 파일 추가 git add . # 모든 수정된 파일 추가 5. 커밋: 스테이징 영역에 추가된 파일들을 커밋합니다. 아래 명령어를 사용합니다: git commit -m "커밋 메시지" 6. 푸시(Push): 커밋한 변경사항을 원격 .. 2023. 7. 3.
브랜치 .Refactoring 리팩터링 책을 읽다가 버전 관리 시스템을 통한 작업 방식에 대해 고심하여 쓴 부분이 있어서 발췌한다. 깃에 대한 지식이 부족해 이해하기가 매우 어려워 중간중간 여러 블로그를 보면서 이해하려고 했다. 흔히 볼 수 있는 팀 단위 작업 방식은 버전 관리 시스템을 사용하여 팀원마다 브랜치를 하나씩 맡아서 작업하다가, 결과물이 어느 정도 쌓이면 마스터 브랜치에 통합해서 다른 팀원과 공유하는 것이다. 그런데 이렇게 하면 어떤 기능 전체를 한 브랜치에만 구현해놓고, 프로덕션 버전으로 릴리스 할 때가 돼서야 마스터에 통합하는 경우가 많다. 이 방식의 장점은 작업이 끝나지 않은 코드가 마스터에 섞이지 않고, 기능이 추가될 때마다 버전을 명확히 나눌 수 있고, 문제가 생기면 이전 상태로 쉽게 되돌릴 수 있다. 하지만 단점.. 2022. 8. 14.
Git Branch(4) Rebase Git에서 브랜치를 합치는 방법은 Merge와 Rebase가 있다. Rebase가 뭔지는 두 사진을 보면 좀 더 감을 잡기가 쉽다. merge 명령을 사용했을 때는 두 브랜치의 마지막 커밋 두 개 c3, c4와 공통조상인 c2를 사용해 만들어 내지만 rebase를 사용했을 땐 c3에서 변경된 사항을 patch로 만들고 이를 다시 c4에 적응시키는 방법이 있다. 위 사진은 git checkout experiment; git rebase master이다. 즉 fast-forward를 적용시키는 것이다. Rebase는 보통 리모트 브랜치에 커밋을 깔끔하게 적용하고 싶을 때 사용한다. 아마 이렇게 Rebase 하는 리모트 브랜치는 직접 관리하는 것이 아니라 그냥 참여하는 브랜치일 것이다. 메인 프로.. 2021. 2. 11.
Git Branch(3) 브랜치 관리 이제 브랜치를 관리하는데 필요한 명령어를 공부한다. git branch 명령은 단순히 브랜치를 만들고, 삭제하는데만 사용되지는 않는다. 옵션 없이 사용되면 브랜치의 목록을 보여주고 * 표시는 현재 checkout 해서 작업하는 브랜치가 나온다. 검색 필터도 존재하는데 현재 브랜치에 Merge하지 않은 브랜치를 살펴보려면 --no-merged 옵션을 추가하면 된다. 만약 특정 브랜치 기준으로 Merge되거나 No-Merge 된 브랜치의 정보를 보려면 명령에 브랜치 이름을 추가해주면 된다. 장기간에 걸쳐서 한 브랜치를 다른 브랜치와 여러번 Merge 하기 쉽다는 점이 개발 과정에서 필요한 용도에 따라 브랜치를 만들어 두고 계속 사용할 수 있다. 이런 방법 중 개발자가 많이 선호하는 워크플로가 하.. 2021. 2. 11.
Git Branch(2) 브랜치와 Merge의 기초 작업하는 프로젝트에서 이전 master 브랜치에 커밋을 몇 번 했다고 가정하고, 이슈가 발생해 30번 이슈를 처리하는데 집중하기 위한 브랜치를 하나 만든다. 이때 브랜치를 만들면서 브랜치를 옮기려면 다음과 같은 옵션을 추가한다. git branch -b issue30 뭔가 커밋하면 브랜치는 해당 브랜치는 앞으로 나아간다. 다음 로그를 보면 issue30브랜치는 앞으로 나아갔고 master브랜치는 가만히 있고 testing브랜치는 갈라졌다. testing 브랜치에서 새로운파일을 추가한 상태로 master브랜치와 합치려고 한다. master브랜치에 들어가 testing과 merge 해보자 Fast-forward라는 글자가 보이는가? 이 testing 브랜치가 가리키는 커밋이 마스터.. 2021. 2. 11.
Git Branch 모든 버전 관리 시스템은 브랜치를 지원한다고 한다. 개발을 하다 보면 코드를 복사해야 하는 일이 자주 생긴다. 코드를 아니 프로젝트를 통으로 복사하고 나서 원래 기획된 프로젝트 외에 기술을 따로 붙여서 진행할 수도 있는데, 이렇게 독립적으로 개발을 할 수 있는 것이 브랜치이다. 왜 사람들은 git의 브랜치가 최고의 장점이라고 하는 것인지 다른 버전 관리 시스템과 git의 차이라고 하는지 알아보자. 브랜치란 무엇인가? git이 브랜치를 다루는 과정을 이해하기 위해선 git이 데이터를 어떻게 저장하는지 알아야 한다. 앞에서 git이 파일 시스템의 스냅샷으로 기록한다고 말했다. commit을 하면 git은 현 Staging Area에 있는 데이터의 스냅샷에 대한 포인터(c의 포인터라고 생각) , 메타데이터, .. 2021. 2. 11.
Git 기초 명령어(3) 이번에는 Remote Repository에 대해서 공부한다. 리모트 저장소를 관리할 줄 알아야 다른 사람과 함께 일할 수 있다. 원격 저장소는 네트워크 어딘가에 존재하는 저장소를 말한다. 간단히 다른 사람들과 함께 일한다는 것은 원격 저장소를 관리하면서 데이터를 PUSH AND PULL 한다는 것이다.(remote라고 이름이 붙어도 사실 저장소가 로컬에 존재할 수도 있다.) 리모트 저장소 확인하기 git remote 명령으로 현재 프로젝트에 등록된 리모트 저장소를 확인할 수 있다. 단축 이름을 보여준다. 보통 clone 하면 origin이라는 저장소가 자동 등록된다. -v옵션을 주면 저장소 URL을 함께 볼 수 있다. 리모트 저장소가 여러 개 있다면 이 명령은 등록된 전부를 보여준다. 저장소에는 push.. 2021. 2. 10.
Git 기초 명령어(2) Staged와 UnStaged 상태의 변경 내용을 확인하면서 시작한다. 단순히 파일이 변경됐다는 사실이 아니라 어떤 내용이 변경됐는지 살펴보려면 git status 명령이 아닌 git diff명령을 사용해야 한다. 이 명령은 워킹 디렉터리에 있는 것과 현재 버전 = Staging Area에 있는 것을 비교한다. 그래서 수정하고 아직 stage하지 않은 것과의 차이를 볼 수 있는 것이다. 만약에 커밋하려고 Staging Area에 넣은 파일 부분의 변경 부분을 보고 싶다면 --staged옵션을 사용한다. 커밋된 것과 Staging Area에 있는 것을 비교한다. git diff 명령은 마지막으로 커밋한 후에 수정한 것들을 전부 보여주지 않고 Unstaged 상태인 것들만 보여준다. 이 말은 즉 Stagin.. 2021. 2. 10.
Git 기초 명령어 여기서 가장 기초적인 명령어를 전부 알아본다. Git 저장소 만들기 1. 아직 버전 관리를 하지 않는 로컬 디렉터리를 하나 선택해서 git 디렉터리로 적용하는 방법. 2. 다른 어딘가에서 git 저장소를 clone 하는 방법 두 가지 방법 모두 알아본다. 1번은 우선 관리하고 싶은 프로젝트의 디렉터리로 이동해야 한다. 바탕화면에 git라는 폴더를 만들고 cmd창을 이동시켰다. 그리고 git init을 실행한다. 이 명령은. git이라는 하위 디렉터리를 만드는데 이 디렉터리는 저장소에 필요한 뼈대 파일이 들어 있다. git이 파일을 관리하게 하려면 저장소에 파일을 추가하고 커밋해야 한다. git add 명령으로 파일을 추가하고 git commit 명령으로 커밋한다. 이제 파일 버전 관리를 시작했다. 2번은.. 2021. 2. 10.