2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gitについて

Posted at

注意

あらかじめ言っておきますが、筆者は初心者なので、自分なりの解釈でまとめています。「100%信じるぜ!」という気持ちで読まないようお願いします。どうぞよろしく!

参考

【わかりやすい!Git操作】初心者向けのGitの基本 〜 30分で入門!

経緯

ローカル環境でGitを使用するにあたり、基本的な操作をまとめました。チーム開発では異なる運用になるかもしれませんが、まずは個人での利用を想定しています。

Gitとはなんぞや?という説明は今回省略いたします。

用語の意味

リポジトリ

Gitで管理したいコードのまとまりのことです。

コミット

リポジトリの変更内容をGitに記録する操作のことです。

ブランチ

履歴の分岐のこと。以下のように、mainブランチからAブランチを作成し、変更を加えることができます。

mainブランチ
├── db.sqlite3
├── main_app
│   ├── __init__.py
│   ├── __pycache__
.   .
│   └── views.py
| 
├── manage.py
├── myenv
│   ├── bin
.   .

mainブランチからAというブランチを作成し、test.pyを追加

Aブランチ
├── db.sqlite3
├── main_app
│   ├── __init__.py
│   ├── __pycache__
.   .
│   └── views.py
|.  └── test.py ←←←←←←←←←←←←←←←←追加
| 
├── manage.py
├── myenv
│   ├── bin
.   .

このように、ブランチごとに独立して変更を加えられます。

マージ

あるブランチの変更内容を、別のブランチに統合する操作のこと。
先程のmainブランチとAブランチを例にすると

例)
Aブランチで作成したtest.pyを、mainブランチに取り込むためにマージを行う。

Gitの使用方法

実際に使用するための準備を紹介します。

Gitの導入方法につきましては、他のブログ等を参考にしてください!

Gitの登録

Gitを誰が操作したかを記録するため、メールアドレスユーザー名を登録します。

メールアドレスの登録

git config --global user.email ''メールアドレス''

ユーザー名の登録

git config --global user.name ''ユーザー名''

Gitの基本操作

1.gitを使いたいディレクトリに移動

cd ディレクトリ名

2.Gitリポジトリを作成

移動したディレクトリでGitを使えるようにするために以下を入力します。

git init

参考にした動画上では、gitファイルが作成されるが、自分のPCではgitファイルが作成されなかった。ファイルが緑色になっただけである。以下はchatGPTの回答

.git ディレクトリは隠しディレクトリなので、通常の ls コマンドでは表示されません。ls -aで確認を行うと安心です。

ls -aを実行すると以下のように表示されたのでgitが無事に使用できるようになった

.               .git            main_app        myenv           static
..              db.sqlite3      manage.py       mysite          templates

3.Gitの状態の確認

以下を入力することで、現在のgitの状態を確認することができる

git status

結果

On branch main #今のブランチ名がわかる。これはmainブランチにいることがわかる

No commits yet

Untracked files: #これは、以下のファイルが追跡されていないよ。ということ。
  (use "git add <file>..." to include in what will be committed)
        db.sqlite3
        main_app/
        manage.py
        myenv/
        mysite/
        static/
        templates/

4.コミットをする

4-1.コミットしたくないファイルがあった場合

.gitignoreファイルを作成し、以下のように記述することでコミットされないファイルを指定できる

/manage.py  # ファイル名はそのまま記述
/main_app/  # フォルダ名は末尾にスラッシュ

.gitignoreファイルを作成するメリット

githubにプッシュ(アップロード的なもの)する際、.gitignoreファイルを作成することにより、APIキー等をgithubにアップロードせずに済むことになる。

4-2.コミットをするための予約をする(ステージングに追加するという)

4-2-1.ファイルを個別で予約する

git add ファイル名

4-2-2.ファイルをすべて予約する(サブファイルすべて予約される)

git add .

4-3. コミットを行う

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

コメントは、自分がわかればよいが、チーム開発を行うとき、わかりやすいほうが良いので、チームのルールに従う。

以上で、gitに保存されたことになります。

ここまでのまとめ

以上が、基本的な機能です。

ここからは、より実用的な部分を紹介します

実用的な紹介(branchの使い方)

実際に使用するときは、branch(ブランチ)を使用して、Gitを使用することになります。

1.ブランチを切り、作業を行う

以下のように入力することにより、ブランチを作成し、そのブランチに移動することとなる(ブランチを切るともいう!)

git checkout -b ブランチ名 

例)
以下はfeature/testブランチが作成され、feature/testブランチに移動する

git checkout -b feature/test

#結果
Switched to a new branch 'feature/test' #新しいブランチを作成して、feature/testブランチに移動したことになる

移動したbranchで作業を行い、コミットをする

2.マージ

現状、mainブランチからfeature/testブランチを作成し作業を行い、コミットが済んでいる状態となる。
ただ、実際に使用するのはmainブランチなので、mainブランチに変更内容を追加したい。
そういった場合、マージが必要となる

2-1.mainブランチに移動する

現在、feature/testブランチにいるので、まずはmainブランチに移動する。
以下を入力することにより、指定したブランチへ移動できる

git checkout ブランチ名

例)

git checkout main

2-2.マージする

以下を入力することにより、現在のブランチにマージすることができる。

git merge マージするブランチ

例)
以下で、mainブランチにfeature/branchで追加した作業が、mainブランチに結合される

git merge feature/test

実用的な紹介のまとめ

以上で、ブランチを切り、作業を行い、mainブランチにマージすることが実用的なGitの使用方法である。実際は、Githubにプッシュしていくことになるがそれはまた別の記事で行うこととする

補足

ブランチの状況を確認

現在、どのブランチにいて、ブランチが何個あるかかくにんすることができる

git branch -a

#結果
  feature/test
* main
  remotes/origin/main

ブランチを削除する

以下を入力することで、ブランチを削除することができる

git branch -d ブランチ名  # マージ済みのブランチを削除

git branch -D ブランチ名  # マージされていないブランチを強制削除

感想

初学者の方の参考になれば嬉しいです。ガンガン開発していこう!!

2
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?