IT

github使い方

2022年2月19日

今更ながら、githubの使い方を再度確認しようと思い、自分なりにまとめてみました。

リモートリポジトリの作成

左上のgithubのロゴマークをクリックして、以下のような画面が出てくるので、
緑ボタンの「New」をクリックする。

 

そして作成したいリモートリポジトリ名を入力し、
誰でもアクセスできるリポジトリにしたいのであれば、Publicに、
自分だけがアクセスできる(権限付与で他ユーザーも)ようにしたいのであれば、Private
にチェックを入れて作成する。

 

サーバなどからgithubのリモートリポジトリに接続できるようにする

git
user_name: ユーザーID(ログインする際に必要なユーザーID)
password: githubの自身のアクセストークン(※ ログインする際のパスワードではない)

これでサーバやローカルからgithubへアクセスできるような環境が作成された。
今後はgitのコマンドで自由に操作していくことができます。

 

ブランチの作成

GUIでの作成

普通にリモートリポジトリの以下のところでor create branchとあるのでここから作成できる。

 

まだないブランチ名を入力するとブラント作成ができる。
そしてどこからブランチを作成するかを指定する。下のものだとfrom masterとあるので、masterブランチから作成する。

 

以下のように作成された

 

今回は
masterブランチの画面で作成したので、from masterで作成されるが、
別ブランチからまた別のブランチを作成したい場合は、
その作成元のブランチの画面を表示した上で、上記のやり方で作成しようとするとfrom developで作成される。

コマンドでの作成

 

ローカルからブランチへのcommit&push

以下順に実行。

コマンド 説明
git pull origin master push先がmasterなら、他の最新コミット履歴(最新バージョン)をローカルに反映する必要があるので、pullする
git commit -m "コミット名" 現在のローカルでの変更箇所/差分をコミットすることで確定させる。
git add . 今回コミットした内容をローカルリポジトリに反映する。ローカリリポジトリにはあくまでコミット履歴(バージョン)が保存される。
git push https://github.com/githubアカウント名/リモートリポジトリ名 指定したリモートリポジトリにローカルリポジトリのコミット情報を連携して、確定した変更箇所を反映する
このコマンドはmasterにpushする前提だが、もしdevelopなどデフォルトとは違うブランチにpushしたい場合は、git push -d ブランチ名で可能。

 

現状の2つのブランチの差分チェック

https://github.com/<組織アカウント名>/<リモートリポジトリ名>/compare/<比較したいブランチ名1>...<比較したいブランチ名2>

それか上の、pull request作成のところで、
pull request → 比較ブランチを2つ選択してnew pull requestをすると、比較が表示される。ここのURLが/compare/branch1...branch2
 

プルリクエストの作成

pull requestとは、
あるブランチから別のブランチへマージして!という依頼をするもの。
開発メンバーとかではなく、別のgithub管理者メンバーに確認をしてもらってマージをしてもらうなどで利用する。

以下で上のpull requestをクリック。そして右の緑ボタンのnew pull requestをクリック

 

そして比較したいブランチを選択する

 

そうすると自動的に以下のように2つのbranchの比較が表示される。
master ← developとした場合は、master起点でdevelopの方にあるものは+、ないものは-で表示される。

 

✔ Able to merge. These branches can be automatically merged.」と表示されている場合は、コンフリクトが起きていない状況で、そのままpull requestをしてメンバーはマージをすることができます。
※ しかし、× Can’t automatically merge. Don’t worry, you can still create the pull request.」の場合はコンフリクトしている状態なので、この状態でpull requestをすると受け取ったメンバーがマージをする際に、そのコンフリクトを修正しない限りマージをすることができません。
 

確認して問題なければ、

 

pull request受け取った側でマージを行う

以下でpull requestを開くと、pull requestのリスト一覧が表示される。それをクリックする

 

そうすると中身をかくにんすることができる。
commitタブでは、マージする前のdevelopブランチに入っているcommitの一覧を見ることができ、
file changesタブでは、masterにマージするので、masterとの差分があるファイルの中身を見ることができる。

 

それらを確認した上で、
merge pull request
をクリックして、confirm mergeをすると以下のように自動的にmergeされます。

 

masterブランチを見るとファイルが追加されているのが確認できます。

 

プルリクエストを戻す

間違ってプルリクエストでマージをしてしまった場合、それを取り消したい場合がある。
そればrevertで可能。
pull requestから、以下の赤枠のcloseをクリック

 

過去のpull request一覧が見れるので、そこから取り消したいpull requestを選択する。今回は赤枠

 

赤枠のrevertをクリック

 

revertをクリックするとすぐ戻せるわけではなく、
戻す用のpull requestを作成して、mergeすることで戻すことになる。
revertする予定のpull requestでマージする前の状態に戻すので、その状態のもののブランチが作成されて、そのブランチの中身をmasterにmergeすることで、revertをするというイメージ。
実際に以下のようにrevertをすると、以下のようなブランチが作成される。

 

そしてrevertするボタンをクリックすると、以下のように
master ← 新ブランチのpull requestを作成するボタンが表示されるので、それを作成する。

 

そして今まで通り、merge pull requestクリックして、confirm mergeをクリックすると、
masterにmergeされて、pull requestが解除されるのが確認できる。

 

コンフリクトが起きた場合

pull requestの段階でauto マージングができない場合

どちらのcommit(変更/修正確定)が正しいかわからない。

developを直接修正してコミット(最新バージョン101)
でdevelopから当時の最新バージョンであった100のものを、developAに作成していて、それを修正していて
コミット。(最新101?)
でpushするとコンフリクトになる。

リモートリポジトリからのclone

git clone リモートリポジトリ
git clone -b ブランチ名 https://リポジトリのアドレス
git clone -b ブランチ名 https://github.com/yoshida-1992/bug-free-lamp

そして作業を行う。
修正や追加。
そのあと、
git add . でローカルリポジトりに入れる
git commit -m <コミット名> でローカルリポジトりで確定
git push origin develop でdevelopにアップする

checkout

Github Action

こちらを参照してください

クライアントツール

コマンドで取得していきましたが、
GUIで操作したい場合はmacであればsource treeというツール、
windowsであればtortoise gitがおすすめ

-IT
-

© 2022 Yosshi Blog Powered by AFFINGER5