情報系大学生の雑記帳

プログラミングや電子工作などを中心に書いていくつもりです

ローカルのリポジトリをbitbucket/githubにpushするまで

はじめに

 この記事ではgitを使ってローカルで管理していたプロジェクトをbitbucketにも上げておこうという人を対象に、コマンドでローカルにあるリポジトリをbitbucketに初めてpushするまでの手順を簡単に書いています。動作はWindows7Cygwin上で確認しています。
 githubの場合は基本的にはbitbucketの部分を適宜githubに変えれば同じようにできるはずです。

ローカルでの作業

ssh-keygenでssh秘密鍵・公開鍵を作成

$ ssh-keygen  -b 2048 -t rsa -f ~/.ssh/bitbucket_rsa

※-b:ビット数、-t:暗号化方式、-f:出力先ファイル
すると

Enter passphrase (empty for no passphrase):

と言われるので、秘密鍵だけでパスフレーズを設定しない場合は何も入力せずにエンターを押してください。その後再度パスフレーズを求められるので、もう一度何も入力せず(パスフレーズを設定する場合にはパスフレーズを入力してから)エンターを押してください。

・~/.ssh/configに以下を追加

Host bitbucket
  User git
  Port 22
  Hostname bitbucket.org
  IdentityFile ~/.ssh/bitbucket_rsa
  IdentitiesOnly yes

githubの場合、Hostnameのbitbucket.orgはgithub.comにする必要があるので注意

リモート

リポジトリの作成*1
・公開鍵を登録(bitbucket_rsa.pub)
 テキストエディタやlessコマンドなどで~/.ssh/bitbucket_rsa.pubを開いて中身をコピーし、bitbucket/githubの該当欄に貼り付ける*2
 

ローカル

 後はgitで管理している既存のプロジェクトのディレクトリ内で、リモートがどこかを設定するために以下のコマンドを入力すればpush/pullができるようになります。

$ git remote add origin bitbucket:ユーザー名/リポジトリ名.git

 これでリモートにpushすればbitbucket/github上で確認できるようになっています。

$ git push -u origin master

※-u:追跡ブランチの設定、こちらの記事が分かりやすかったです
snowlong.hatenablog.com

おまけ

git remote add~で設定するURLを間違えた場合等には以下のコマンドで修正できます。

$ git remote set-url origin bitbucket:ユーザー名/リポジトリ名.git

追記 2016/12/16

pushした時に

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

と出てしまう場合には、ssh-agentに鍵を登録すると解決する可能性がある。(というか、何度かこれで引っかかっていた)

$ eval `ssh-agent`        //ssh-agentを起動
$ ssh-add ~/.ssh/xxxxxxxx //bitbucketまたはgithubの秘密鍵をssh-agentに登録

参考:githubからcloneするときにPermission denied (publickey)エラーが発生する | hacknote

※追記終わり

*1:bitbucket/githubリポジトリ作成に関しては省略

*2:.pubのついていない~/.ssh/bitbucket_rsa秘密鍵なのでコピーするファイルを間違えないよう注意