※画像も載せたかったですが、一部仕事上問題ありますのでテキストだけです。
GitとSourcetreeが使いづらい件
Backlogを通して、Gitを使ったバージョン管理を行おうとした際。
どこをどう調べても、「サルでもわかる」のサイトを見てすらも、上手くいかなかった為、最終的にターミナルからいろいろやって使えるように至った経緯です。
(サルでもわかるのに僕にはわからなかった件......orz)
僕の環境
使用PC: MacBook Air
プロセッサ: 2.2 GHz Intel Core i7
メモリ: 8 GB 1600 MHz DDR3
グラフィック: Intel HD Graphics 6000 1536 MB
各バージョン
・git: 2.14.1
・Sourcetree: 2.6.3
やりたかったこと
上でも触れていますが、Backlogにリモートリポジトリがあるので、そこからクローンしてきてブランチ切って作業したかった訳です。
でも、URLからクローンしようとすると「パスが正しくない」という旨のエラーが出て先に進めない・・・
「git ブランチ」やら「git cloneできない」やら、思いつく限りのワードで検索したサイトでは以下のような解決方法が上がっていました。
・Git、あるいはSourcetreeそのものの不具合。
バージョンダウンすれば上手くいった。
他にPC側のOSとの関係に触れている記事もありましたが......まぁ、僕はこれらでは改善しませんでした。
実際に取った方法
手順1.
ターミナルで、クローンしてきたファイルを置きたいところまで移動。
~ user $ cd ~クローン先~
なお、「cd」はチェンジディレクトリの意ですが、これ、一足飛びにはいけません(いや、行く方法もあるのかもですが)。
~ user $ ls
Applications Downloads Music ls
Desktop Library Pictures ls.pub
Documents Movies Public
~ user $ cd Desktop
Desktop user$
というように「ls」で次行けるところ(現在の場所から開けるフォルダ)を確認してあげると行きやすいと思います。
手順2.
そちらまで到達したら、以下のコマンドを打ちましょう。
$ git clone "クローンしたいリモートリポジトリのURL"
※「""」は不要です。backlogでコピーしたURLをそのまま貼り付けましょう。
すると、仮に「git-practice」という名前のフォルダに「practice」という名前のリモートリポジトリからファイルをクローンしてきたとすると、リモートリポジトリに入っていたすべてのファイルが「git-practice」には入ります。
ターミナルで見ると以下のようになるわけですね。
$ pwd (←現在地を調べるコマンド)
..(userやDesktopなど)/git-practice
$ ls
practice
手順3.
Sourcetreeを起動し、上にある「新規...」をクリックしましょう。
「ローカルリポジトリを作成」をクリックすると配置する場所を聞かれますので、先ほどクローンしてきたフォルダ(「git-practice」ではなく、クローンされてその中に入った「practice」)を選びます。
それでローカルリポジトリは完成です。
手順4.
Gitでバージョン管理をするにあたり、一人で作業しているなら問題ありませんが、複数人で作業をしている場合、絶対にやってはいけないこと。
「masterへのpush」です。
なので、いの一番にやるべきことがあります。
ブランチを切りましょう。
完成したローカルリポジトリをダブルクリックして開くと、開いたSourcetree画面の上の方に「ブランチ」というスイッチがあります。
そちらを押して、自身の名前のブランチを作成してください。
その後、左にある、最初はmasterしか表示されていないブランチ欄にあなたの名前のブランチが作られます。
それをダブルクリック(「ブランチをチェックアウトする」と言います)しましょう。
手順5.
これでコミットするまでの準備は完了です。
もし、リモートの欄が空......つまり未登録になっていたら、この後プッシュするためにも、右上の設定からリモートを登録してあげてください。
ここまできたら、一回何らかの変化をコミットしてあげるとプッシュできるようになりますので、プッシュ先がoriginになっていることを確認してからプッシュしましょう。
Backlog上のブランチのページで見れば、あなたの名前(設定したブランチ名)のブランチが作成されているはずです。
PS.もし、ローカルリポジトリを何らかの理由でいじってしまい、Sourcetreeに入れなくなった場合
僕はフォルダ名をいじったら「どこか行ったか、削除されてしまいました」として入れなくなりました。
この時、普通に移動、または変更したフォルダを指定しても上手くいきません。
(僕の場合はそうでしたが、必ずしもそうとは限りません)
ですので、管理していたフォルダ、ファイルの内容を一旦別フォルダに退避させ、新しく空フォルダを用意してそこにまたターミナルでクローン。
そのフォルダをローカルリポジトリとして、またSourcetreeで設定。
Sourcetreeを起動し、左のリモートの欄を確認。
origin以下のところに自分のブランチが残っていると思います。
これをダブルクリックすると追跡するか、みたいなことを聞かれますのでOKします。
これで、今までの状態に戻ります(ローカルリポジトリの内容は別)。
その後普通にフォルダを開いてあげて、退避しておいたファイルで、クローンして元に戻ってしまっている内容を置き換えます。
するとSourcetreeの方で「変更があった数とその内容」が表示されますので、コミットして、プッシュしましょう。
これで本当に終了!
元のリモートリポジトリと繋がった、新たなローカルリポジトリの完成です。
ローカルリポジトリのフォルダ名はよく考えてから設定して、変えないようにしましょう(^_^;)
僕は同じような名前のフォルダを量産してしまって整理していたらそんなことになってしまいました......