・バージョンコントロールシステム(VCS)はファイルのコレクションに対する変更を追跡する1つのプログラムのことである。VCS = SCM
・変更履歴をわかりやすく管理するためのツール
・変更を反映することをコミット
・コミットをするとリビジョン(コミット履歴: 前回との差分のこと)
・コミットメッセージは3行で行う。
1: コミットでの変更内容
2: 空行
3: 変更した理由
初期設定
・名前の設定
$ git config --global user.name "<username>"
・メールアドレスの設定
$ git config --global user.email "<xxxx@yyy.com>"
・設定の確認
$ git config --list
・登録されている情報の特定のキーを入力し、設定値を確認する
$ git config user.name
>>> <username>
・ヘルプを見る
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
# 具体的にconfigコマンドのヘルプを見る場合は以下
$ git help config
・ローカルディレクトリでgitプロジェクトをgitで管理し始める
$ git init
・リモートリポジトリを作成してみよう
$ mkdir <リモートリポジトリ名.git>
$ cd <リモートリポジトリ名.git>
$ git init --bare --shared
# または
$ git init --bare --shared /path/to/hogehoge.git
・管理対象ファイルの追加
$ git add **.md # 管理対象ファイル
$ git commit -m 'First Commit' # これで監視対象のファイルをもつgitリポジトリが作成された
・ファイルの状態の確認
$ git status
>>> nothing to commit, working tree clean
・リモートリポジトリにファイルを追加する
$ git push origin main # cloneしているため、リモートはcloneしてきたgdriveが対象
ファイルの無視
$ cat .gitignore
・.gitignoreの書き方
$ tree -F/ # 階層構造の表示
C:.
│ .gitignore
│ container_collections.py
│ git.md
│ Books.md
│ LearningCheckedList.md
│
└─.obsidian
app.json
appearance.json
core-plugins-migration.json
core-plugins.json
workspace.json
・VCSで管理したくないファイルを追加する
.gitignore
# フォルダをここに書く
.obsidian/ # obsidianの設定ファイル格納先
.tmp.driveupload
.tmp.drivedownload
.Trash-1000
# 単一ファイルはここに書く
*.log # .log拡張子のファイルを除外
!important.log # 重要なlogのみは無視しない
# pythonの場合
*.pyc
__pycache__/
・ブランチの切り替えを行う。※ チェックアウトのこと
$ git checkout <branch>
・git でブランチの作成を行う
git branch <branch_name>
・切替を行ったブランチから更に変更を加えるブランチを作成する
git branch <new_branch_name>
・develop ブランチの作成
git branch develop
・ブランチの切り替え
git checkout <ブランチ名>
・developブランチをmainブランチにマージする
*develop
main
上記の状態のとき、mainブランチに切り替えを行い、mainにdevelopをマージする処理を行う
git checkout main
git merge develop
・マージができたらリモートリポジトリにpushする
git push origin main
ファイルの取得
git pull origin develop
ローカルリポジトリの削除
git branch -d <削除したいブランチ名>
リモートリポジトリの削除
git push origin :<削除したいリポジトリ名>
リモートリポジトリをクローンしてもらっている人たちには以下のコマンドを実行してもらう。
git fetch --prune