Git command and GUI 操作
基本
リポジトリを初期化
git init
- .gitのフォルダが作成され
- gitが要らなくなる時に./gitを消せばいい
.gitignore
初期化するときに一緒に作るファイル。フォルダの中にどのようなファイルは追跡しなくてもいいをあらかじめ定義する
.tar |
ファイルのステージング
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する前の対応
- checkout する前にコミットする
保存されていないファイルを退避させる
git stash # すべての未保存ファイルを退避
git checkout main # 別のブランチに移動
git checkout feature_brach # 元のブランチに戻る
git stash pop # 退避させたファイルを取り出すまた、もし今書いている内容は実は別のブランチに追加しようと思ったものだったら、いったん退避させて別のブランチで取り出すことも可能
git stash # すべての未保存ファイルを退避
git checkout main # 別のブランチに移動
git stash pop # 退避させたファイルを取り出す
基本的にはマージとかの作業はコマンドラインでやるかな…GUIはコミットやブランチ移動のような定形な作業に得意
コンフリクトの解消
マージする前にMainに変更が発生した。
ブランチはMainをベースにしたもので、もしMainは別の作業で変更された場合にはブランチのベースはなくなる。ベースを最新のMainにすることで解消する。
ブランチの下に:
git rebase main
共同作業の流れ
youtubeを参考したものです。
git pull
git checkout <my_branch>
git add / commit
git rebase
git merge
ノート
- Githubはソースコード共有する場で、外部ファイルを共有するためのものではないため、ファイルのアップロード制限が存在する:100MB