installation (option)

gitコマンドはMacの初期状態でも入っている.

$ which git 
/usr/bin/git

一応git自体をhomebrew経由でインストールし直す.

$ brew install git
$ which git # m1macの場合以下のようになれば成功.
/opt/homebrew/bin/git

gitコマンドには含まれていないコマンドをいくつかインストールする.

$ brew install git-gui #gitkなど
$ brew install hub     #

初期設定(.gitconfigファイルの設定)

  1. ユーザ設定 git config –global user.name “ユーザ名” git config –global user.email “アドレス”

  2. gitの出力をカラーリング(option)
     git config --global color.ui auto
    

ローカルでのバージョン管理

バージョン管理したいディレクトリに移動する.

cd git_test
 git init

を実行すると,.gitというディレクトリが生成されてバージョン管理が始まる.

実際にファイルを管理するためには a,git add ファイル名 でインデックス b,git commit -m “コミットメッセージ” でコミット のに段階を踏む.

gtでは,ワークツリー(仕事しているディレクトリ)から直接リポジトリに状態を記録(これをコミットという)するのではなく,その間に設けられているインデックスの設定された状態を記録するようになっている.そのため,コミットでファイルの状態を記録するには,まずインデックスにファイルを登録する必要がある.

github (リモート)との連携

# 接続の確認
$ ssh -T git@github.com

mergeの中止

mergeに成功した場合

# HEAD の移動履歴を表示して戻したいHEADの番号を知る
$ git reflog 
# 参照、作業ツリー、インデクスを強制的に戻す
$ git reset --hard HEAD@{1}

mergeに失敗した場合

git merge --abort

ローカルのリモートブランチ()を最新化

git fetch

リモートのブランチ一覧

#ローカルのブランチ一覧
git branch
#リモートのブランチ一覧
git branch -r

gitでコミット済のファイルを消去後に復活させる

https://dbcls.rois.ac.jp/~yayamamo/fsyl/2014/06/git%E3%81%A7%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E6%B8%88%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E6%B6%88%E5%8E%BB%E5%BE%8C%E3%81%AB%E5%BE%A9%E6%B4%BB%E3%81%95%E3%81%9B%E3%82%8B/

git rev-list -n 1 HEAD --

リモートのブランチAをローカルブランチBにpullする場合.

git pull origin A:B

ローカルブランチをリモートブランチAにpushする場合

git push origin A

タグの使い方

# タグを打つ
git tag -a <tag-name> -m "comment"

# タグを消す
$ git tag -d <tag-name>

# タグをリモートへ送る
git push origin --tags

リリースの使い方

タグを打ったコミットに対してリリースを作成できる. https://semver.org/

コミットメッセージ

githubでの一人開発について

一人開発でもissueとpull-requestを活用することで進捗履歴を残すことができる.

  1. issueを立てる.Labelを作成して割り当てておくとよい.
  2. issueに対応するbranchをローカルに作成.branch名はissueの名前に対応しておくと良くて,例えばfeatures/hogeのようにする.作業をしてpushまで行う.
  3. pushしたブランチに合わせてpull-requestを作る.
  4. mergeして,github上のbranchを削除.
  5. ローカルにmergeして,ローカルのbranchを削除. ```bash //GitHubのdevelopブランチをローカルのorigin/developに反映 $ git fetch origin develop

//origin/developをdevelopに反映 $ git merge origin/develop

//issue専用ブランチを削除 $ git branch -d issue

6. github上でissueを閉じる.


## [A successful Git branching model](https://nvie.com/posts/a-successful-git-branching-model/)
<!-- https://qiita.com/homhom44/items/9f13c646fa2619ae63d0 -->
1. master
   公開用(リモートにも存在)
2. release
   リリース直前の細かい作業
3. hotfix
   公開後の急を要するbugfix
4. develop
   開発用(リモートにも存在)
5. feature
   開発用,1つ1つの機能はこちらで実装


## vscodeとの連携

1. ブランチをグラフで確認できる拡張機能`git graph`
1. コミット履歴を
1. 追加のさまざまなgit操作を可能にする`GitLens`

<!-- https://qiita.com/y-tsutsu/items/2ba96b16b220fb5913be -->


## 複数のgithubアカウントを使い分けたいとき
<!-- https://zenn.dev/taichifukumoto/articles/how-to-use-multiple-github-accounts
 -->

## github-pagesの使い方

[こちら](/_pages/github/github_pages.html)


---
## latex文書の運用について

<!--
https://zenn.dev/ganariya/articles/platex-github-action
https://zenn.dev/serima/articles/4dac7baf0b9377b0b58b
https://zenn.dev/t4t5u0/articles/latexoperation

https://peterroelants.github.io/posts/adding-tags-to-github-pages/
-->


## その他

- commitメッセージのテンプレート
  
  適当なテンプレートファイル`commit_template`を作った上で
  

git config –global commit.template /path/to/commit_template ```

とする.--globalは全てのレポジトリに一括で適用するので,個別のレポジトリに対してやりたければそのレポジトリのディレクトリで--globalオプションなしで実行する.

=======

参考文献

gitignoreのテンプレート