2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

1人でしか使ったことないgithubを一通り復習してみる

Posted at

記事を書こうと思った背景

業務でgitLabを使う機会があったのですが、チームで使用したことはなく、マージやコンフリクトを実際に手を動かして勉強したいという意思でこの記事を書きます。また、githubを勉強しようと思ったのはkaggleコンペチームでgithubを紹介してほしいということでしたので挑戦します。

github初心者が実際に使用できるレベル感で記事をまとめます(使用はできるけどコマンドの説明は触れないので調べていただけると幸いです)。
また、githubの環境がすでに構築されている方向けの記事となります(コマンド実行はgit bashを使用します)。
githubのインストール、vimの使い方については省略させていただきます。

知見のある方で、誤りや認識違いがありましたらご指摘いただけると幸いです。

現在の自身のレベル感として、

  • リポジトリなどgithubの概念は理解はできている
  • 一人での作業(以下のコマンドなど)であれば問題なく使用できる(コマンドを調べれば・・・)

現在、Githubで使用できるコマンドは以下です。

  • git init
  • git add
  • git commit
  • git push

今回使用した環境は以下です。

  • windows10
  • git version 2.16.2.windows.1
  • webブラウザ: Chrome 91.0.4472.77(Official Build) (64 ビット)
  • vim

目次

  • githubで管理するディレクトリを作成
  • githubで管理するファイルを作成、$git addを実行($git status)
  • commitを行う($git commit)
  • githubでリポジトリを作成
  • 作成したファイルをgithub上に公開する($git branch, $git remote add..., $git push)
  • ブランチを切る($git checkout)
  • マージする際にコンフリクトを起こす($git merge)※失敗
  • コンフリクトを解消する($git reset)※使用方法、注意

githubで管理するディレクトリを作成

まず、自分が作成したいフォルダに移動して、githubで管理するディレクトリを作成します。

$ mkdir <ディレクトリの名前を指定>

その後、作成したディレクトリ内で$git initを実行します。

実際に実行したgit bash画面は以下です。
image.png

エクスプローラでフォルダ内を確認すると、.gitファイルが作成されます。

また、git bush上で$ls -aを使用すると.gitが作成されていることを確認できます(色が見えづらいのは申し訳ないです)。
image.png

githubで管理するファイルを作成、$git addを実行($git status)

ここではgit bash上でvimを使用して、githubで管理するテキストファイルを作成します。
image.png

$catを使用して作成したテキストファイルを確認します。
ここではhellow github!というテキストを記載しています。
image.png

ここで、$git statusを使用して、直近のコミットからの変更を確認してみます。
先ほど作成したsample.txtが赤文字で表示されています。
このファイルはまだgithub上で管理されていないことを示しています。
image.png

sample.txt$git addすると、以下のようにステージングされたことが分かります。
sample.txtが緑色で表示されていることがわかります。この状態でcommitする準備が整いました。
image.png

commitを行う($git commit)

以下のように$git commitを使用してcommitを実行します。
また、$git statusで変更履歴がどうなったかも確認しています。
image.png

githubでリポジトリを作成

webブラウザ上でgithubのページを開き、リポジトリを作成します。
赤く囲んだ+のところで「New repository」を選択し、以下の内容でリポジトリを作成します。
image.png

作成したファイルをgithub上に公開する($git branch, $git remote add..., $git push)

github上でリポジトリが作成できると、以下のような画面が表示されます。image.png

今回は$git commitまでを実行したので、ブランチmainを作成し$git pushを行います。
image.png

webブラウザに戻って作成したリポジトリを確認すると、先ほど作成したsample.txtがgitnub上に表示されます。
image.png

ブランチを切る($git checkout)

$git branchを使用して、現在のブランチを確認します。
その後、testという名前のブランチを作成し、そこに移動します。
実行した結果は以下です。
image.png

ここで、以下のコマンドを使用して、testブランチにtest.txtをコミットしてみます。
image.png

webブラウザ上で

  • 新たにtestブランチが作成されている
  • testブランチだけにtest.txtがコミットされている
  • mainブランチには変更がない
    image.png

ことを確認できると思います。

image.png

マージする際にコンフリクトを起こす($git merge)※失敗

まず、コンフリクトを起こすために、testブランチでsample.txtを編集します。
sample.txtの中身を、hellow github! から hellow world! に変更してgithubにコミットしました。
image.png

次にmainブランチでsample.txtを編集してgithubにコミットしました。
sample.txtの中身を hello github! から helow Japan! に変更しました。
image.png

そして、コンフリクトを発生させたいと思います。
testブランチに移動して、$git mergeを実行してみます。すると以下のようにコンフリクトを起こしていることが確認できると思います(初コンフリクト体験中です)。
image.png

コンフリクトを解消する($git reset)※使用方法、注意

今回はmainブランチとtestブランチのsample.txtを同時に変更しました。
そのため、マージしようとするとコンフリクトが発生してしまい、失敗してしまいます。
そこで、testブランチの変更をmainブランチに反映したいと思います。
vim(エディタでも可)でsample.txtを開きます。すると、以下のようなファイル内容になっていることがわかります。
image.png

上のgit bash から以下のテキストを削除します。

  • <<<<<<< HEAD
  • =======
  • hellow Japan!
  • main

testブランチのsample.txtは以下のように編集できました。
image.png

その後、commitを行いますが、失敗してしまいました。どうやらマージする前にpushしてしまったのが原因でした。
これは業務で行ってしまうと怒られてしまいますね(まずっ)。
image.png

この問題を解決していきます(解決方法はあまりよくない例です、おそらく)。
$git logで変更履歴を確認します。以下のようになっているため、直前のコミットHEADを削除します。
image.png

先ほどのミスをしたコミットを削除することができたのを確認できます。
image.png

testブランチでsample.txtの中身を、hellow github! から hellow world! に変更します。
$git add'と'$git commitまで行います($git pushはまだしません)。
image.png

この後、mainブランチに移動して、testブランチ同様、直前のコミットを削除します。
そしてsample.txtの中身を hello github! から helow Japan! に変更します。
ここでもtestブランチ同様、$git add'と'$git commitまで行います($git pushはまだしません)。
image.png

image.png

これで一応問題解決です(手段はおそらく良くないです、正しい記事を参照してください)。

参考文献

最後に

今回はここまでで勉強をいったん終了します(マージができなかったですが・・・心が折れました)。
知見のある方で、誤りを見つけた際はご報告いただけると幸いです。

念のため

今回使用したgithubのリポジトリです。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?