LoginSignup
9
9

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-04-08
  • 開発環境のソースを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もできた😂

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

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9