GitHubを使ってプログラムをたまに管理しています。たまにしか使わないこともあって、コマンドを忘れることも多く備忘録としてメモしておきます。
いつかきちんと理解する際には記事「Git でよく使われるコマンドにイラストによる説明を加えて1枚のチートシートにまとめてみた」を参考にしようと考えています。
いつも間にかデフォルトブランチ名が変更されていました。このせいで大きく混乱しました・・・(2022/8追記)
前提と環境
- Ubuntu 18.0.4 LTSを使っています
- GitHubのアカウント作成済
- ローカルにGitインストール済
最初からGitHubで管理する場合の手順
最初からGitHubで管理する場合の手順を載せておきます。
1. GitHubにリポジトリ作成
GitHubにブラウザでログインし、「New」ボタンを押してリポジトリを作成します。
リポジトリ名などの情報を入力して、「Create Repository」ボタンを押します。
コピーアイコンを押して後で使うリポジトリのURLをクリップボードにコピーしておきます。
2. リポジトリのクローン
ターミナルからリポジトリをローカルにクローンします。
git clone <コピーしたリポジトリのURL>
3. 開発物追加
開発をしてプログラムが作成されたと仮定して"test.py"という空ファイルを作ります。
touch test.py
4. add
git管理にすべてを追加します。
git add .
GitHubに反映させたくないファイルやディレクトリがある場合には、".gitignore"というファイルを使って設定しますadd の前に設定しておきましょう。 また、再設定させる場合には「.gitignoreを再反映をさせる方法」を見てください。
touch .gitignore
.gitignoreのパターンは以下のとおりです。記事「.gitignore の書き方」参照。.gitignoreテンプレートを参考にすると捗ります
# 特定拡張子の除外(*は任意の文字のワイルドカード)
# .python cacheファイルの除外
*.pyc
# フォルダ除外
.idea/
# 特定ファイル名の除外
test.py
# フォルダ内の特定ファイル名の除外
test/test.py
5. コミットとPush
コミット時にコメントを追加。
PushをしてGitHubに反映させます。
git commit -m "Comment"
git push origin main
プロプラム作成後にGitHubに保存したいと思った場合
開発中/後にGitHubに保存したいと思った場合の手順です。
1. GitHubにリポジトリ作成
これは「最初からGitHubで管理する場合の手順」と同じです。
2. 初期化
開発物のルートディレクトリでinitします。
# From root directory
git init
3. リモートリポジトリの追加
リモートリポジトリを追加します。GitHubのリポジトリ画面でコピーしたURLを使います。
git remote add origin <コピーしたリポジトリのURL>
4. Push
一度ローカルの内容をPushします。
git add .
git commit -m "comment"
git push origin main
これをしないと、以下のエラーが出ました。
5. Pull
追加したリモートリポジトリであるGitHubからPullをします。
git pull
6. Merge
Pullした内容とローカルリポジトリをマージします。Mergeしたことで、GitHubで登録した"README.md"がローカルに反映されます。
正直なところ、処理内容を正確に理解していないのですがこれをしないとPushでGitHubに反映しようとする時にrejectエラーが起きます。
記事「初めてGitHubリポジトリにpushしたらrejectedエラーになったときの対応メモ」を参考にしました。
git merge --allow-unrelated-histories origin/main
7. add
git管理にすべてを追加します。.gitignoreでの設定に関しては「最初からGitHubで管理する場合の手順」と同じです。
git add .
7. コミットとPush
コミット時にコメントを追加。
PushをしてGitHubに反映させます。
git commit -m "Comment"
git push origin main
その他
.gitignoreを再反映をさせる方法
Gitの追跡対象にした後に、「やっぱりいらなかった」と思うことは多々あります。その場合、インデックスからファイルを削除することで追跡対象から除外されます。
git rm --cached <FILE_NAME>
空ディレクトリを作る方法
logファイル保存などのために空ディレクトリを作っておきたい場合があります。その場合は、空ディレクトリに以下の".gitignore"ファイルを置いておきます。
記事「空のディレクトリを維持するための、 .gitkeep と .gitignore の使い分け」を参考にしました。
# .gitignoreのみが必要。
*
!.gitignore
SSHの設定をしていない場合
SSHでのアクセスエラーが出たことがありました。
git@xxxx.xxx: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
こちらを参考に解決しました。Windowsだったので、"config"ファイルは不要でした。
gitでPlease make sure you have the correct access rights and the repository exists. が出た時の対処法