Skip to content

Latest commit

 

History

History
301 lines (199 loc) · 6.65 KB

step6.md

File metadata and controls

301 lines (199 loc) · 6.65 KB

issue

githubにはissueという機能があります

issueとは、プロジェクトのタスクやバグを管理するための機能です。issueを使うことで、プロジェクトの進捗状況を把握しやすくなります。

issueの作成

issueを作成するには、GitHubのWebサイト上で行います。

issuesをクリックします。 issue

New issueボタンをクリックします。

new issue

new issue

タイトルと本文を入力します。

ここでは例として、テキストファイルの追加を行うissueを作成します。

Submit new issueボタンをクリックします。

issueが作成されました。

submit new issue

自分をアサインしておきましょう。

Assign yourselfをクリックします。

assign yourself

これでissueの作成が完了しました。

プロジェクト開発は基本的に次のような流れで進められます。

  1. issueの作成
  2. ブランチの作成
  3. コードの変更
  4. プルリクエストの作成
  5. レビュー
  6. マージ

ではこのタスクを実際にやってみましょう

issueに基づいたタスクを実行する

issueに基づいたタスクを実行するために、issueを参照してブランチを作成し、コードを変更します。

ローカルのターミナルで次のコマンドを実行します。

git switch main
git switch -c feat/add-text-file-#2

実行結果

Switched to a new branch 'feat/add-text-file-#2'

今回ブランチにはfeat/add-text-file-#2という名前をつけました。

ブランチの命名規則はプロジェクトによって異なりますが今回は次のような規則でつけています

[タスクの種類]/[タスクの内容]-#[issue番号]

タスクの種類はfeat(feature)やfix(bug fix)などがあります。

タスクの内容はissueのタイトルを参考に簡潔につけましょう

issue番号はissueの番号です。

branch

次に、テキストファイルを作成します。

echo "Hello, World!" > text.txt
cat text.txt

実行結果

Hello, World!

次に、コミットを行います。

git add text.txt
git commit -m "Add text.txt"

実行結果

[feat/add-text-file-#2 4a41866] Add text.txt
 1 file changed, 1 insertion(+)
 create mode 100644 text.txt

ここでREADME.mdをみてみましょう

cat README.md

実行結果

# hello-world

1. Edit from feature branchが追加されていません

これはリモートでマージした変更差分がローカルに反映されていないためです

一旦mainブランチに戻ります

git switch main

実行結果

Switched to branch 'main'
Your branch is behind 'origin/main' by 2 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)

mainブランチはorigin/mainより2つのコミットが遅れていると表示されています

origin/mainはリモートリポジトリのmainブランチを指しています

git pullコマンドを実行することで、リモートリポジトリの変更をローカルリポジトリに取り込むことができます

git pull

実行結果

Updating 6d45215..da24917
Fast-forward
 README.md | 1 +
 1 file changed, 1 insertion(+)

README.mdが更新されました

cat README.md

実行結果

# hello-world
1. Edit from feature branch

1. Edit from feature branchが追加されています

次に、feat/add-text-file-#2ブランチに戻ります

git switch feat/add-text-file-#2

実行結果

Switched to branch 'feat/add-text-file-#2'

mainブランチからfeat/add-text-file-#2ブランチに切り替わりました

ここでREADME.mdをみてみましょう

cat README.md

実行結果

# hello-world

おや?1. Edit from feature branchが表示されていません

これはfeat/add-text-file-#2ブランチを作成した時の親ブランチであるmainがリモートリポジトリと同期する前の状態を指しているためです

mainブランチにfeat/add-text-file-#2ブランチの変更を取り込むために、mainブランチにマージします

git merge main

実行結果

Merge branch 'main' into feat/add-text-file-#2
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
~

マージコミットメッセージが表示されます

ここではそのまま保存して終了します

Escキーを押して、:wqを入力してEnterキーを押します

実行結果

Merge made by the 'ort' strategy.
 README.md | 1 +
 1 file changed, 1 insertion(+)

README.mdが更新されました

cat README.md

実行結果

# hello-world
1. Edit from feature branch

1. Edit from feature branchが表示されています

次に、feat/add-text-file-#2ブランチに変更をプッシュします

git push origin feat/add-text-file-#2

実行結果

Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 8 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 580 bytes | 580.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
remote:
remote: Create a pull request for 'feat/add-text-file-#2' on GitHub by visiting:
remote:      https://github.com/tosaken1116/kcl-git/pull/new/feat/add-text-file-%232
remote:
To github.com:tosaken1116/kcl-git.git
 * [new branch]      feat/add-text-file-#2 -> feat/add-text-file-#2

プッシュが完了しました

次に、プルリクエストを作成します

これはstep5を参考に作ってください

プルリクエストのメッセージの部分にclose #2と入力してください

pull request

これでissueに基づいたタスクを完了しました

プルリクエストをマージした後issue一覧を見てみましょう

issue list

issueがクローズされていることが確認できます

プルリクエストのメッセージにclose #2と入力することで、プルリクエストがマージされた時にissueの2番がクローズされるようになります

これで基本的なgit githubの使い方がわかりました

お疲れ様でした