基本

リポジトリを初期化

git init

  • .gitのフォルダが作成され
  • gitが要らなくなる時に./gitを消せばいい

.gitignore

初期化するときに一緒に作るファイル。フォルダの中にどのようなファイルは追跡しなくてもいいをあらかじめ定義する

.tar
.zip

ファイルのステージング

git add <file1> <file2>

ステージングされたファイルをコミットする(コメントを残して提出)

git commit -m “comment”

GUIを使うほうがやりやすい。

GitHubと連結する場合にはGithubで新しいリポジトリを作成して、手順通りにやればいい

git push

ブランチ

別のブランチを作成:新しいfeatureや機能を作るとき、他人と共同作業をするとき。新しいブランチは、現時点のmainブランチをベースにして作成されたものです(つまり中身は一緒)。

git checkout -b <branch_name>

  • 切り替える:git checkout <branch_name>
  • Github利用するときはGithubでも新しいブランチを作る必要がある

ブランチというもの、あくまでもメイン木から生えたもので、メイン木に置いてあるファイルの内容を変えないです。

ファイルを変えないなら、ブランチ上のものをMainに結合しなくてはいけないです。

mainの下に:

git merge <new_feature_branch>

一般的にうまく結合することはできない。コンフリクトは99%発生する。

また、ブランチというものを独立しているWorkplaceとして考えたほうがいい。今いるブランチの中に、まだコミットされていないファイルが存在すれば、checkoutしようとしたら怒られる:

error: Your local changes to the following files would be overwritten by checkout: test.txt Please commit your changes or stash them before you switch branches.

このままcheckoutするとファイルがなくなるよっという注意文だね。

checkoutする前の対応

  1. checkout する前にコミットする
  2. 保存されていないファイルを退避させる

    git stash # すべての未保存ファイルを退避
    git checkout main # 別のブランチに移動

    git checkout feature_brach # 元のブランチに戻る
    git stash pop # 退避させたファイルを取り出す

    また、もし今書いている内容は実は別のブランチに追加しようと思ったものだったら、いったん退避させて別のブランチで取り出すことも可能

    git stash # すべての未保存ファイルを退避
    git checkout main # 別のブランチに移動
    git stash pop # 退避させたファイルを取り出す

基本的にはマージとかの作業はコマンドラインでやるかな…GUIはコミットやブランチ移動のような定形な作業に得意

コンフリクトの解消

  1. マージする前にMainに変更が発生した。

    ブランチはMainをベースにしたもので、もしMainは別の作業で変更された場合にはブランチのベースはなくなる。ベースを最新のMainにすることで解消する。

    ブランチの下に:

    git rebase main

共同作業の流れ

youtubeを参考したものです。

git pull

git checkout <my_branch>

git add / commit

git rebase

git merge

ノート

  • Githubはソースコード共有する場で、外部ファイルを共有するためのものではないため、ファイルのアップロード制限が存在する:100MB