「これからはGitの時代だ!」
「Gitが使えないやつは、この先行きていけない!」
なんて、「今更そこですか?」な感じのことを最近ヒシヒシと感じます。
Gitを薄く浅くなぞっただけで、SourceTree使わないと使えなかったり、結局エラー出てコミットできずにそのままあきらめたりすることもあったり、そんなこんなで「Git怖い…」な私が、しっかり身につけられるように、やってみることにしました。
GitHubアカウント作成でrecaptchaに2日連続で阻まれた
まずはGitHubアカウント必要ですよね。
ということで、GitHubアカウント開設さくっとやってしまい…開設…できない…。

情報を入力して、紐をつなげるreCaptchaのクイズにも答えたにも関わらず、エラー。
「ブラウザを変えてお試しください」という感じだったので、翌日別のブラウザから再チャレンジ。
またも紐をつなげるreCaptchaのクイズに満点で正解するも、エラー…。
こう何度も理由がわかりにくい部分で弾かれてしまうと、一気にやる気が無くなってしまいますよね。
「そういえば…」と以前作ったGithubアカウントを思い出して、新しくアカウント作成はやめて、そちらを使うことにしました。
Gitをインストールした
続いて、パソコンへGitのインストール。

これはもう何も迷うことなく、「Download」ボタンからexeをダウンロード。
クリックするだけで、自分のPCにあったインストーラーがダウンロードされるようです。
ダウンロードされたexeを実行してインストール開始。

なんだか躓きそうなところもあったけれど、無事インストール完了しました。
でもちょっとほんとにこのままインストールしていいのかな?と思ったので、後でもう少し詳しく調べています。
初めてのリポジトリを作成、初めてのコミット
さて、Githubアカウント作って、Gitインストールしたら、とりあえずコミットしないと!
ということで、Githubサイトでリポジトリを作成。
で…
どうやってコミットするの?ということですが、まずは、ローカルのリポジトリを決めるところから。
C:\Users\ユーザー名\work\
どこがいいのかよくわかりませんでしたが、ここに置くことにしました。
まずはCloneから
git clone https://github.com/user/repository.git
これで、workフォルダの中にリポジトリ名のフォルダができました。
その中に入っていた、README.mdを編集。
編集が終わったら更新の確認
git status

On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
そういえばブランチとか何も考えてなかったけど、まあとりあえずよし。
README.mdが編集されてるのを確認。
そしたらコミット!
git commit -m "プロジェクト開始"
じつはこの前に、変更をステージングしないといけないのですがすっかり忘れてました。

Author identity unknown
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
コミットしたら、Author identity unknownエラー。
「お前誰だよ」って怒られてしまいました。
git config --global user.email "メールアドレス"
git config --global user.name "名前"
で、登録して再度コミット!

Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 288 bytes | 288.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To https://github.com/username/repository.git
d2bedd5..ceec1a2 main -> main
コミット成功!
Githubのページでも更新を確認して、黒い画面からのコミットができました。
そもそもGitの設定細かくわからないので調べてみた
今回、Gitをインストールするときにいくつかのサイトを参考にしました。
ただ、その中でよくわからなかったのが、「Scalar」ってのが追加されているところ。
「大規模リポジトリ」ってどれくらいが大規模なのかすらわからない。
「OPENSSH」ってなんだ?
参考サイトを見ていると、「そのままNextを押してインストールしましょう」と書いてあるけれど、確かに今までそれに流されてきたけど、実際何を意味しているのか、ちょっと調べてみようかな。
ということで、インストールの項目を1つずつ調べてみました。

- Additional icons
- On the Desktop:デスクトップにGitのアイコンを作成するかどうか
- Windows Explorer integration
- Open Git Bash here:右クリックメニューに「Git Bash here」を追加
- Open Git GUI here:右クリックメニューに「Git GUI here」を追加
- Git LFS (Large File Support)
- 大容量ファイル(画像、動画など)を効率的に管理するための拡張機能
- Associate .git* configuration files with the default text editor
- .gitconfigなどの設定ファイルをデフォルトのテキストエディタで開けるように関連付け
- Associate .sh files to be run with Bash
- シェルスクリプト(.sh)ファイルをBashで実行できるように関連付け
- Check daily for Git for Windows updates
- 毎日自動的にアップデートをチェック
- Add a Git Bash Profile to Windows Terminal
- Windows TerminalにGit Bashのプロファイルを追加
- Scalar (Git add-on to manage large-scale repositories)
- 大規模リポジトリを高速化するためのツール
まったくもって意味が分からない。
Windows11 で右クリックメニューが使いにくくなってしまったので、
「Windows Exploler integration」はチェックを外すことを推奨します
ということで、これは外しておきました。

少し進んで、エディターの選択。

これ何も考えず、vimにしたんですが、VS Codeとか選択肢にあったんですかね…。
失敗したわ…どこで変えたらいいのやら…。
続いてリポジトリ。

