Development/Git 8

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

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 사용법 ( 수업 내용 깃허브에 올려 동기화하기)

​ 수업 내용 깃허브에 올려 동기화하기 본 문서는 markdown 문법 으로 작성되었습니다. Contents 1. github 가입하기 2. Repository (저장소) 만들기 3. Sourcetree 다운로드 및 설치 4. Sourcetree를 사용해 내 프로젝트를 Repository에 업로드 (동기화, Commit & push) 하기 5. 새로운 컴퓨터에 기존 Repository 에서 프로젝트를 받아오기 (동기화, Pull) 6. 수정된 코드를 저장소에 반영하기 ( Commit & push ) ​ 1. Github 가입하기 어렵지 않습니다. github.com/ 위 주소에 들어가서 편안하게 회원 가입 하시면 됩니다. 아이디도 나중에 마음에 안들면 바꿀 수 있지만, 저도 바꿔봤는데 몇가지 불편한 점이..

Development/Git 2021.01.10 (2)