Git clone --depth=1 이후에 히스토리 복원하기.

Git 리파지토리의 이력이 많아지거나, 리파지토리 용량이 클수록 clone을 받는데, 시간도 많이 걸리고 스토리지도 많이 필요하게 됩니다. 그래서 리파지토리의 일부 이력만 받아오는 방법이 있는데, 이를 전문용어로 shallow clone 이라고 합니다. 얕은 클론이라고 해석할 수 있는데, 이걸 기억하면 옵션도 쉽게 기억할 수 있습니다. 옵션이 depth거든요. shallow clone 앞에서도 설명했드시 Git 리파지토리의 전체 이력 중 일부만 받아오는 행위를 shallow clone이라고 합니다. 그 반대, 즉 전체 이력을 받아오는 것을 deep clone (깊은 클론)이라고 합니다. 대개의 경우, 전체 이력을 받아오지만, 리파지토리가 매우 크거나, 오랜동안 쌓인 이력이 매우 많을 경우, 또는 요즘은 ..

Docker login시 Error ‘Cannot autolaunch D-Bus without X11 $DISPLAY’

오늘 AWS에 있는 EC2에서 발생했던 오류에 대한 기록입니다. 새로운 서비스를 배포하기 위해 Docker Registry에 로그인하는데, 처음 보는 에러가 났습니다. ( Dockerhub는 아니고, 사설로 운영하는 것입니다. 그리고 OS는 Ubuntu입니다. ) docker login Username: bitlog Passworld: Error saving credentials: error storing credentials - err: exit status 1, out: 'Cannot autolaunch D-Bus without X11 $DISPLAY' 에러 메시지를 검색해보니, 이미 이런 에러를 겪은 사람들이 많았다는 것에 안도했습니다. 에러에 대한 결과가 많다는 것은 이미 해결책이 있을 가능성도 ..

MobaXterm "free" Xserver and tabbed SSH client for Windows

얼마 전까지만 해도 윈도우에서는 ssh 클라이언트로 putty를 썼습니다. putty가 매우 가볍기도 했고, 무료라서 구하기도 쉬워서 사용했는데, SecureCRT 같은 유료 툴에 비하면, 부족한 기능이 많습니다. 그중에도 한 번에 한 세션만 접속이 가능해서 중복해서 접속하려면, putty를 하나 더 열어서 사용해야 하는 게 제일 불편했습니다. 그래서 이런 점을 보완하고자 putty컨테이너 라던가, MTPuTTY 같은 래퍼 애플리케이션을 사용했었습니다. 그런데 최근에 MobaXterm이라는 것을 알게 되었는데요. 그 이후론 이 것만 사용하고 있습니다. SSH 클라이언트인데, CMD도 되고, RDP도 되고, FTP도 되고, 브라우저도 되고, WSL도 됩니다. 연결할 수 있는 건 다 연결해주겠다는 느낌이 드..

OFFLINE에서 Gem 파일 설치하기

Ruby에서는 npm, maven과 같은 역할인, 패키지를 다운로드하기 위한 bundler라는 패키지 매니저가 있습니다. 패키지를 다운로드하기 위해서는 www.rubygems.org에 에 접속 할 수 있어야 합니다. 즉, 인터넷에 연결되어 있어야 합니다. 대부분은 아니겠지만, 일부 환경에서는 인터넷에 연결할 수 없는 상태에서 서버를 구성해야 합니다. ( 제가 일하는 환경 대부분이 그렇습니다. ) 그래서 이번에는 인터넷이 되지 않는 Offline 환경에서 Ruby의 패키지인 Gem을 설치하는 방법을 설명합니다. * 실제로는 더 많은 Gem을 설치하지만, rails 만 설치하는 것을 예로 들었습니다. * 1. 준비물. - 인터넷이 되면서, 서버에 접속할 수 있는 PC. 준비물에서 이미 눈치 채셨겠네요. 맞습..

페어 코딩 하시나요? ( GitHub에 공동 작업자 기록하기 )

페어 코딩을 할 기회가 종종 있습니다. 페어 코딩을 하게 되면 좋은 점이 있는데요. 물론 나쁜 점도 있어요. 이 얘기는 나중 더 자세히 적을 기회가 있을 것 같습니다. 아무튼 페어 코딩을 종종 하는데, 이때 공동 작업자를 기록하기가 애매합니다. 기본 적으로 Git에는 저자를 한 명 기록하게 돼있으니까요, 하루는 이 사람, 하루는 저 사람으로 기록하는 규칙을 정하자니 뭔가 불편합니다. ( 사실 이렇게도 해봤는데, 서로 자기 이름을 기록하지 않으려 하더라고요. ) 그래서 공동작업을 기록하는 방법을 찾아보기로 했습니다. 우선 저는 GitHub을 사용하고, 리눅스, 혹은 Mac에서 주로 개발합니다. 지금 설명하는 방법은 윈도우에서는 해보지 않았습니다. ( 되겠죠? 뭐 ) 그럼 공동 작업을 기록하는 방법을 찾아서..