문제 해결

SSH에서 원격 저장소로 접속하려고 할 때, "Permission denied (publickey)"라고 표시됩니다

  • URL 설정이 잘못되어 있지는 않나요?
  • 로컬 기기에 비밀키(Private Key)가 제대로 설치되어 있는지 확인해 보았나요?
  • 원격에 공개키(Public Key)가 제대로 설치되어 있나요?

Backlog 상의 저장소에 비밀키/공개키가 바르게 설정되어 있는지 확인하기 위해 명령어를 실행합니다.

$ ssh <space>@<space>.git.backlogtool.com

<space>는 적절히 이용하는 스페이스로 바꾸십시오. 예를 들어, "demo.backlogtool.com"라면, "demo@demo.git.backlogtool.com"가 됩니다.

제대로 설정되어 있는 경우에는 아래와 같은 로그가 출력됩니다. 오류 메시지가 표시된 경우 위의 설정을 다시 확인해 보세요.

Hi yourname! You've successfully authenticated, but Backlog does not provide shell access.
Connection to git.backlogtool.com closed.
Back To Top

HTTPS에서 clone할 수 없습니다

Git의 오래된 버전에서는, 'push' 및 'pull'이 원활하게 되지 않는 경우가 있다고 합니다. '1.7.10' 이후의 버전을 사용하십시오. SourceTree 및 TortoiseGit를 사용하시는 분은, 각 클라이언트에서 사용하고 있는 Git 버전을 확인해 주세요.

Back To Top

HTTPS에서 push/pull 할 때마다 비밀번호를 입력해야 합니다.

Git '1.7.10' 이후 버전을 설치하면 매번 비밀번호를 입력하지 않아도 됩니다.

Windows

git-credential-winstore이 툴을 이용하면 비밀번호를 한 번만 입력해도 됩니다

Mac

입문 편이나 발전 편에서 Mac의 GUI 클라이언트로 다루고 있는 SourceTree에서는, Mac의 키 체인과 연동하는 기능이 표준으로 제공되고 있습니다. 이 기능을 사용하면 Pull 이나 Push 때마다 비밀번호 입력이 필요 없게 됩니다.

콘솔

Mac에서는, 키 체인과 연동하기 위한 인증 도우미를 사용할 수 있습니다. Homebrew를 사용하시는 분은, Git을 설치할 때 인증 도우미도 자동으로 설치됩니다. 그 외의 경우에는 인증 도우미를 수동으로 설치해야 합니다.

인증 도우미가 설치되어 있는지 여부는 아래와 같은 명령어로 확인할 수 있습니다.

$ git credential-osxkeychain
Usage: git credential-osxkeychain <get|store|erase>

인증 도우미가 설치되어 있지 않은 경우 아래와 같은 출력이 표시됩니다.

$ git credential-osxkeychain
git: 'credential-osxkeychain' is not a git command. See 'git --help'.

그러한 경우 인증 도우미를 직접 다운로드하여 적절한 경로에 가져다 놓으면 해당 기능을 이용할 수 있습니다.

curl -s -O http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain
chmod u+x git-credential-osxkeychain
mv git-credential-osxkeychain /usr/local/bin

설치 후 인증 도우미를 활성화하는 설정을 해야합니다.

git config --global credential.helper osxkeychain
Back To Top

push 해도 원격 저장소에 반영되지 않습니다

신규로 작성한 저장소를 clone 하여 로컬 저장소를 만들고, 그 로컬 저장소 상에 push 하면 아래와 같은 로그가 출력될 수 있습니다.

$ git push
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
Everything up-to-date

이는 원격 저장소 상에 아직 master 브랜치가 작성되지 않았기 때문입니다. push 할 때의 인수가 생략된 경우 기본적으로 원격 저장소와 로컬 저장소 양쪽에 모두 존재하는 브랜치가 push의 대상이 됩니다. 따라서 원격 저장소에 존재하지 않는 브랜치를 push하는 경우에는 저장소와 브랜치를 명시적으로 지정할 필요가 있습니다.

$ git push -u origin master

한 번 push를 실행하면 master 브랜치가 만들어지므로, 이후의 push에서는 저장소와 브랜치의 지정을 생략할 수 있습니다.

Back To Top