X(Twitter) Zenn GitHub RSS 共有

Git

作成日時:2024-08-01以前
更新日時:2024-10-22

認証

認証は基本もたない。
sshかWebサーバーまたはサービス(GitHub)で行う。

Bareリポジトリ

Git hooks

VS Codeで未ステージングコミットの確認ダイアログを再表示する

何もステージングしない状態でコミット操作を行うと、確認のダイアログが表示される。

未ステージングコミットの確認ダイアログ

「常時」を押下した場合、
それ以降何もステージングしない状態でコミット操作を行っても、このダイアログが表示されなくなる。

誤コミットを防ぐため、確認ダイアログが再度表示されるようにするには、
設定画面の検索バーに「smart commit」と入力し、「Git: Smart Commit」のチェックボックスをオフにする。

GitHub

リポジトリに関するドキュメント - GitHub Docs
これ読めばいい。

cloneの方法

git clone https://github.com/xxx/xxx.git

リポジトリへの権限付与

リポジトリへのアクセス権を持つTeamと人を管理する - GitHub Docs

setting > collaboratorsで表示。

git config

# 一覧
git config -l
git config --local -l

git config --local user.name name
git config --local user.email email

git merge -s ours branch_xxx

マージ元の内容を無視してマージできる。
マージ元の内容に価値は無いが、ブランチを消すと歴史も消えてしまうので
歴史だけを残したい場合に使う。

git checkout branchA
git merge -s ours branchB

マージ先を無視する場合はtheir戦略を使う。

git stash

作業の一時退避に。
作業中に別ブランチの作業をしなければならなくなった時とか。

# 変更内容の保存
git stash -u -m コメント
# 一覧表示
git stash list
# 退避した内容の適用
git stash apply stash@{0}
# 削除
git stash drop stash@{0}
# 全削除
git stash clear

git tag

# タグの作成
git tag -a name -m comment
# タグのチェックアウト
git checkout name
# タグの削除
git tag -d name
# グラフ参照
git log -all

hotfixブランチに加えた、mainにマージしないコミットとか。
タグを作ってブランチを削除したり。
ブランチは消えてもタグには残る。

git reset

# コミット取り消し
# HEADの位置を直前のコミットに戻す
git reset --soft HEAD^

# 念のため、状態を確認しとけ
git status

トランクベース

早いフィードバック。
featureブランチは結局ウォーターフォールと変わらない。
TODO:フローに関して

gitk

グラフィカルなリポジトリブラウザ。

リポジトリサイズが大きすぎるとクローンで死ぬ

GitでCloneしようとするとearly EOFエラーが発生した #Git - Qiita

sshだとうまくいくとか。

rebaseとmerge

一括でrebase/mergeするのが怖ければ、cherry-pickで順次適用。
テストしてmergeでいいかもしれない。
cherry-pickはxオプションで元のコミットハッシュをつけてくれる。

early EOFエラー

リポジトリが大きいと上記のエラーが出る。
対策としてはHTTPの通信制限を増やすか、cloneの量を減らす。
それでも駄目ならSSHでクローンする。