0
0

【メモ】ぼっちではやろうと思わなかった`Gitコマンド`基本編

Last updated at Posted at 2023-09-19

目次

初めに

インターンに参加するまで、Gitコマンドはcommitpushcloneしかほぼ使っていない状態だったので、ここで一度整理をしておきます。


1. git add .

ワークディレクトリの変更をステージングエリアに追加します。
branchをきる度に、実行するのを忘れないでください。

ワークディレクトリ
  file.txt (変更済み)

$ git add .

ステージングエリア
  file.txt (変更済み)

2. git branch

現在のブランチを表示します。

pushする位置が間違っていないかよく使います。

$ git branch
  feature/login
* master
  feature/signup

* がついているブランチが現在のブランチです。


3. git pull

リモートリポジトリの変更をローカルに取り込みます。

リモートリポジトリ
  file.txt (変更済み)

$ git pull

ローカルリポジトリ
  file.txt (変更済み)

4. git checkout -b [ブランチ名]

新しいブランチを作成して、そのブランチに切り替えます。

$ git checkout -b feature/new-feature
Switched to a new branch 'feature/new-feature'

$ git branch
  feature/login
  master
* feature/new-feature
  feature/signup

5. git branch -D [ブランチ名]

指定したブランチを削除します。

$ git branch -D feature/login
Deleted branch feature/login.

$ git branch
* master
  feature/signup

6. git diff

ワークディレクトリとステージングエリアの変更点を確認します。

変更があったかどうかを確認する時によく使います。

$ git diff
diff --git a/file.txt b/file.txt
@@ -1,3 +1,3 @@
 This is a sample file.
-Old line.
+New line.

7. git commit -m "コメント"

変更をコミットし、コメントを付けます。

この記事もぜひ読んでみてください。

$ git commit -m "Update file.txt"
[master abcdefg] Update file.txt
 1 file changed, 1 insertion(+), 1 deletion(-)

8. git push origin [ブランチ名]

ローカルの変更をリモートリポジトリにプッシュします。

$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 258 bytes | 258.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:username/repository.git
   abcdefg..hijklmn  master -> master

9. Mergeリクエスト (Pullリクエスト) を出す

この部分はコマンドラインではなく、GitHubやGitLabを使用して行います。

  1. GitHub (または使用しているGitホスティングサービス) にログインします。
  2. リポジトリのページに移動します。
  3. 「Pull requests」または「Merge requests」のタブをクリックします。
  4. 「New pull request」または「New merge request」のボタンをクリックします。
  5. ベースとなるブランチ(通常はmastermain)とマージしたいブランチ(この例ではfeature/new-feature)を選択します。
  6. 変更内容を確認し、必要なコメントや説明を追加します。
  7. 「Create pull request」または「Submit merge request」のボタンをクリックしてリクエストを作成します。

このプロセスを完了すると、リポジトリの管理者や他のチームメンバーがあなたの変更をレビューし、必要に応じてフィードバックを提供することができます。フィードバックが完了したら、変更はメインブランチにマージされます。

実際に経験したので追記コマンド

11. git log --oneline

コミットの履歴を一行でシンプルに表示します。

$ git log --oneline
hijklmn Update README.md
abcdefg Add new feature
1234567 Initial commit

12. git reset HEAD~~~

git resetコマンドを使用すると、指定したコミットにHEAD(現在のブランチの先頭)を戻すことができます。~の記号は、戻りたいコミットの数を示します。この場合、~~~と3つの~があるため、最新の3つのコミットをワークディレクトリに保持したまま、HEADを3つ前のコミットに戻します。

例:

  • HEAD~: 1つ前のコミットに戻す
  • HEAD~~: 2つ前のコミットに戻す
  • HEAD~~~: 3つ前のコミットに戻す
    ... という具体的な動作になります。
$ git log --oneline
hijklmn Update README.md
abcdefg Add new feature
1234567 Add some changes
890abcd Initial commit

$ git reset HEAD~~~
Unstaged changes after reset:
M README.md

$ git log --oneline
1234567 Add some changes
890abcd Initial commit

13. git push -f origin [branch名]

ローカルの変更を強制的にリモートリポジトリにプッシュします。このコマンドは他の人との作業が競合する可能性があるため、注意して使用する必要があります。

$ git push -f origin feature/new-feature
Counting objects: 3, done.
Writing objects: 100% (3/3), 258 bytes | 258.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:username/repository.git
 +abcdefg...1234567 feature/new-feature -> feature/new-feature (forced update)

最後に

このような流れで、チームで作業する時にはGitコマンドを利用すると思います。私も今までは、ハッカソンなどの短い開発時間が多かったり、2人など少ない開発メンバーが多かったので、使っていませんでしたがインターンをきっかけこれからGitネイティブになれるように、利用していきたいと思います。

0
0
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
0
0