この歳になってgitとSourcetreeを覚えることになった。
前の仕事でもデータをひっぱるときにgithubをすこーしだけ使っていたから、ぼんやりとしたgitの概念はイメージできている。
複数でデータ触って共同開発するツールでしょ?
とはいえ、99.9%初心者。
gitをギットではなくジットと読んでいたgit初心者が、gitとSourcetreeを覚えて仕事でつかえるようになるまでの流れをまとめていく。
git初心者動画でgit基本用語とSourcetreeの操作を覚える
本もいいんだけれど、動画を見ながら一緒に手を動かす方が断然覚えやすい。
ということで、自分がgit基礎を覚えるのに見たのがめがねチャンネル。
1本10分未満の動画が11本。
確認しつつ、手も動かしながらだと3時間くらいかかったが、gitの基本用語や操作をしっかり覚えられた。
操作ひとつひとつを1本づつ区切っているので、確認や復習もしやすかった。
動画で少々ネックなのが、動画を見ている初心者が「ほーん、そーなんだー」とぼんやり見ているときに、めがねが先に「ここ!すごいですよね!○○しちゃうんです!」と感動を先取りしてしまうところ。
見ているこちらの感動は薄れるが、ここがgit(Sourcetree)の優れているポイントなんだろうと認識した。
次にリポジトリ系を学ぶのには↓の動画集を一巡。
要はローカル(自分のパソコン)とリモート(インターネット上のgithub、もしくはNAS上のサーバーなど)で、どうやってデータをやりとりしていくのかを覚えられる。
自分はNASを使った完全ローカルで共同開発していくため、Github(ネット)は使わない。
が、リモートリポジトリでデータのやりとりをするという概念的なものはほとんど同じなので、github使わないというひとも1回くらい通しで見ておくのをおすすめ。
この2つの動画集を見終わることには、立派なめがねチルドレンになっている。
git初心者の自分が躓いたところ
git初心者の自分がSourcetreeの操作で圧倒的につまずいたのが、下の3つ。
「Ctr+Zでもどってよーー!!」と悲観しても操作は戻らない。
- コミットしちゃったのをコミットする前に戻したい
- ファイル修正しちゃったことで履歴に出ている「uncommitted changes(コミットしていない変更があります)」を消したい(破棄)
- プル/プッシュできない
反対に言えば、この3つの対処さえ覚えておけばgit初心者でもだいたいどうにかなる。
コミットしちゃったのをコミットする前に戻したい

【例】ヒストリー(履歴)で一番上に上がっているコミット(DemoAでのコミット)を一個前(コミットのタイトル)に戻したいとき。
- 左側のブランチが正しいブランチになっているか確認
今回であればDemoAブランチ - 戻りたい一個前のコミット(コミットのタイトル)のところにマウスカーソルを合わせて、右クリックでウィンドウを出す。
その中にある「現在のブランチをこのコミットまでリセット」をクリック。 - すると、DemoAのブランチがmainのブランチと同列になり、一番上がコミット前の「uncommitted changes(コミットしていない変更があります)」に戻っている。
ファイル修正しちゃったことで履歴に出ている「uncommitted changes」を消したい(破棄)

※修正したファイルをステージにあげてしまっていたら、下の作業ツリーに戻す。
ソースツリーの下の方のウィンドウにある作業履歴ができちゃったファイル(DemoA.txt)を右クリック。
でてきたウィンドウの中から、「ファイルの変更を破棄」をクリック。
すると、ファイルは変更前のデータに戻ってヒストリーの履歴からも「uncommitted changes(コミットしていない変更があります)」が消えてくれる。
修正ミスに気づいて修正するなら、この時点で気づいて「uncommitted changes」を消しておきたい。
プル/プッシュできない
自分だけでなく他の人と一緒に作業する上でプル/プッシュは日常茶飯事なんだが、なぜかエラーがでてプル/プッシュできないときが頻発する。
それでもエラーがでる……。
そんな時は、gitの履歴機能無視で、完全ローカルに変更したファイルのバックアップを取る。
デスクトップとかでいいから、git履歴に干渉されないところにフォルダを作って、消えてほしくない作業済みのデータをそっちにコピペしてバックアップしておく。
その上で、上で説明した「現在のブランチをこのコミットまでリセット」や「ファイルの変更を破棄」を使って履歴を戻す。
すると、該当箇所まで戻るとプル/プッシュができるようになる。
gitとは?
となるけど、初心者だから慣れるまでは仕方ない。
ターミナル(mac)/コマンドプロンプト(win)の最低限のコマンドは覚えておく
まためがね布教かよと思われるかもだが、git初心者だからこそ、ターミナル(mac)/コマンドプロンプト(win)のコマンドは知識としてでいいから最低限覚えておいたほうがいい。
自分はSourcetreeを使うが、他の人はVSコードを使っているかもしれない。
共同開発はgitという機能を、その人がどんなアプリやツールで使っているのか多種多様だからだ。
その中でターミナル(mac)/コマンドプロンプト(win)は、基本操作の土台となる部分になるし、現在もコマンド直書きで操作している人はたくさんいる。
自分は使わないとしても、ほかの人はどういう風にしているのか把握しておくことは、共同開発をする上で非常に大事である。
とはいっても、自分は「ターミナル(mac)/コマンドプロンプト(win)」はできるだけ使いたくないのでSourcetreeを使う。
過去に大事なフォルダをrmで吹っ飛ばしたトラウマがあるので、できるだけ使いたくない。
コマンド的にはディレクトリ移動「cd」ーチェンジディレクトリと、フォルダをポイってターミナルやコマンドプロンプトに入れると、ファイルパスを自動で入れてくれるのが便利。
ファイルパスをいちいち調べて打ち込むのって、結構面倒だからね。
あとは……仕事上、macとwinの両方で仕事するので、両方のコマンドを覚えるのがしんどい……
Sourcetree操作ででたエラーめも

Sourcetreeを操作中に遭遇したエラーと対処法めも。
エラー文言と、その原因、対処法を備忘録としてめもっていく。
ファイルパスもしくはアクセス権のエラー
git –no-optional-locks -c color.branch=false -c color.diff=false -c color.status=false -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree fetch origin
fatal: ‘リモートリポジトリのパス’ does not appear to be a git repository fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
Completed with errors, see above
エラー内容訳:リモートリポジトリのパスが間違ってる。
アクセスしようとしているリモートリポジトリへのファイルパスが違っていたり、リモートリポジトリへのアクセス権がないパターン。
対処法⇒
ターミナルを出して、ファイルパスを知りたいフォルダをえいっ!てドラック&ドロップする。
パスが出てきたら、そのパスをSourcetreeのパスにいれる。
パスがでてこなかったら……アクセス権なのかなぁ