今まで学んだ Git 関連の内容を整理してみようかな。
一、インストール
- Windows に Git をインストールする
Git の公式サイトからダウンロードしてインストールしてね: https://git-scm.com/download/win
インストールが終わったら、一度 Git Bash を実行しておこう。
- Linux に Git をインストールする
Debian:sudo apt-get install git
Fedora:dnf install git
CentOS:yum install git
その他はここを参考にして: https://git-scm.com/download/linux
- Mac OS X に Git をインストールする
一つ目は homebrew をインストールして、そこから Git を入れる方法。詳しいやり方は homebrew のドキュメントを見てね: http://brew.sh/
二つ目は AppStore から直接 Xcode をインストールする方法。Xcode には Git が内蔵されているけど、デフォルトではインストールされていないから、Xcode を起動してメニューの Xcode - Preferences から Downloads を探して Command Line Tools の Install をクリックすれば完了だよ。
Xcode は Apple 公式の IDE で、めちゃくちゃ多機能。Mac や iOS アプリ開発には必須のツールだし、しかも無料だよ。
二、設定
インストールが終わったら、自分のユーザー情報を設定する必要があるよ。
| |
Your Name は自分の名前に、email@example は自分のメールアドレスに書き換えてね。
三、リポジトリの作成
新しい Git リポジトリを作るには、ローカルで作るか、リモートリポジトリからクローンするかのどっちかだよ。
ローカルリポジトリ
フォルダを選んで、このコマンドを実行して。
| |
これでそのフォルダが Git で管理できるリポジトリになるよ。 ./.git フォルダの中身(普通は隠しファイル)は Git がバージョン管理に使うものだから、むやみにいじらないようにね。
自分のリポジトリをクローンする
個人の設定で SSH 公開鍵を追加してね: SSH and GPG keys 。そうすれば SSH で直接クローンできるようになるよ。例えばこんな感じ。
| |
修正が必要なリポジトリをクローンする
リポジトリのオーナーに共同作業者として招待されたり、自分の鍵をリポジトリの Deploy keys に追加してもらえれば、そのリポジトリの編集権限がもらえるよ。その時は SSH でクローンして、修正してコミットすればOK。例えばこんな感じ。
| |
誰かのリポジトリに貢献する
こういう時は大体、まず fork して、ローカルで直してから Pull request を送るんだ。詳しくはここを参考にしてね。
権限のないリポジトリをクローンする
HTTPS でクローンすればいいよ。例えばこんな感じ。
| |
リポジトリのリンクは リポジトリのページ にアクセスして、 Code ボタンを押せば確認できるよ。
四、ファイルのコミット
いろいろ作業してファイルが増えたら、リポジトリにコミットしよう。
ファイルをローカルリポジトリに追加するよ。
| |
追加が終わったらコミットだ。
| |
some details の部分に、今回のコミットで何をしたかを書くんだよ。
コミット規約
コミットメッセージは自由に書けるけど、ある程度のルール(規約)に従ったほうがいいよ。よく使われるのはこんな感じ。
| 接頭辞 | 適用シーン |
|---|---|
| feat | 新機能の導入(例えば、新しくアイコンアップロードのAPIを書いた時など) |
| fix | バグ修正 |
| refactor | コードのリファクタリング(バグ修正でも新機能追加でもない書き直し) |
| chore | 雑用。 .gitignore の修正や、ライブラリのバージョン更新など |
| docs | ドキュメントのみの変更(README, JavaDoc など) |
接頭辞の後に、具体的にどのモジュールを直したか書くこともあるよ。例えばこんな感じ。
| |
ファイルを無視する
リポジトリに入れたくないファイル、つまり Git に変更を追跡させたくないファイルがあるなら、 .gitignore ファイルを作って、そこにファイル名を1行ずつ書けばいいよ。
| |
無視設定していても git add -f test.pyc で強制的に追加することもできるよ。
既存のテンプレートもあるから参考にしてみて: https://github.com/github/gitignore
.gitignoreファイルを修正して反映させたいときは、一度キャッシュを消す必要があるよ。
1 2 3 4 5 6# キャッシュを削除 git rm -r --cached . # ファイルを再度スキャン git add . # コミット git commit -m "update .gitignore"
五、ログと取り消し
git status でリポジトリの状態を確認できるよ。
git diff で前回のコミットからの変更点を確認できるよ。
git log で履歴(ログ)を確認できるよ。情報が多すぎるときは --pretty=oneline をつけると commit ID が見やすくなるよ。
commit ID の後に HEAD -> master とあれば、それが最新のコミット、つまり今のバージョン。Git では HEAD で今のバージョンを表して、一つ前は HEAD^、二つ前は HEAD^^、60個前なら HEAD~60 って書くんだ。
一つ前のバージョンに戻す: git reset --hard HEAD^
指定したバージョンに戻す:
| |
もし間違えて戻しすぎちゃっても、コマンドラインの画面は閉じないで! git reflog でコマンド履歴を見て、さっきのバージョン番号を探して戻せばいいから。
六、リモートへのプッシュ
コードをリモートリポジトリに送るには、まず紐付けが必要だよ。でもリモートからクローンした場合は最初から紐付いてるから、何もしなくて大丈夫。
リモートリポジトリと紐付ける
ローカルでリポジトリを作って GitHub に上げたいときは、GitHub で新しい repo を作ってから、ローカルリポジトリと紐付けよう。
| |
コードをプッシュする
push コマンドを使って送信するよ。例えばこんな感じ。
| |
これはリモートリポジトリの master ブランチにプッシュするっていう意味だよ。
ブランチ名の変更
ここで注意してほしいのは、Git で作ったリポジトリのデフォルトブランチ名は master だけど、GitHub は main なんだ。GitHub に合わせたいなら、ローカルのブランチ名を変えちゃおう。
| |
最初からデフォルトのブランチ名を main に設定しておくこともできるよ。
| |
デフォルトのブランチ
あと、デフォルトの送信先を origin の main ブランチに設定しておくこともできるよ。
| |
こうしておけば、次からはこれだけで済むんだ。
| |
紐付けのやり直し
このコマンドでリモートリポジトリの情報が見れるよ。
| |
もし紐付けを間違えちゃったら、このコマンドで削除できるよ。
| |
大体リモート名は origin だから、削除コマンドは git remote rm origin になるね。
七、ブランチ管理
Git のブランチは、機能開発やバグ修正、新しいアイデアの実験を独立して行うための仕組みなんだ。ブランチを使えば、メインのコードに影響を与えずに自由に作業できるよ。
すべてのブランチを表示: git branch
ブランチを作成: git branch new_branch
ブランチに切り替え: git checkout new_branch
ブランチに切り替え(新しい書き方): git switch new_branch
ブランチにプッシュ: git push origin cheny
例えば検索機能を追加する場合、まずメインブランチのコミットが終わったら新しいブランチを作るんだ。
| |
このコマンドは、ブランチ
searchを作って、そのまま切り替えるっていう意味だよ。
新しいブランチ search で修正とテストが終わったらコミットする。
| |
それからメインブランチの main に戻る。
| |
ブランチ search をマージする。
| |
(お好みで) search ブランチを削除する。
| |
八、サーバーの構築
九、その他
GitLab と GitHub を同時に使う: document-library/Git-study.md
参考記事
ローカルリポジトリと GitHub リポジトリを接続する方法 - CSDNブログ