Git

設定

アカウント

アカウント確認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 logq で終了
統計情報のコミットログ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