🙆

Sourcetreeの導入手順(Windows&GitHub向け)クローンしてプッシュまで

2023/02/11に公開

はじめに

初学者向けに詳しく書いてます。
Gitクローン時にはHTTPS利用。
Windows向けに書いています。
WSLを利用する上でよくあるトラブルシュートも記載しています。

環境

Windows10Home
WSL2

Sourcetree導入手順

  1. Download For Windowsからダウンロードして、インストーラを実行します
    https://www.sourcetreeapp.com/
  2. skipで問題なし
  1. Mercurialなしにしました
  2. インストール&完了

  3. Author名とメールアドレスを入力
  4. SSHキーは読み込まない。「いいえ」を選択(SSH使いたければ他の記事を参考に)

GitHubでpersonal access tokenを作成する

  1. GitHubにログイン
  2. 右上のユーザーアイコンからSettingを選択
  3. 下の方にスクロールしてDeveloper settingを選択
  4. Tokens(classic)を選択、Generate new token (classic)を選択
  5. Note、Expirationは90 daysなどお好みで。scopeはrepoとuserにチェックして作成
  6. 生成されたpersonal access tokenのコードを控えておく

参考:公式ドキュメント #個人用アクセス トークンの作成

Sourcetreeでクローン

  1. GitHubでクローンしたいリポジトリのURL(HTTPS用)をコピー
  2. SourcetreeのCloneの一番上の入力欄にペースト、フォーカスを下の行に移すと認識される。その際に初回だとポップアップが出る。manager-coreを選択、Always use this from now onにチェックを付けて、Selectを押す。2回ほど同じポップアップが出るが、同じ選択でOK
  3. SourcetreeでGitHubのSign inを求められる。Tokenを選択。
  4. 控えておいたpersonal access tokenのコードを貼り付けてSign in
  5. 今回はWSLで利用したいので、クローン先を\\wsl$Ubuntu-20.04\home\<user>\<project directory>などと変更以下のように表示されていれば正常に認証されている。クローンを押下
  6. SourcetreeでWSLのディレクトリにクローンすると'git status' がコード 128 で終了しました: fatal unsafe repository ('//wsl$/Ubuntu-20.04/home/...')という内容のエラーが出る

Atlassian(Sourcetree)のコミュニティの解答
https://community.atlassian.com/t5/Bitbucket-questions/Unsafe-repository-REPO-is-owned-by-someone-else/qaq-p/2016432
要するにエラーに出ている内容の通りにコマンドを打てば解決します。
しかし、注意点として、Windows側でコマンドを打つ必要があります。WSLを利用している場合、C:\Users\<user>\.gitconfigに反映させる必要があるのです。

SourcetreeをWSLで利用する際のエラーの解消

  1. Sourcetreeの内臓のGitを開く(右上のターミナルボタン)

  2. 以下のコマンドを実行する。(全ディレクトリ許可の場合)

git config --global --add safe.directory '*'

全ディレクトリにしたくない人は、エラー内容のようなコマンドにして、safeディレクトリを指定してやる。(別ディレクトリにクローンする度にsafeに追加する必要がある)

git config --global --add safe.directory '%(prefix)///wsl$/Ubuntu-20.04/home/<user>/<project directory>'
  1. 確認
    C:\Users\<user>\.gitconfig
[safe]
	directory = *

または

[safe]
	directory = %(prefix)///wsl$/Ubuntu-20.04/home/<user>/<directory>

となっていることを確認。

Sourcetreeも表示が変わる。フェッチなどを押してみてエラーとならないことを確認しましょう。

コミット、プッシュ時に出たりするエラー

fatal: Unable to create '//wsl$/(中略)/.git/index.lock': Permission denied

権限がないです。そういうことになることもあるかもしれないです。Atlassianコミュニティの解答にもあったように。エラーが出ているソースディレクトリや.gitなどオーナーをchownコマンドで変えましょう。
Ubuntuのアプリで、オーナー変更したいディレクトリの一つ上の階層で実行してください。
ここでは.gitのオーナーを変更する例を記載しておきます。

$ sudo chown -R <username>:<username> .git

<username>はWSL導入時に作成したユーザー名です。
llコマンドで権限が変わっていることを確認しましょう。
※プロジェクトソースのオーナーやファイル権限でうまくいかないこともあるようです。エラーをよく読んで対処しましょう。

コミット、プッシュができることを確認しましょう!

おわり

初学者向けなので、キャプチャを沢山とりました。(スクロールが長い😅)
SourcetreeでGitの感覚をつかんでくださいね!

よい開発ライフを!✨

Discussion