Gitでcommitを分割したいとき
次のコマンドでコミット番号を見る
$ git log --oneline --graph
リベースする
$ git rebase -i 59b146c
※上記コミット番号はあくまで例
エディットするコミットを選ぶ
下記のようなコミットメッセージが表示されるので、pickをedit(e)に変更
pick 310154e 部分的な修正1とその他ほげほげ
↓
e 310154e 部分的な修正1とその他ほげほげ
ひとつ前のコミットでリセットする(※ここがポイント)
$ git reset HEAD^
※mixedモードでリセットするのでcommitとaddがひとつ前のコミットに戻る
git add
前の状態になるので、必要な単位でgit add
とcommit
を繰り返す
全部終わったらcontinueする
$ git rebase --continue
毎回ssh-addが消える問題
現象
$ git pull Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. $ ssh-add -l Could not open a connection to your authentication agent.
※そもそもGitHubの公開鍵設定をしていない場合は
http://ryoichi0102.hatenablog.com/entry/2017/02/03/232920
とかを参照して下さい
とりあえずその場しのぎの処置
$ eval `ssh-agent` $ ssh-add ~/.ssh/github_id_rsa $ ssh-add -l
github_id_rsaのところはお使いの公開鍵に変えてください
面倒なんで.bashrcに書く方法
この辺とかあるが…うーんなんだか… 毎回手でたたくでいいかなって感じもする http://d.hatena.ne.jp/himadatanode/20160823/p14
でもイライラしてきたので.bashrcに書く
eval `ssh-agent` ssh-add ~/.ssh/github_id_rsa
私の環境の場合はgithub_id_rsaです。適宜変えてください。
もしくはid_rsaにしておくとデフォルトでそこに読みに行くのでこのような問題は生じない…はずです。
Filename too long
これが出る場合、下記をたたく git config --system core.longpaths true ただし、管理者権限が必要な模様 なので ~/.gitconfigに
[core] longhpaths = true
を記述する
参考
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita
※httpsの方が最近はいいらしい->Windowsなら資格情報、MacならKeyChainに格納される
ssh key vs personal access token
GitHubに二段階認証を設定した後にGit操作できない時の解決策 - Qiita