Development/Git 10

Git) 여러개의 Git 저장소 한번에 fetch / pull

Intro 사용하는 PC 가 여러개 (Linux, MacOS, ...) 있다 보니, 혼자서만 사용하는 Git Repository라고 해도 fetch 혹은 pull 을 꼬박꼬박 진행 해 주어야 합니다. 가끔씩 fetch / pull 을 까먹은 상태로 커밋을 하고 거기에 push -f로 강제 푸시라도 하는 날에는 기존에 작업했던 내용을 잃기도 합니다. 코딩을 하다가 자바의 특정 기능을 테스트 해보고 그걸 나중을 위해 기록으로 남겨두는 저장소 시간 날 때 알고리즘 문제를 풀어보는 저장소 새로움 배움이 있거나 기록할 게 있을 경우 추후 블로그 작성을 위해 메모해 두는 저장소 이 세 저장소는 특히 여러개의 PC에서 commit이 자주 일어나는데요. 특히 출/퇴근 후에는 혹시 모를 실수를 방지하기 위해 모든 저장소..

Development/Git 2022.05.27

Git) 이전 커밋에 덧붙이기 amend

Intro Commit을 하다 보면 적당한 크기로 커밋하는게 쉽지 않다는 걸 많이 느낍니다. 커밋 하나하나의 크기가 너무 작으면, 후에 커밋을 추적하기가 어렵고 커밋의 크기가 너무 크면 중간에 문제가 생기거나 실수를 했을때 돌아가야 할 지점이 너무나도 멀다는 문제가 있습니다. 커밋 하나에 잡다한 여러가지 연관성 없는 기능에 대한 코드가 함께 있어도 코드리뷰를 하는데 불편함을 초래 합니다. Commit 을 하고 보니 이게 빠졌네 이건 모두가 한번씩 있는 경험이 아니고 거의 몇일에 한번씩 혹은 커밋이 잦은 편인 저의 경우에는 거의 매일 겪는 일 입니다. 특히 간단한 오타 수정이 가장 흔한 상황 인데요. 그렇다고 오타를 수정 했는데 커밋을 안하고 다음 커밋까지 미루기도 곤란하고, 오타 하나만 달랑 수정하는데 ..

Development/Git 2022.01.14

Git) 실수로 삭제한 Branch 복구하기

Intro Pull Request를 기다리다가, merge가 되었다고 착각하고 커밋 했던 브랜치를 삭제해 버렸습니다.. 로컬과 remote 모두에서 삭제 했기 때문에 원래대로라면 데이터를 날려먹은게 맞지만, 다행히도 복구하는 방법이 있습니다. branch 생성 및 삭제 같은 상황을 만들기 위해 branch를 생성 해서 커밋 한 후 삭제 하겠습니다. 이미 branch가 삭제되어 복구가 필요한 분은 아래로 스크롤을 내려 삭제한 branch 복구 를 확인하시면 됩니다. branch 생성 및 commit & push dev 라는 branch를 만들어서, gitbranch.txt 파일을 추가해 commit 및 push 까지 마친 상태입니다. 이 상태에서는 dev에 커밋이 되었지만, 해당 사항이 master에 까지..

Development/Git 2022.01.12

원격저장소 추가 - git remote add

개요 add remote는 로컬 git 저장소에 원격 저장소를 추가 하는 명령입니다. 보통, git init 이후에 Github 이나 Gitlab의 원격 저장소를 추가하기 위해 사용하는 명령어 인데요, 이미 특정 원격 저장소와 연결이 되어 있을때, 해당 저장소와의 연결을 끊고 다른 저장소와 새로 연결을 하거나 혹은 한번에 여러 개의 저장소에 push 하는 등 여러가지 용도로 사용할 수 있는 명령어 입니다. Repository 생성 원격 저장소를 추가하기 위해서 그에 앞서 원격 저장소를 먼저 생성 하겠습니다. 아래 사진의 예제는 각각 Gitlab과 Github입니다. 어렵지 않게 새로운 저장소를 만드실 수 있습니다. Create repository를 눌러서 생성 Gitlab에서는 저장소를 생성 했을 때, ..

Development/Git 2021.11.25

Rebase 활용해 Commit 합치기

Rebase Rebase는 한 branch에 있는 내용을 다른 branch에 병합하는 두가지 Git 유틸리티 중 하나 입니다. 다른 하나는 이미 모두가 사용하고 있는 git merge 입니다. merge는 항상 이후로 향하는 변경인 반면에, rebase는 git의 history를 다시 작성 하는 강력한 기능을 가지고 있습니다. Rebase는 manual과 interactive 이렇게 두 가지 메인 모드를 가지고 있습니다. 여러가지 역할이 가능 한 rebase 지만 이번 posting에서는 이미 커밋한 몇개의 커밋을 하나로 합치고 새로운 커밋 메시지를 남기는 용도로 사용 해 보겠습니다. 문제 커밋을 했는데 깜빡한게 있는 경우가 생겼습니다. 19 분 전에 커밋을 하자 마자 코드가 너무 지저분 하다는 생각이 ..

