Help us understand the problem. What is going on with this article?

Linux開発環境⇔リモートリポジトリ間のgit操作をWindowsのSourceTree上からできるようにするまでの長い道のり

More than 3 years have passed since last update.
  • 開発環境のソースをwindowsから開発 ← つまりsambaを設定する
  • 開発環境の作業コピーとリモートリポジトリ間のgit操作をWindowsからSourceTreeで行なう

つまり、この不安を煽るレベルで線の粗い下記の図のようなことをしたい

0001 2 (1).jpg

手順

  • sambaを設定し、windowsから開発環境に直接アクセスできるようにする
  • 開発環境 ⇔ リモートリポジトリ間のsshキー登録
  • SourceTree ⇔ リモートリポジトリ間のsshキー登録
  • SourceTreeから開発環境に作業コピーを作成
  • あとはpushなりpullなり自在にできるようになる(あとは快適なSourceTreeライフを!)

...と順調にいければそれに越したことはないが、何かとエラーが発生したので、そのエラーと対応について以下にまとめる

そもそもcloneでsshのurlを指定すると永遠にgitリポジトリであることを認識してくれない

urlからcloneする際に、通常であればcloneするリポジトリを指定すればSourceTree側からGitリポジトリであることを認識してくれる。
ここで、sshのurl(git@bitbucket.org~から始まるurl)を指定してもずっと読み込み中になってしまうという現象に見舞われる。
ちなみに、httpsのurlを設定するとこれが認識できたりする。

原因:思わぬ場所のsshの設定が足りていない

開発環境 ⇔ リモートリポジトリ間もSourceTree ⇔ リモートリポジトリ間もsshの設定ができたのにまだ足りないというのか!?
はい。そうです。

コマンドプロンプトで以下を実行
※ 「privatekey.ppk」の箇所は自分で設定した名前

> C:\Program Files (x86)\Atlassian\SourceTree\tools\putty\
> plink.exe -ssh -C -i "privatekey.ppk" git@bitbucket.org

あとはこちらを参照
http://qiita.com/moo/items/5ee3208254c34719914b

開発環境上では出てこないmode変更の差分が出てくる

ようやくgit cloneができたかと思ったら、今度は身に覚えのない差分がわんさかと出てきて泣けてくる。

原因:filemodeの設定がtrueになっている

そういった時はwindows側の.gitconfigと、開発環境の作業コピー内の.git/configに以下の設定を追加する。

[core]
        repositoryformatversion = 0
        filemode = false

こちらを参照
http://qiita.com/hishida/items/35d929845c0ac824b1c0

indexにステージしようとしても「error: unable to write sha1 filename [作業コピーの場所]/.git/objects/pack/pack-[なんか不規則な文字列].pack: Permission denied」と出てしまう

よし、cloneができて余計な差分もでなくなった。
気を取り直して変更内容をpushしてみようという矢先にコレである。
一難去ってまた一難とはまさにこのことだ。諦めたくなる。

原因:sambaの設定不足

/etc/samba/smb.confに以下の行を追加して再起動をする。

   create mask = 0777
   force create mode = 0777
   security mask = 0777
   force security mode = 0777
   directory mask = 0777
   force directory mode = 0777
   directory security mask = 0777
   force directory security mode = 0777

その他の設定はこちらを参照
http://language-and-engineering.hatenablog.jp/entry/20110820/p1

これらの設定を経て...

indexに変更ファイルをステージできた🎉
commitもできた✨
pushもpullもできた😂

めでたしめでたし。諦めないで良かった。

allabout
その道のプロである専門家(ガイド)を基盤に、総合情報サイトを中心とした様々なサービスをWEB&リアルで展開
https://allabout.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした