30 | GitHub アカウントを登録する#
登録ページ:https://github.com/signup
メールアドレスを使用して登録できます。
31 | 公私鍵を設定する#
シナリオ:ssh プロトコルを使用したいが、http/https プロトコルではない。
利点:ユーザー名とパスワードを入力する必要がなく、公私鍵の一致で認証が成功する。
手順🌟:GitHub アカウントに新しい SSH キーを追加する——Github Docs
- ローカルで公私鍵を生成👉公鍵を Github にアップロード
SSH の原理について書いた記事:SSH 無パスワードログインの実現と本質的考察——DoubleLLL3
32 | GitHub に個人リポジトリを作成する#
手順🌟:リポジトリを作成する——Github Docs
❗️:
- 所有者は所属する組織を選択することもできます
- 公開は外部に見えるだけで、コミット権限は別途設定する必要があります
- README ファイルはリポジトリが検索エンジンにインデックスされるのに役立ちます
- ローカルに README ファイルがすでにある場合は、Add a README file のチェックを外すことをお勧めします。衝突を避けるためです
- ライセンス:ライセンスのないコンテンツはデフォルトで著作権保護されています
- MIT ライセンスは緩やかなライセンスで、他の人があなたのコードを使って何でもすることを許可しますが、あなたの所有権を保証し、コード使用によるリスクを負う必要はありません
- 参考:自分の Github プロジェクトにオープンソースライセンスを選ぶ方法—— 知乎
33 | ローカルリポジトリを GitHub に同期する#
手順:リモートサーバーを追加 -> プルしてマージ❗️-> プッシュ
リモートサーバーを追加:
git remote add github [email protected]:doubleLLL3/git_learning.git
ここで、github
はリモートエイリアスで、後に対応する https または ssh アドレスを続けます。Github でコピーできます。
前のセクションで、最後に MIT ライセンスを追加してリポジトリを作成しました。(次の文の伏線を張りました)
git remote -v
でリモートサーバーのリストを確認:
追加成功!
この時点で、git push github --all
を実行すると、ローカルから直接プッシュするとエラーが発生します:
master ブランチを除く他のブランチはすべて成功しました。
Git はエラーに明確なメッセージを提供します:先にプルする必要があります。
PS:リモートブランチがローカルブランチの祖先でない場合、二つは fast-forwards ではありません。逆に、二つは fast-forwards の関係であり、一般的には rebase
または merge
で解決する必要があります。
したがって、先にプルします: git fetch github
リモートの github の master ブランチを成功裏にプルしました。この時点で gitk --all
でブランチ図を確認:
github 側の master ブランチはローカルの master ブランチと関係を築いていないことがわかります。
この時点で、リベースまたはマージで二つの master ブランチを関連付けます:
git checkout master
:まず master ブランチに切り替わっていることを確認します
git merge github/master --allow-unrelated-histories
:リモートの master ブランチをローカルの master ブランチにマージし、コミットメッセージを入力します。
⚠️:--allow-unrelated-histories
を指定する必要があります。これは明示的にマージする二つのブランチが関連していないことを許可します。
この時点で再度 gitk --all
でブランチ図を確認:
関係が成功裏に確立され、この時点で master の最新のコミットには二つの親コミットがあります。
🌟 : git pull
は git fetch
と git merge
の二つのステップを含み、また git pull --rebase
は git fetch
と git rebase
の二つのステップを含みます。
最後に master ブランチをプッシュします: git push github master
私たちの Github リポジトリをもう一度見てみましょう:
新しく追加されたファイルはとても見覚えがありますね~
これで、私たちはすでに Github とやり取りをしました!