何やらmasterリポジトリじゃなくて、mainリポジトリに変わっていくらしいので、先どってmainリポジトリにしました。
続いて、PATH環境変数の設定。
これよくわからないですよね。PATHが通ってないとかなんとか言われたりして、適当に追加したりするけど、いまいち何やってるのかはわかっていません。

- Use Git from Git Bash only (Git Bashのみで使用)
- 最も安全だけど制限的なやつ
- Git BashからしかGitコマンドを実行できない
- WindowsのコマンドプロンプトやPowerShellでは使えない
- Git from the command line and also from 3rd-party software
- Git Bash、コマンドプロンプト、PowerShellすべてで使える
- SourceTreeなどのサードパーティ製ツールもGitを認識できる
- 必要最小限のツールのみPATHに追加されるので安全
- Use Git and optional Unix tools from the Command Prompt
- 上級者向け
- GitだけでなくUnixツール(find、sortなど)もPATHに追加
Windowsの標準コマンド(findやsort)を上書きしてしまう可能性がある
こんな良くわからない設定は、真ん中の一番いい感じの一択。
次に、SSHクライアントの選択。

Use external OpenSSHのほうは、独自にSSHの設定をしないといけないようなので、問題外。
バンドルされてるほうを利用します。
SSHの次はSSL。

Windowsって書いてあるし、後者を選んでしまいそうだけど、企業向けらしい。
Windowsの証明書ストアを使用するということで、これまたよくわからにので、バンドルされてるやつ。
そして、私が悩むのが改行コードの設定。

なんの変更もしていないの、FTPソフト使ってダウロードしてきたら、変更マークいっぱい!
何かと思ったら改行コードが違う。
改行コード揃えたら変更マーク消えるけど、結局これはコミットするの?しないの?
なんて、悩むことも時々あったり。
- Checkout Windows-style, commit Unix-style
- チェックアウト時:LF → CRLF に変換(Windows用)
- コミット時:CRLF → LF に変換(リポジトリはUnix形式)
- Checkout as-is, commit Unix-style
- チェックアウト時:変換しない
- コミット時:CRLF → LF に変換
- Checkout as-is, commit as-is
- チェックアウト時もコミット時も変換しない
2番目のはMacやUnixで推奨設定らしい。
Windows環境は1番目がおすすめらしいですが、そういう部分気にしたくないので、何もしない3番目を選びました。
続いて、GitBashを使うときのターミナルの選択。
いやそもそもGitBashって何よ…な感じなのですが。

- Use MinTTY (the default terminal of MSYS2)
- こちらがより高機能なターミナル
- ウィンドウサイズを自由に変更できたり、テキストを自由な形で選択できる
(え?もう一方はできないの?) - 日本語などが正しく表示される
- Windowsのコンソールプログラム(interactive Pythonなど)を使う場合はwinptyコマンドが必要
- Use Windows’ default console window
- Windowsの標準コマンドプロンプト(cmd.exe)を使用
- Windowsのコンソールプログラムがそのまま動く
- 日本語表示に追加設定が必要
- ウィンドウのリサイズが制限される
- テキスト選択が矩形のみ
何に使うのかよくわかってないけど、前者一択かな。
次は、プルしたときの動作。
あぁ、Fast forwardとかリベースとか聞いたことはある。
でも何のことかはわからない。

- Fast-forward or merge
- Fast-forward可能な場合 → Fast-forwardする(履歴が一直線)
- Fast-forward不可能な場合 → マージコミットを作成
- 柔軟で、ほとんどの状況に対応できる
- マージコミットが増える可能性がある
- Rebase
- ローカルのコミットをリモートの最新コミットの上に「付け替える」(リベース)
- Fast-forward可能な場合はそのまま
- 履歴が一直線で綺麗になる
- 慣れていないと混乱しやすい、共有ブランチでは危険
- Only ever fast-forward
- Fast-forwardできる場合のみpullを実行
できない場合はエラーで停止 - 意図しないマージを防げる
- pullが頻繁に失敗する、手動での解決が必要
- Fast-forwardできる場合のみpullを実行
2番目を選ぶのがよさそうな気もするけど、結局Fast forwardとリベースがなんなのかわかってないので、とりあえず1番目を選択。
次は認証情報をどうするかで、Noneにすると、プッシュやプルのときにいちいち認証情報を入力しないといけないらしいので、前者一択。
セキュアで現代的な認証方式らしいので。

最後にオプションの設定。

- Enable file system caching
- ファイルシステムのデータをメモリにキャッシュする
- Gitのコマンド実行速度が大幅に向上
- WordPressプロジェクトのような中〜大規模なリポジトリに最適
- Enable symbolic links
- シンボリックリンクを有効化
- 管理者権限(SeCreateSymbolicLink)が必要
- WordPress開発では通常使わない
ということで、前者だけ選択。
これで、インストールの流れは終わって、無事インストールが解されるわけです。

結局、何を言ってるのかわからない部分が多いし、納得して設定できてるかというとそうでもないけれど、無事にGitがインストールされたので、良しとしておきます。
エディタの設定のように、あとあと変更したくなったら調べていけばなんとかなるでしょう。

コメントを残す