Development/Git 2021.11.03

Github / Gitlab SSH 공개 키 등록하기

Git CLI와 GUI 저는 MacOS에서 Github repository에 접근 할 때 Github Desktop을 사용 하고 있습니다. ​ Github Desktop의 완성도는 꽤나 괜찮은 편입니다. TypeScript로 작성 되어 있으며, Release Note를 확인해 보시면 거의 1주일에 한번 꼴로 꾸준히 업데이트가 됩니다. 심지어는 Microsoft에 인수된게 무색하게 발빠르게 Apple M1 칩셋에 대응도 했습니다. https://github.com/shiftkey/desktop/ Linux 버전의 Fork도 있어서 한번 테스트 해 보려 합니다. 이렇게 빠르게 치고 올라온 배경에는 Github Desktop이 완전한 Open Source 라는 강점이 있습니다. 반면 atlassian의 Sou..

Development/Git 2021.09.25

Sourcetree 에서 잘못된 비밀번호로 저장소 접근 안될때 해결방법

원인 소스트리에서는 한번 입력된 비밀번호가 잘못 되어도 절대 다시 입력하라고 하지 않고, 계속해서 비밀번호가 틀렸다는 메시지만 주구 장창 띄웁니다. 심지어 8월 13일 부로 Github에서는 password authentication을 공식적으로 제거하고는 personal access token 만을 사용하도록 정책을 변경 했는데요. 이미 오래전 부터 경고해왔기 때문에 갑작스러운 일은 아닙니다. ​ 하지만 Sourcetree에서는 인증에 실패하였을때 새로 비밀번호를 입력하게끔 해주지 않기 때문에 대책이 필요합니다. 예전에도 팀원 분중 한분이 소스트리에 Gitub 비밀번호를 잘못 입력했다가 로그인 되지 않아서 지웠는데도 계속해서 비밀번호 입력하라는 창은 뜨지 않고 인증 실패만 나오니까, 구글에 "소스트리 ..

Development/Git 2021.08.24 (5)

Github REST API 요청 한도 늘리기

API rate limit exceeded for 58.121.244.176. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details 어플리케이션에 위에 보이는 기능을 추가했습니다. 문제는 제가 on input으로 요청이 걸리도록 했더니.. 순식간에 403 에러를 뿜으며 작동이 안되기 시작했습니다. 알고보니 시간당 겨우 60회의 요청만 가능합니다. 지금 알아서 다행이지 발표하다가 요청 60회 다 썼으면 큰일 날 뻔 했네요. 그래도 인증된 요청은 5,000 request 까지 해준다고 하니. 인증을 해야겠네요. Settings에 Developer S..

Development/Git 2021.06.22 (1)

terminal 에서 해당 git branch 이름 표시하기

기본적으로 git 을 terminal 에서 활용할 때, 내가 어떤 branch 에서 작업중인지 알려면 git status 명령어를 사용합니다. 하지만, 이러면 확실하게 내가 어떤 branch 에서 작업중인지 헷갈려서 실수로 다른 사람들이 작업중인 branch 에 commit을 하는 불상사가 일어날 수도 있습니다. 그래서 확실하게 표시해 주는게 좋은데요, Zsh에는 vcs_info 라는 프레임워크가 포함돼 있다고 합니다. ~/.zshrc 파일을 열어서 수정을 해줍니다. 저는 보통 vim 에디터를 이용합니다. autoload -Uz vcs_info precmd_vcs_info() { vcs_info } precmd_functions+=( precmd_vcs_info ) setopt prompt_subst R..

Development/Git 2021.03.23

Github 사용법 ( 수업 내용 깃허브에 올려 동기화하기)

Intro 안녕하세요. 처음 국비학원에 다닐 때 단순히 학원에서 작업하던 내용을 집에서도 이어서 하고 싶다는 생각 하나로 Git을 시도 해 보았고 처음에는 정말 너무 어려웠고 제대로 사용하지도 못했었는데 이때의 도전이 많은 도움이 되어 이후 팀원들과 조별 프로젝트를 할 때에도 그 후 회사에 들어갔을 때도 아무런 부담 없이 Git을 사용 하게 되는 계기가 되었습니다. 물론 이 글은 현업에서 사용하는 수준에 도다르기까지는 무리가 있지만 제가 처음 Git을 접했을 때의 눈높이에서 작성된 글이기 때문에 어렵지 않게 따라 할 수 있으며 함께 학원에 다니던 많은 친구들을 Git에 입문시킨 글이기 때문에 그때 그 글 그대로 내용을 수정하지 않고 보기좋게만 조금씩 가다듬어 글을 이어가고 있습니다. 비록 초보자를 위한 ..

Development/Git 2021.01.10 (1)