치춘짱베리굿나이스

Gist 사용하기 + 삽질의 기록 본문

이론적인 부분들/Git Github

Gist 사용하기 + 삽질의 기록

치춘 2022. 7. 19. 00:40

Gist

Discover gists

 

Discover gists

GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

Gist란?

레포지토리에 저장할 만한 대형 프로젝트가 아닌, 간단한 코드나 메모 등을 공유하고자 할 때 쓰는 서비스

같은 주제에 대한 간단한 코드 여러 개를 묶어서 저장하고 공유할 수 있다

링크 공유 기능 (링크를 받은 사람만 해당 코드를 열람할 수 있고, 그 외에는 열람 불가능) 이 있어 Public으로 배포하기도 애매하고 Private로 설정하기엔 남들한테 코드를 보여줘야 할 때 유용하다

임베드 기능으로 코드를 이쁘게 포맷하여 출력할 수 있어서 예전에 알고리즘 풀이 공유 목적으로도 썼었다 (솔직히 티스토리 기본 코드블럭보다 훨씬 이쁘다)

지금 안쓰는 이유는… 레포지토리로 전부 정리해놓는 게 습관이 되기도 했고 Gist가 너무 늘어나면 감당이 안 돼서 그렇다

Gist 사용하기

Github 계정이 있다면 Gist도 해당 계정으로 로그인 가능하다

본인 프로필에 특정 Gist를 띄울 수도 있다

웹에서 사용하기

+ 기호를 클릭하자

Gist를 추가할 수 있는 창이 나온다

  • description은 제목이 아니라 간단 설명이라고 보면 된다 (처음엔 제목인 줄 알았는데 어쩐지 잘 안 보이더라…)
  • 파일명을 Filename including extension… 에 적는다
    • 파일 확장자와 함께 적으면 Gist가 알아서 확장자를 인식하여 관련 포맷으로 색을 넣어준다
    • 그래서 Gist 코드 조각을 웹으로 공유하면 정말 이쁘다… 티스토리 색 포맷 진짜 똥이다
  • 우상단의 옵션들은 각각 들여쓰기 공백 / 탭 사용 여부, 공백 칸 길이, 라인 랩 여부를 지정할 수 있다
    • 들여쓰기를 공백으로 지정하면 공백으로, 탭으로 지정하면 탭으로 들어간다
    • 공백 길이를 설정하여 가독성을 높일 수 있다 (자스는 2칸이 국룰이다)
    • soft wrap은 코드 길이가 너무 길 때 다음 줄로 래핑해주고, No wrap은 스크롤로 들어간다…만 mdrst 파일에만 적용된다고 한다
  • Add file로 같은 description (같은 주제) 에 대한 파일들을 추가할 수 있다)
    • 나는 같은 날에 푼 알고리즘 문제들을 같이 올리는 용도로 썼었다
  • 작성이 완료되었다면, Create secret gist를 눌러 gist를 추가하자

새로운 gist가 생성되었다! (2년 전 gist인 건 신경쓰지 말자….)

Github repository처럼 별도 누를 수 있고, subscribe도 할 수 있다

  • Edit으로 전체 코드를 수정할 수 있다 (Gist 생성 시와 같은 창이 나온다)
  • Delete로 Gist 전체를 삭제할 수 있다
  • Revisions에는 해당 Gist에 올라온 모든 커밋을 볼 수 있다… 만 커밋 메시지는 출력되지 않으니 참고하자
  • Embed 옆의 링크를 복사하여 웹에 붙여넣으면 임베드 코드 조각이 생성된다
  • Download ZIP 버튼을 눌러 전체 소스코드 다운로드도 가능하다

Gist 공유하기

Embed 버튼을 눌러보면 다양한 옵션이 나온다

  • Embed는 말 그대로 임베드 링크를 제공하며, 웹사이트 등에 입력하면 해당 위치에 코드 블럭이 생성된다
  • Share는 단순 링크를 제공하며, 브라우저 상단에 출력되는 링크와 같다
  • Clone via HTTPSClone via SSH는 로컬에 Gist를 클론받을 때 사용하면 된다 (클론 방법은 Github repo와 같다)

 

 

Embed 링크를 이용하여 소스코드를 출력해보았다

대박 (2년전 코드긴 하지만...)

로컬에서 Gist로 커밋하기

git clone [Clone via HTTPS로 복사한 링크]
  • 위의 Clone via HTTPS를 통해 복사한 링크를 이용하여 Gist를 클론받자
    • Clone via SSH는 추가 권한 설정을 해줘야 하는 듯 하다
  • 클론 방법, 커밋 방법, 푸시 방법 모두 Github repo와 같으므로, 편하게 커밋하면 된다

커밋 푸시가 안돼요

  • 깃허브 액세스 토큰을 생성할 때 Gist 옵션을 체크했는지 확인하자
  • Gist는 디렉토리 지원이 안 된다

나는 아무 생각 없이 Gist의 단순 링크를 클론받을 때 이용했는데, 권한 설정이 제대로 적용되지 않아 푸시가 되지 않았다 (repository not found…)

감사하게도 다른 분이 해결 방법을 공유해주셔서 이를 이용하여 해결했다

 

git clone https://[사용자명]:[액세스토큰][Clone via SSH 링크에서 맨 앞 git 제거]

또는 Clone via SSH로 클론받으면서 사용자명과 토큰을 설정해주면 정상적인 푸시가 가능한 레포가 된다

이미 클론받은 Gist (또는 레포지토리) origin 변경하기

git remote set-url origin [바꾸고 싶은 레포지토리 링크]

위의 방법을 쓰고는 싶지만 이미 커밋한 내용을 날리고 싶지 않아서 origin만 위 링크로 변경해 주었더니 푸시가 잘 되었다

 

git remote -v

현재 origin을 체크하려면 이 방법을 쓰면 된다


출처

How to Change a Git Remote

Push to github gist failing

[Github] GitHub Gist 사용하기

 

Comments