20200804のGitに関する記事は5件です。

git@github.com: Permission denied (publickey) が出た時の解消法

新しいリポジトリを作成し、git pushしようとしたら以下のエラーが出てきて、pushがうまくいかなかった。

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

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

前にも見たことがあったけど、どうやって対処しようかググってたが、結構対処法が散らばっていたので、備忘録としてまとめておく。
よく見かけたのは
http://tusukuru.hatenablog.com/entry/2018/08/29/021651
のような感じで、ssh-keygenを行ってid_rsaを作成するものだが、今回は他のアカウントも持っていたので、別名で公開鍵・秘密鍵を作成したかった。

1. .ssh/configの修正

vim ~/.ssh/config

# 元々あったやつ
Host github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa
  User git

# 今追記したやつ
host github-hogehoge
  hostname github.com
  IdentityFile ~/.ssh/id_rsa_github_private
  User hogehoge

ここにも書いてありますが、このhogehogeがgithubのアカウント名となります。
id_rsa_github_privateは作成する秘密鍵のファイル名となります.名前はなんでも大丈夫です。

2. 鍵の作成

ssh-keygen -t rsa -C hoge@example.com -f id_rsa_github_private

hoge@example.comにはgithubで使用しているメールアドレスを入力します。

パスワードを入れるかenterを押すなりして進めます。
id_rsa_github_privateがカレントディレクトリにあると思うので、~/.ssh/の方に移動しておきます。

mv id_rsa_github_private* ~/.ssh/

これで~/.ssh/配下に必要なものが揃いました。

% ls ~/.ssh/
config              id_rsa.pub          id_rsa_github_private.pub
id_rsa              id_rsa_github_private       known_hosts

3. githubの方に公開鍵を設定

https://github.com/settings/profile
のSSH keys に new ssh keyから新しい鍵を登録します。
keyの中に~/.ssh/id_rsa_github_private.pubの内容をコピペします。

以下のコマンドを実行すると接続確認が取れます。

% ssh -T git@github-hogehoge
Hi hogehoge! You've successfully authenticated, but GitHub does not provide shell access.

4. git pushをする

今回はgit pushをしようとしたときにエラーが出ていました。cloneの場合はここ を参考にすると良いかと思います。
pushする際にremote addをする必要がありますが、そのときに

git remote set-url origin git://git@github.com:hogehoge/repository.git
となっていますが、これではなく、

git remote set-url origin git://git@github-hogehoge:hogehoge/repository.git

となります。(repositoryのところは作成したリポジトリ名となります)

これで、git push origin master をするとうまくpushされました :tada:

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【SVN,Git】TortoiseGitを用いてコミット履歴込みでSVNリポジトリをGitへ移行する。

メモとして残します。

わりと手間取ったのでメモ

Git to Git は記事にまとめましたが、SVN to Gitへのリポジトリ移行について今回はまとめます。

■やり方

0.[重要]Windows32bit版のGitをインストール

64bitバージョンだと既知の不具合か何かで、git svn cloneコマンドが
こけるらしいので、Git32bitをインストール。

1.任意のフォルダで右クリメニューGitクローン(複製)...をクリック

image.png

2.SVNのURLをセット

URL・・・SVNのURLを入力
ディレクトリ・・・ダウンロード先フォルダを入力
SVNリポジトリからにチェック
注意)トランク、タグ、ブランチがある場合は、URLもこれらがある階層を含むアドレスにして、チェックを入れる。
image.png

3.SVNからダウンロード&Git用に自動変換

完了すると下部に青地で成功と表示される。
image.png

注意)リビジョンが多いほど時間がかかりますのでじっくり待つ。

4.Originのリモートをセット

git remote add origin https://hogehoge.com/hoge.git

5.ローカルの情報をリモートにpush

git push -u origin master

以上

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

既存ファイルをGitHubにアップロードする方法

既存ファイルをGitHubに追加する

Gitで既存のファイルをアップロードする方法について手順をご紹介したいと思います。

1. GitBashを立ち上げ、GitHubにアップしたいファイルにcdコマンドで移動する
※ちなみに、cdはcreate directoryの略

2. git add . コマンドを打つ
cdコマンドで希望ディレクトリまで移動できたら、ステージに内容を追加するために、以下のコマンドを打ってください。

GitBush
$ git add .

3. git commit コマンドを打つ
git add . コマンドでステージに追加できたら、git commit でリポジトリに内容を追加します。

GitBush
$ git commit

4. remote repository を作成する
GitHubを開き、New Repositoryを開きます。
その後、repository nameに任意の名前を入れて、Create repositoryでrepositoryを作成します。

493edf904c9094ef7c0c39c2e6a566b6.gif

以上の作業が完了したら、次に、以下のコマンドを打ちます。

GitBush
$ git remote add origin https://github.com/Gitのアカウント名/作成したリポジトリ名.git
$ git push -u origin master

以上で、ファイルをGitHub上にアップできたと思います。

Git操作に不安がある方は、私も受講したUdemyの講座を受講するとよいかと思います!

https://www.udemy.com/share/1021OECUYecFdTR3w=/

考えられるエラーについて

リモートリポジトリを作成した直後に、上記コマンドを実行せずに、以下のコマンドを実行すると、以下のエラーが発生するので、ご注意ください。

失敗例
error: src refspec master does not match any.
解決方法
$ git add .
$ git commit 

加えて、もしかすると、git add . コマンドを打った時に、

エラー
warning: CRLF will be replaced by LF in .vscode/settings.json.
The file will have its original line endings in your working directory

このようなエラーが出るかもしれません。
この時は、以下のコマンドを試してみましょう。

解決方法
$ git config --global core.autoCRLF false

ちなみに、「https://qiita.com/yukari-n/items/e6107fe52772ef6a2df4」
を参考にさせていただきました。
※作成者様、ありがとうございます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Windows で git bash + tmux な環境づくり

git bash を手に入れましょう

Git for Windows

tmuxをインストールできるようにしましょう

下記のページにあるとおりに、まずpacmanをインストールします。
その後、tmuxをインストールします。

Git for Windows で pacman を使う

git clone --depth=1 https://github.com/git-for-windows/git-sdk-64 gfw-sdk

cp gfw-sdk/usr/bin/pacman* /usr/bin/
cp -a gfw-sdk/etc/pacman.* /etc/
mkdir -p /var/lib/
cp -a gfw-sdk/var/lib/pacman /var/lib/
cp -a gfw-sdk/usr/share/makepkg/util* /usr/share/makepkg/

pacman --database --check

curl -L https://raw.githubusercontent.com/git-for-windows/build-extra/master/git-for-windows-keyring/git-for-windows.gpg \
| pacman-key --add - \
&& pacman-key --lsign-key 1A9F3986

pacman -S tmux

以上です。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Git】fatal: Not a valid object name: 'master'.

Sourcetree使ってbranchしようとした際に出てきたエラー。
Sourcetreeでの操作がメインです。

内容は簡単に言うと「'master'という名前のオブジェクトがないよ」って意味でした。

ファイルを作成している時点でターミナル操作でいうところの"init"はできているから問題なし。

commitが出来ていないからっていうのが原因なので
VScodeなりのエディターで作成したファイルを開いて
sample.txtなりのファイルを作って
文字列を与えてあげれば(←作成だけでなく変更が必要のため)ok

そのあと履歴のところに表示されてきているので
コミットしてあげればbranchできるようになります。

何かしらのファイルを作る前に分岐なんかできないよってこと。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む