Open4
git周りの操作メモ
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>
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
過去のgit追跡ファイルから特定のファイルを削除したい
下のコマンドで過去の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し直す
過去の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環境から抜ける
参考