概要
GitからGitHubにプッシュ・プルする手順。最初にリポジトリーを作成する場合、GitHub上にあらかじめリモートリポジトリーを作成しておいて、これをローカルにgit clone
で取り込む。
パスワード認証について
パスワード認証が2段階になり、Personal Access Token (PAT)を用いるようになったため、リモートでGitHubに接続する際のパスワード認証ではPATを入力することとなっている。
Gitのデフォルトブランチの変更
Gitのデフォルトブランチ名はmaster
だが、GitHubがデフォルトブランチ名をmain
としたことから、Gitでもmaster
からmain
に変更するよう設定。
1 2 3 4 5 6 7 8 9 |
[vagrant@localhost ~]$ git config --global init.defaultBranch main [vagrant@localhost ~]$ cat .gitconfig [user] name = taustation email = taustation@gmail.com [color] ui = auto [init] defaultBranch = main |
手順
- GitHubで共有するクローンを空の状態で作成
- GitでGitHubのリポジトリーをクローン
- Gitでローカルの開発過程をコミット
- GitからGitHubにコミット結果をプッシュ
- 以後、リモートリポジトリーからローカルにプル
GitHubで新しいリポジトリーを準備
GitHub上に新しいリポジトリーを作成。
- リポジトリー名:
test
- Add a README fileを選択
- 内容は1行で
"My very first repository"
リモートリポジトリーのクローン
ローカルのワーキングディレクトリーにGitHubのリポジトリーをクローン。
1 2 3 4 5 6 7 8 9 |
[vagrant@localhost git]$ git clone https://github.com/taustation/test test Cloning into 'test'... Username for 'https://github.com': taustation Password for 'https://taustation@github.com': remote: Enumerating objects: 6, done. remote: Counting objects: 100% (6/6), done. remote: Compressing objects: 100% (2/2), done. remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (6/6), done. |
GitHubで作成したREADMI.md
ファイルの内容が確認できる。
1 2 3 4 5 |
[vagrant@localhost git]$ cd test [vagrant@localhost test]$ ls README.md [vagrant@localhost test]$ cat README.md My very first repository |
ローカルでの変更とコミット
ワーキングディレクトリーに新たにsample.txt
ファイルを追加する。
1 2 3 4 5 6 7 8 |
[vagrant@localhost test]$ vi sample.txt [vagrant@localhost test]$ ls -Al 合計 8... drwxrwxr-x. 8 vagrant vagrant 163 8月 5 16:23 .git -rw-rw-r--. 1 vagrant vagrant 25 8月 5 16:23 README.md -rw-rw-r--. 1 vagrant vagrant 25 8月 5 16:38 sample.txt [vagrant@localhost test]$ cat sample.txt 新規ファイル追加 |
そして追加したファイルをステージング、コミット。
Laravelなどのフレームワークの場合、.gitignore
で指定されたファイルも併せて環境ごとpushするには、ステージングで以下のオプションを指定する。
git add -f .
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[vagrant@localhost test]$ git add . [vagrant@localhost test]$ git status On branch main Your branch is up to date with 'origin/main'. Changes to be committed: (use "git restore --staged <file>..." to unstage) new file: sample.txt [vagrant@localhost test]$ git commit -m "Added sample.txt" [main b3f7d95] Added sample.txt 1 file changed, 1 insertion(+) create mode 100644 sample.txt |
GitからGitHubへのpush
git push
でコミットされた内容をプッシュ。
git push -u [URL] [branch]
[URL]
はGitHubのリポジトリーのURLで、[branch]
はリモートリポジトリーのブランチ。GitHubからcloneで複製したディレクトリー内の場合、git push
のみで実行可能。
コマンドを入力するとユーザー名とパスワードを聞かれるので、GitHubのユーザー名とパスワードを入力する。
1 2 3 4 5 6 7 8 9 10 |
[vagrant@localhost test]$ git push Username for 'https://github.com': taustation Password for 'https://taustation@github.com': Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 312 bytes | 312.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To https://github.com/taustation/test 246a434..b3f7d95 main -> main |
これでローカルでの変更結果がGitHubのリポジトリーに反映され、GitHub上で変更結果を確認できる。
GitHubからGitへのpull
他で変更された可能性のあるリポジトリーで作業を開始する場合、リモートリポジトリーからプルする。
以下はGitHub側でREADME.md
の内容を編集した後に、ローカルでプルしている例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[vagrant@localhost test]$ git pull Username for 'https://github.com': taustation Password for 'https://taustation@github.com': remote: Enumerating objects: 8, done. remote: Counting objects: 100% (8/8), done. remote: Compressing objects: 100% (4/4), done. remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (6/6), done. From https://github.com/taustation/test b3f7d95..d257198 main -> origin/main Updating b3f7d95..d257198 Fast-forward README.md | 2 ++ 1 file changed, 2 insertions(+) |