github 5

github 'remote rejected'로 푸시 실패하는 경우 해결방법 (access token scope)

깃허브에 푸시할 때 'remote rejected'라고 나오면서 푸시에 실패하는 경우가 있는데 원격 저장소에서 푸시를 거부하는 원인은 여러가지가 있습니다. 이번 게시물에서는 액세스 토큰 권한이 없어서 푸시가 안되는 경우의 해결방법을 알아보겠습니다. 참고로 Windows 10 환경에서 git이 Windows Credential Manager를 사용하는 상황입니다. github access token scope 때문에 remote 푸시 실패하는 경우 ! [remote rejected] master -> master (refusing to allow an OAuth App to create or update workflow `.github/workflows/build.yml` without `workflow`..

etc 2020.09.21

git credential cache 설정 방법

git을 사용할 때 원격 저장소에 푸시하는 등 접근할 때 아이디와 비밀번호가 필요한데요, 기본적으로 git은 입력했던 아이디와 비밀번호를 저장하지 않아 매번 repository에 접근할 때마다 아이디와 비밀번호를 요구합니다. $ git push Username for 'https://github.com': John Password for 'https://john@github.com': ... $ git push Username for 'https://github.com': John Password for 'https://john@github.com': (반복) 매 번 푸시할때마다 아이디와 비밀번호(또는 개인 액세스 토큰(PAT))를 입력하면 정말 귀찮겠죠? 그래서 git은 1.7.9 버전 이후부터 cre..

etc 2020.09.10

Github MFA 이용시 토큰 생성 방법

깃허브는 멀티팩터 인증(MFA, Multi-Factor Authentication)을 지원합니다. 계정 보안을 위해서는 꼭 2단계 인증 등을 해주는게 좋은데요, 저는 구글 인증기(google authenticator)를 연동해 사용하고 있습니다. 깃허브 계정이 MFA를 사용중일 때 커밋을 푸시하려면 계정, 비밀번호로는 안됩니다. 토큰을 만들어줘야 하는데 이번 게시물에서는 개인 액세스 토큰(Personal access token)을 만들어서 로그인을 진행하는 방법에 대해 알아보겠습니다. Github 개인 액세스 토큰 생성 및 로그인 방법 $ git push -u origin master Username for 'https://github.com': example Password for 'https://ex..

etc 2020.09.08

GPG key 생성 방법, github 연결 방법 및 git 설정 방법

GPG는 GnuPG = GNU Privacy Guard로 PGP(Preety Good Privacy)를 대체하는 암호화, 복호화 프로그램입니다. 깃허브 커밋 내역을 보면 커밋 메시지 옆에 "Verified" 로고가 있는 경우가 있는데요, 커밋이 gpg(또는 pgp) 키를 이용해 서명되었다는 것을 나타냅니다. 왜 굳이 커밋에 인증을 해야 할까요? 기본적으로 git 커밋에는 이름과 이메일이 들어갑니다. 그런데 악의적인 사용자가 git 설정에 제 이름과 이메일을 써서 멀웨어를 만든 뒤 깃허브에 릴리즈했다고 생각해봅시다. 나중에 멀웨어임이 밝혀지면 저는 그 멀웨어에 관여하지 않았지만 커밋 내역에 이름과 이메일이 들어가있어 범인으로 오인될 수 있습니다. 또 팀원의 깃헙계정이 해킹돼 악성 코드가 심어진 PR을 보냈..

etc 2020.09.08

Git 서브모듈까지 clone 하는 법

git을 사용하다보면 다른 git 리포지토리를 그대로 갖다 써야되는 경우가 있습니다. 예를 들면 LLVM의 코어를 프로젝트 안에 포함시켜야할 때가 있는데요, 이때 프로젝트를 그대로 복사만 해놓으면 이후에 관리가 안됩니다.그래서 git에서는 서브모듈(submodule, =nested repository)이라는 기능을 활용하고 .gitmodules 파일로 서브모듈들을 관리하게 됩니다. Github(깃허브)에서 폴더에 화살표가 그려진 아이콘이 있고 뒤에 커밋 ID가 써있는 폴더가 있는데 이게 서브모듈을 나타내는 겁니다.예를 들면 마이크로소프트 STL은 llvm-project, vcpkg를 서브 모듈로 사용하고 있습니다. 폴더를 클릭해보면 해당되는 커밋 ID의 리포지토리가 나옵니다. $ git clone --r..

etc 2020.09.02