設定
アカウント
アカウント確認 | cat ~/.gitconfig |
アカウントの追加 / 切り替え | git config --global user.name "メインアカウント" git config --global user.email "メインアカウントメールアドレス" |
add / commit
ステージングエリアに追加 | git add ファイル名 | |
全てのファイルをステージングエリアに追加 | git add . | |
全ての変更をステージングエリアに追加 | git add -u | |
ローカルリポジトリへコミット | git commmit -m 'コミットメッセージ' | |
add と commit を同時に行う | git commit -a -m 'コミットメッセージ' | ※1 |
※1 :一度ステージングしたファイルに限る
調査
コミットログ | git log | q で終了 |
統計情報のコミットログ | git log -stat | |
ステージングエリアにあるファイル | git ls-files | |
ワークツリーとステージングエリアの 状態の差分 | git diff | ※1 |
コミット間の差分 | git diff コミットID コミットID | |
ステージングエリアとローカルリポジトリの差分 | git diff --chashed | |
ローカルリポジトリとワーキングツリーの差分 | git diff HEAD | |
ステージングエリアに追加されているか | git status |
※1:差分がない場合はなにも出力されない。
出力されるのはあくまでファイルの内容の差分。
ブランチ操作
ブランチの確認 | git branch |
ブランチの作成 | git branch ブランチ名 |
ブランチの作成とチェックアウト | git checkout -b ブランチ名 |
ブランチの切り替え | git checkout ブランチ名 |
マージ | git marge 取り込むブランチ名 |
マージ済みブランチの削除 | git branch -d ブランチ名 |
未マージのブランチの削除 | git branch -D ブランチ名 |
ブランチ名の変更 | git branch -m ブランチ名 変更したいブランチ名 |
head のいるブランチを取得 | git branch --contains=HEAD |
特定のコミットのみマージ | git cherry-pick 特定のコミット番号 |
マージした際にコンフリクトしたら手動で編集して add → commit
削除
ワーキングツリーとステージングエリアから ファイルを削除 | git rm ファイル名 | ※1 |
ステージングエリアのみからファイルを削除 | git rm --cached ファイル名 | |
ワーキングツリーとステージングエリアから ディレクトリを削除 | git rm -r ディレクトリ名 | ※1 |
ステージングエリアのみからディレクトリを削除 | git rm -r --cached ディレクトリ名 |
※1:デフォルトではコミットされているものしか削除されない。-f で強制的に削除。
pip インストール
Git のリポジトリは pip でインストールできる。
setup.py
setup( name="パッケージ名", version="0.1.0", license="ライセンス", description="パッケージの説明", author="作成者", url="GitHubなどURL", packages=find_packages("src"), package_dir={"": "src"}, py_modules=[splitext(basename(path))[0] for path in glob('src/*.py')], include_package_data=True, zip_safe=False, install_requires=_requires_from_file('requirements.txt'), setup_requires=["pytest-runner"], tests_require=["pytest", "pytest-cov"] )
インストール
pip install git+リポジトリのURL 例) pip install git+https://github.com/user/test.git
ブランチを指定してインストール
pip install git+https://github.com/user/test.git@develop
LFS
100MB を超えるファイルは Git にアップできない。LFS をインストールすることでできるようになる。
リポジトリの巻き戻し
一旦エラーが発生した場合はリポジトリを巻き戻す必要があります。
git reset --soft HEAD^
git reset --soft コミットID
エラーが発生したファイルがコミットされていない状態まで戻さないとプッシュで再度エラーが起きます。
パターンの登録
git lfs track "model/model.pt"
登録を行うと.gitattributes
ファイルが作成/編集される。
このファイルにパターンが登録される。
パターンの確認
git lfs tracking
パターンを登録したらプッシュまで行う
.gitattributes
ファイルをプッシュすることで 100MB を超える登録したパターンのファイルをプッシュできるようになる。
git add .gitattributes
git commit -m "add git lfs attributes"
git push origin
LFS のプル
LFS でプッシュした 100 MB を超えるファイルはプルを行う際に LFS 用のプルを行う。
git lfs pull
通常のプルでファイルはダウンロードされるが、そのファイルに実体はない。git lfs pull
を行うことで初めて実体化する。
インストールがされていない場合はインストールから。
git lfs install