Git for Windows インストール
Git for Windows
日本語化
- C:Files64-guimsgs フォルダ作成
- contents.msg を配置
Git Repo. のクローン
- ソースの位置:http://~/hogehoge.git
- 先ディレクトリ:今開いているフォルダ
通常時作業
- git pull origin
- git add .
- git commit -m "comit message"
- git push origin main
gitその傾向と対策
一連の流れ
- git repository を作る
- remote に push する
- remote から一度 pull する
- branch を切る
- 作成・修正する -> コミット
- リモートへプシュする前に、リモートと同期 一人なら関係なさそうな気もするが・・・これでmaster branchを最新の状況にする。
$ git push -u origin main
$ git pull origin
$ git branch hogehoge
$ git branch
> * main
> hogehoge
$ git checkout hogehoge
$ git branch
> main
> * hogehoge
$ git commit -a -m "comment"
$ git checkout main
$ git pull origin main
merge する
main に merge する
-
--ff (default) hogehoge に main を移動させる感じ?ログが一本になる。作業用ブランチがあったことをログに残さない。
$ git merge hogehoge
$ git merge --ff hogehoge //default(上と同じ) -
--no-ff hogehoge の結果を main に繰り込む感じ?作業用ブランチがあったことを残す。基本的にはこれ?
$ git merge --no-ff hogehoge
-
--squach hogehoge での変更を main に適用して、hogehoge がなかったことに。1コミットとして考えられる。 merge後、commit が必要。
$ git merge --squash hogehoge
$ git commit
図で分かるgit-mergeの--ff, --no-ff, --squashの違い - アジャイルSEを目指すブログ
rebase する
- 最新のmainを作業用ブランチにリベース
- 作業用ブランチを最新のmasterにリベース master = 作業用の位置合わせ(コミットグラフ的にも)
- リモートへpush
$ git checkout hogehoge
$ git rebase main
$ git checkout main
$ git rebase hogehoge
$ git push origin main
GITでリモートブランチへpushする前にやっておくべきこと - ITエンジニアとして生きる
mergeとrebase の違いとは
"リベースの操作によって、bugfixブランチ上にあった2つのコミットは改変された(一度、破棄され、新たに作成された)ということがわかります。 マージの場合と異なり、リベースはコミットを改変する作業なのです。"
merge は簡単であるし、統合前ブランチのコミットも改変されず、ブランチの情報を分離して保持することが出来る。しかし、履歴が複雑化する原因となる。rebaseは履歴がシンプルであるが、競合時対処が難しく、コミット改変を行ってしまう点に注意。
[Git] 使い分けできていますか?マージ(merge)&リベース(rebase)再入門 - The Powerful Code