실수로 API 같은 민감 정보가 올라간 경우, 혼자라면 조용히 해당 커밋을 삭제하면 되지만 협업을 하는 중이라면 관련된 사람들의 커밋도 모두 확인해야 한다. 계속해서 커밋 속에 해당 정보가 남아서 돌아다닐 수 있기 때문이다. 거기에 더해서 그럼 문제를 간과하고 다른 커밋들이 이어서 쌓인 경우 중간에 문제되는 부분을 잘라내듯이 처리해야 한다. 커밋이 1 - 2 - 3 - 4 - 5 - 6 - 7 로 진행해야하는데 3번 4번 5번이 문제가 된 경우를 예로 들 수 있다. 일단 깃 배쉬를 열어서 git log 부터 확인해야 한다. HEAD로 표시된 것이 가장 최근 커밋이다. 가장 최근 커밋이 아닌 중간에 문제가 된 커밋을 날려야하기 때문에 commit 다음에 오는 커밋 아이디를 확인해줘야 한다. git rese..
이클립스에서 생성한 프로젝트를 깃허브에 업로드하려고 할 때, 혹시나 프로젝트명으로 폴더가 생성된다면 다음과 같은 방법으로 업로드를 진행해보도록 하자. 1. Window > Show View > Other > Git Repositories 추가해준다 2. Create a new local Git repository 3. Git repository 에 업로드할 프로젝트 폴더 선택 경로를 프로젝트가 생성되어 있는 폴더로 선택해준다. 4. 폴더 선택 후 Create 프로젝트에 local Git repository가 생성되고 > 화살표가 생긴 것을 확인할 수 있다. 연동 후 프로젝트의 내용이 수정되어 github에 업로드 된 내용과 다를 경우 화살표가 나타난다. 5. 해당 프로젝트 우클릭 > Team > Add ..
stash ? 아직 커밋하기엔 이른 경우나 다른 브랜치로 체크아웃해야 할 경우, 변경사항을 유지하고 싶을 때 사용한다. 비슷한 기능으로 WIP가 있지만, 원격 저장소에 커밋이 쌓이기 때문에 커밋이 다소 지저분해 보일 수 있다. 1. 로컬 저장소의 수정사항을 임시 저장 공간에 저장 git stash git stash save -m "stash message" 둘 중 아무거나 사용해도 무방하지만 메세지를 남겨두는 것이 나중에 확인할 때 편하다. 2. 원격 저장소 pull git pull origin [브랜치명] 3. stash 가져오기 git stash apply
로컬에서 커밋 내용 수정하기 git commit --amend -m '수정 내용' # 작은 따옴표를 사용해야 한다 아직 원격 저장소에 push를 하지 않았다면 로컬에서 수정만 하면 된다. Git 원격 저장소의 커밋 내용 수정하기 push를 한 뒤 커밋을 수정하고 싶을 때가 문제다. 로컬에서 --amend를 사용해서 커밋 내용을 먼저 수정해준다. git push --force origin 강제로 커밋 내용을 반영하는 작업을 해준다. !!주의!! 강제 push.는 원격 저장소에 이미 존재하는 커밋을 덮어쓰는 작업이기 때문에 조심해야 한다. 만약 협업하는 다른 개발자들이 이미 변경 사항을 기반으로 작업을 진행한 경우 충돌을 일으킬 수 있다. 왠만하면 원격 저장소에 push 하기 전에 두번 세번 확인하는 습관을..
처음 로컬에 원본 저장소를 등록하고 진행하는 것부터 알아보자. 1.로컬에 원본 저장소 추가 $ git remote add upstream 2. 원본 저장소 데이터 가져오기 $ git fetch upstream 3. develop 브랜치 가져오기 $ git checkout -b develop upstream/develop 4. 로컬의 main 브랜치로 이동 $ git checkout main 5. 원본 저장소의 develop 브랜치를 main 브랜치에 병합 $ git merge develop 6. 작업하던 도중 원본 저장소의 내용이 변경되었을 경우 $ git pull upstream develop pull을 하게 될 경우, 본인이 하던 작업 내용이 원본 저장소의 내용과 충돌이 일어날 수 있다. 그럴 때는 ..
⚝ Fork Workflow 팀장의 저장소를 Fork 해서 팀원마다 각자 저장소를 가지고 프로젝트를 진행하는 방식이다. 팀원은 각자의 저장소를 가지고 있기 때문에 자유롭게 작업이 가능하다. 팀원의 작업 내용은 Pull requests 를 통해 팀장의 확인 후 반영된다. 팀장 저장소의 권한은 팀장만 가지고 있으면서 다른 사람의 커밋을 프로젝트에 적용이 가능하다. 팀장이 코드를 확인하고 Merge 하기 때문에 안전하게 협업이 가능하다. 오픈소스 프로젝트에서 많이 사용하는 방식이다. ⚝ 협업하는 방법 1. 팀장 - 저장소를 만들고 프로젝트를 설정 Github 레파지토리 생성한다. 로컬에 초기 작업 환경을 설정한다. (프로젝트 생성) # 레파지토리 연동 $ git remote add origin $ git br..