Open4

git周りの操作メモ

mitk232mitk232

config

git config --global user.name "username"
git config --global user.email "email"
git config --global init.defaultBranch main

remote repository

git init
git remote add origin <remote repository url>
mitk232mitk232

configファイルの場所

cat ~/.gitconfig

aliases

git config --global alias.st status

で設定.

▶ cat ~/.gitconfig
### ...
[alias]
	st = status
	cm = commit
	ad = add
	lo = log --oneline
	lg = log --graph --date=short
	pl = pull
	ps = push

shellでも設定しておく.

# ~/.bashrc
alias g="git"

使用イメージ

▶ g st
branch main
nothing to commit, working tree clean
mitk232mitk232

過去のgit追跡ファイルから特定のファイルを削除したい

https://zenn.dev/flyingbarbarian/articles/aaf59c07b71a34

下のコマンドで過去のcommit履歴に含まれるファイルを確認しつつ

git log <branch> --name-status --pretty=short --graph

歴史上からファイルを消していく

git filter-branch -r --force --index-filter 'git rm --cached --ignore-unmatch <file path>' [-- <branch>]

リモートブランチへの反映

そもそものhistoryが変わったため, --forceオプションをつけてpushする

git push -f origin <remote branch>

ローカルでの反映

cloneし直す

mitk232mitk232

過去のcommitを編集したい

git rebase -i (interactive オプション)を使う

git rebase -i <commit hash>
  • squash, fixup, edit, reword とか
  • squash, fixupで複数のコミットを1つにまとめる
  • edit で編集したいcommitに移動するとrebase環境みたいなところに入る
    • 何らかの編集をしてworking tree -> indexにあげる
    • git commit --amendによって編集内容を以前のものと結合する
    • git rebase --continue, git rebase --abort によってrebase環境から抜ける

参考