Git&GitHub備忘録
まずはシェルにgitコマンドを受け取ってもらう。
![](https://assets.st-note.com/img/1662501825909-oSA7UMis9t.png?width=1200)
その結果、上図のような出力が得られていれば、gitがインストール済み、ないと言われれば下記のコマンドでインストールする
sudo apt install git
次にユーザの設定を行う.
git config --global user.name "hogehoge"
git config --global user.email "hoge@hofe.com"
エディターの設定を行って、catで設定できてるか確認する
![](https://assets.st-note.com/img/1662502297466-BD3wSdb5Nq.png?width=1200)
GitHub関連の設定
鍵の設定をする
ls .ssh
上記のコマンドで下図の黄色でハイライトされた2つのファイルが無いことを確認、あれば必要なし、なければ以下に示す手続きが必要
![](https://assets.st-note.com/img/1662635670087-mXnCSozSKU.png)
ssh-keygen
上記のコマンドで鍵を作成可能、色々聞かれるけど、
ぜんぶEnterを押しておけば、大丈夫
公開鍵をGitHubに登録する
右上のアイコンからsettingを選ぶ
ssh&GPG keyへいく
SSH keysのNew SSHkeyを押す
適当にタイトルをつける
catで下図のように公開鍵の中身を確認する
公開鍵を貼り付ける
![](https://assets.st-note.com/img/1662635983085-dkaPtJJAoN.png?width=1200)
![](https://assets.st-note.com/img/1662636174783-rSBtuAUx0x.png?width=1200)
ファイアウォール回避の設定
ホーム下の.ssh/configというファイルに記述を追加していく
vi ~/.ssh/config
上記のコマンドでvimで編集していく
その中に下図の設定を書き込む
![](https://assets.st-note.com/img/1662636531882-wXrIQ3ZJvu.png)
GitHubへのコードの保存
リポジトリの作成
右上の”+”マークを押して、"New repository"を選択
必要事項を記入
"Add a README file”にチェック
ライセンスを設定
createする
リポジトリを手元にコピー
codeからsshタブ、コピー
git clone "コピーしたやつ"
リポジトリにコードを追加
クローンしたリポジトリにプログラムをおいてみる
![](https://assets.st-note.com/img/1662637478705-aFRb0jIXTZ.png)
記録の対象としてコードを以下のコマンドで選択
その下の行のコマンドで選択されているか確認できる
git add plus_stdin
git status
以下のコマンドでリポジトリにコードがコメントと共に追加される
これでコミットができた状態
下の行でコミットできたか、ログを確認できる
git commit -m "Add a command"
git log -n 1
GitHubへの反映
手元のリポジトリをGithubのリポジトリへ転送
プッシュする
下記のコマンドでプッシュできる
git push
GitHubの画面を確認するとコードが追加されている
ブランチについて
現在のブランチを確認する
最初は「main」だけのはず、以下のコマンドで確認する
ただ、このコマンドはGitHubからクローンしてきた、
リポジトリのディレクトリで実行しないとエラーでる
git branch
基本的にmainブランチに動くコードを置いておく
開発用ブランチをつくっていく、
下図のようdevという名称のブランチを作成する
![](https://assets.st-note.com/img/1662674676677-xW53znSnpz.png)
devブランチで開発したコードをGitHubにコミットとプッシュする
git add -A
git status
git commit -m ""
![](https://assets.st-note.com/img/1662675293964-J8YKJ80Iab.png)
コミットまで終わったら、pushする、このとき、git pushのみだと
どこにpushするかわからないと怒られることがある。
だから、以下に示すコードのようにdevにpushしてねと明示してあげる
git push --set-upstream origin dev
ブランチの観察
下記コマンドでブランチを観察できる
git log --graph
devブランチでの開発
まずメインブランチに戻る
次にどのブランチにいるか確認
そのあと、mainとdiffのどこが違うか確認
devの中身をmainにマージ
プッシュする
git switch main
git branch
git diff main dev
git merge dev
git push
![](https://assets.st-note.com/img/1663890277332-lL8FqJYOk9.png)
![](https://assets.st-note.com/img/1663890387031-XBleH2A04r.png)
![](https://assets.st-note.com/img/1663890494485-rVRrinQX0c.png)
コンフリクト
コンフリクトを起こす準備をする
新しいディレクトリを用意
その中でクローンする
わかりやすいようにAとBというディレクトリにわける
mkdir tmp
cd tmp
git clone git...
![](https://assets.st-note.com/img/1663891163782-i1XPKGL7to.png)
コンフリクトを起こす
リポジトリAで変更してpush
中身を、数字の処理部分を関数に変更
リポジトリBで別の変更
![](https://assets.st-note.com/img/1663892697016-PCbvQjQBHn.png)
![](https://assets.st-note.com/img/1663892971045-rKUk7r5MZa.png?width=1200)
コンフリクトを解消
![](https://assets.st-note.com/img/1663893333427-ZMxckAAL0d.png)
![](https://assets.st-note.com/img/1663893367818-d31kfkzKhK.png)
過去のコード取り出し
いったんディレクトリAに戻る
Add a command
のところまでもどる、git logで見れるcommitの横にある番号で戻る
その番号の最初の何文字かを使う
確認するともとに戻っている
git log
![](https://assets.st-note.com/img/1663894468663-EqkPX33Zyy.png)
![](https://assets.st-note.com/img/1663894538524-DxWigvzHep.png)
状況を確認する
git branch
![](https://assets.st-note.com/img/1663894633846-nJQQkyCXJC.png)
![](https://assets.st-note.com/img/1663894746497-5TiAeyifDP.png)
ローカルリポジトリだけ作ってるものをGitHubにup
![](https://assets.st-note.com/img/1663895010550-5yH6YenjfT.png)
この時点ではGitHubにない
git initでリポジトリとして認めてもらう手続きをしてるはず
この状態でgit pushしても以下のエラーがでる
GitHub側で作業が必要、コマンドラインからでもできるけど慣れてからにする
![](https://assets.st-note.com/img/1663895139745-XsgsXulLQk.png?width=1200)
手順
1.いったんGitHub側で同じ名前のリポジトリを作成する
※ただこれだけだといま作ったリモート側と手元のローカル側の結びつきがない
2.git remote add origin <リポジトリ>で結び付け
※リポジトリはGitHub上のコードからコピーできるURL的なやつ
3.UbuntuのVer.とか古いと、ローカルで作った場合、ブランチの名称がmasterになってるから奴隷制度問題あるので、switchを使って名称をmainに変更する
4.masterを削除
5.git pullためして、まだ同じものと認めないよと怒られるので、対処していく
※git pull --allow….でvim立ち上がるけど何もせずにそのまま閉じればいい":wq"
6. git pushでめでたくGithubにもあがる
![](https://assets.st-note.com/img/1663895269362-4bjhB1InHI.png?width=1200)
![](https://assets.st-note.com/img/1663895805805-8sa92Is3k9.png)
![](https://assets.st-note.com/img/1663896209474-GfR4tzrfhD.png?width=1200)
リポジトリの名前変更
リモートでは、GitHub上のsettingから変える
ローカルはvim .git/config
気になる場合はディレクトリの名前を変更する
例. mv hoge_x hoge_x2
![](https://assets.st-note.com/img/1663939279577-zkXac4pbQy.png)
この記事が気に入ったらサポートをしてみませんか?