「これからはGitの時代だ!」
「Gitが使えないやつは、この先行きていけない!」
なんて、「今更そこですか?」な感じのことを最近ヒシヒシと感じます。
Gitを薄く浅くなぞっただけで、SourceTree使わないと使えなかったり、結局エラー出てコミットできずにそのままあきらめたりすることもあったり、そんなこんなで「Git怖い…」な私が、しっかり身につけられるように、やってみることにしました。
GitHubアカウント作成でrecaptchaに2日連続で阻まれた
まずはGitHubアカウント必要ですよね。 ということで、GitHubアカウント開設さくっとやってしまい…開設…できない…。
https://github.co.jp
情報を入力して、紐をつなげる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」はチェックを外すことを推奨します
[Git] Git for Windowsのインストール #Git – Qiita
ということで、これは外しておきました。
少し進んで、エディターの選択。
これ何も考えず、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が頻繁に失敗する、手動での解決が必要
2番目を選ぶのがよさそうな気もするけど、結局Fast forwardとリベースがなんなのかわかってないので、とりあえず1番目を選択。
次は認証情報をどうするかで、Noneにすると、プッシュやプルのときにいちいち認証情報を入力しないといけないらしいので、前者一択。
セキュアで現代的な認証方式らしいので。
最後にオプションの設定。
Enable file system caching
ファイルシステムのデータをメモリにキャッシュする
Gitのコマンド実行速度が大幅に向上
WordPressプロジェクトのような中〜大規模なリポジトリに最適
Enable symbolic links
シンボリックリンクを有効化
管理者権限(SeCreateSymbolicLink)が必要
WordPress開発では通常使わない
ということで、前者だけ選択。
これで、インストールの流れは終わって、無事インストールが解されるわけです。
結局、何を言ってるのかわからない部分が多いし、納得して設定できてるかというとそうでもないけれど、無事にGitがインストールされたので、良しとしておきます。
エディタの設定のように、あとあと変更したくなったら調べていけばなんとかなるでしょう。