본문 바로가기

Programming/Git

(14)
Git flow 전략 도입기 2024-04-06 ~ 2024-05-21 까지 SSAFY에서 진행했던 숨구멍 프로젝트에서 Git flow 전략을 도입했던 기록을 남기고자 합니다! 우선 Jira를 이용해 1주일간격으로 스프린트를 관리하고 프로젝트를 진행했습니다!Jira Convention에픽[BE][FE][INFRA]스토리[BE] api명세서 브랜치 전략 - git flowmaindevelopfrontend{이슈번호}_{내용}ex) feat/#{이슈번호}-내용backend{이슈번호}_{내용}ex) feat/#{이슈번호}-내용Git flow를 적용하기에 앞서 Git 컨벤션을 정할 때 우리는 우아한 기술블로그를 참조해 (https://techblog.woowahan.com/2553/ ) 아래와 같은 약속을 했습니다. 작업을 시작하기 전에 ..
[Git] git pull 충돌 에러 (Your local changes to the following files would be overwritten by merge) 프로젝트 진행중에 Git pull로 변경사항을 먼저 가져온 후에 push 하기 위해 pull 명령어를 실행했을 때 충돌 에러가 났다. remote 소스와 로컬 소스 사이에 충돌이 일어났을때 발생하는 오류이다. 해결 방법은 ``` Please commit your changes or stash them before you merge. ``` 에 있다. merge 전에 commit 또는 stash를 하라는 뜻이다. Stash 명령어는 "로컬 변경 사항을 임시 저장 해두는 명령어" 이다. git stash 를 통해 내가 수정한 내용은 스택에 임시저장 git pull origin 로 git 최신 소스 다운 ( origin 브랜치(remote)의 내용을 main브랜치로 가져온다) git stash pop 으로 변..
Git 협업하기(push, pull, revert, fetch) 1. Git push 전에 Git pull을 해야하는 경우가 많은 경우 우선 premium branch에서 License파일을 수정하고 커밋한다. 이제 리모트 레포지토리(Github)의 premium branch를 들어가 License를 바꿔준다. 로컬 레포지토리와 리모트 레포지토리가 서로 가리키는 내용이 다르다 한 프로그램을 각각 다른 개발자가 각기 다른 방식으로 개발한 것이다. 협업할 때 굉장히 자주 일어나는데, 내가 개발하는 동안 다른 개발자가 로컬 레포지토리에서 개발후에, git push를 해서 내 premium 브랜치와는 다른 코드를 보인다. 이 상황에서 git push를 하면? 당연히 안된다! 다른 개발자가 열심히 개발한 내용을 덮어 써서 아예 지워버릴 수 있기 때문에 해결법 1.git pul..
Git Branch 다루기 (생성, merge, conflict, remote repository) branch란, 하나의 코드 관리 흐름을 말한다. git status를 하면 "On branch main" : main branch 위에 있다는 말인데, main 브랜치는 레포지토리를 만들고 커밋을 하면 자동으로 생기는 브랜치이다. 다른 브랜치를 만들어보자 유료버전 개발을 위한 premium 브랜치를 만들어보자 "git branch premium" 으로 premium 브랜치를 만들어주고 "git checkout premium" 으로 해당 브랜치로 이동해준다. 이제 작업을 하면 premium 브랜치에만 반영된다. 이제 내 커밋들은 main 브랜치와는 다른 작업이 된다. License 파일을 바꾸고 커밋해보자 premium 브랜치 위에있을때 License 파일을 출력해보면 PREMIUM이라고 뜬다. main..
Git commit 다루기(히스토리, 수정, 생성, reset) 1. 커밋 히스토리 살펴보기 - git log 오래된 커밋일수록 아래에 있다 노란색 commit 19f1c8a913119fa49ef50d8b45466 은 커밋 아이디와 같다. Git이 commit을 서로 구분하기 위해 부여한다. (=커밋 해시) 커밋 히스토리를 더 깔끔하게 보려면 git log --pretty==oneline commit 하나에 대해 어떤 일이 있었는지 알고싶다면 git show 커밋아이디 (앞에 한 4-5자리정도 쳐주면 알아서 인식한다!) -m 옵션 없이 커밋 메시지 남기기 classification.py에 def coding() 을 추가해주고, git add . 해주고 git commit 을 메시지 없이 쳐준다면 위와 같은 창이 뜬다. 말인 즉슨, 커밋 메시지를 입력해주세요. #으로 ..
Github 사용법(local 레포지토리 github에 올리기, remote, fork) 내 컴퓨터의 레포지토리 : Local Repository 깃허브의 레포지토리: Remote Repository Local Repository를 Github에 그대로 올리는 법 이 중 이 부분은 로컬 레포지토리를 만들고 커밋을 한 후에 깃허브에 업로드 하는 것이고, 이 부분이 이미 만든 로컬 레포지토리를 깃허브에 업로드하는 것이다. 3줄을 치면 아이디와 password를 입력하라고 나오는데, 비밀번호로는 2021년 8월 13일부터 개인 토큰을 발급받아 사용해야한다. 1. 프로필 사진 > Settings > Developer Settings 2. Personal access tokens > generate new token 버튼 클릭 > Select Scopes 에서 repo 체크 3. Generate to..
Git이 보는 파일의 4가지 상태 Git의 "작업 영역"은 3가지가 있었다. 작업 영역과 관련해서 한 가지 더 알아두면 좋은 내용이 있는데 그건 바로 Git으로 관리되는 파일은 일종의 '상태(status)'라는 걸 가진다는 사실이다. 일단 Git에서 파일들은 크게 다음 2가지 상태를 가진다. Untracked 상태 Tracked 상태 그리고 Tracked 상태는 다시 아래와 같은 3가지 상태로 나눌 수 있다 Staged 상태 Unmodified 상태 Modified 상태 1. Untracked 상태 Untracked는 '추적되지 않고 있는'이라는 뜻이다. 파일을 새로 생성하고 그 파일을 한 번도 git add 해주지 않았다면 이 상태입니다 그래서 이 상태는 파일이 Git에 의해서 그 변동사항이 전혀 추적되고 있지 않는 상태를 뜻한다. 2..
git add 활용하기 mkdir meeting-log // meeting-log 폴더 생성 cd meeting-log touch day1 // day1 파일 생성 touch day2 // day2 파일 생성 cd .. //상위 폴더 이동 git add meeting-log/ //폴더 전체 git add git status // git 현재 상태확인 staging area에 잘 올라가 있다. 한번에 git add하려면 어떻게 해야할까? classification.py, License 파일 모두 주석을 달아 변경점을 만들고, 확인해보면 위와 같이 staging area에 올라가지 못한 내용이 2개 발생했다. git add . : git이 관리하는 파일에 대한 모든 변경점을 staging area에 올린다. Git add 취소하기..