|
|
|
@ -315,7 +315,7 @@ $ git commit --amend --only
|
|
|
|
|
$ git commit --amend --only -m 'xxxxxxx'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
既にコミットをプッシュしてしまった場合、コミットを修正して強制プッシュすることはできますが、おすすめしません。
|
|
|
|
|
すでにコミットをプッシュしてしまった場合、コミットを修正して強制プッシュすることはできますが、おすすめしません。
|
|
|
|
|
|
|
|
|
|
<a name="commit-wrong-author"></a>
|
|
|
|
|
### 間違った名前・メールアドレスでコミットしてしまった
|
|
|
|
@ -357,7 +357,7 @@ $ git commit --amend --no-edit
|
|
|
|
|
<a name="delete-pushed-commit"></a>
|
|
|
|
|
### 直前のコミットを削除したい
|
|
|
|
|
|
|
|
|
|
既にプッシュしたコミットを削除するには次のようにします。
|
|
|
|
|
すでにプッシュしたコミットを削除するには次のようにします。
|
|
|
|
|
ただし、編集履歴が不可逆的に変更され、リポジトリから変更内容をプルしてしまった他の人の編集履歴は滅茶苦茶になります。
|
|
|
|
|
要するに、よくわからない場合は絶対にしないでください。
|
|
|
|
|
|
|
|
|
@ -404,7 +404,7 @@ hint: See the 'Note about fast-forwards' in 'git push --help' for details.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
amend による修正は、rebase と同様に(後述)、**古いコミットを新たなコミットで置き換えます**。
|
|
|
|
|
それゆえ、修正前のコミットを既にリモートにプッシュしてしまった場合は、強制プッシュ (`--force-with-lease`) しなければいけません。
|
|
|
|
|
それゆえ、修正前のコミットをすでにリモートにプッシュしてしまった場合は、強制プッシュ (`--force-with-lease`) しなければいけません。
|
|
|
|
|
強制プッシュには細心の注意が必要です。
|
|
|
|
|
*必ず*ブランチを指定するように!
|
|
|
|
|
|
|
|
|
@ -464,10 +464,10 @@ Git は数日間のログを全て残してくれているからです。
|
|
|
|
|
|
|
|
|
|
機密情報やプライベートな情報(パスワードやキー等)を含むデータを誤ってプッシュしてしまった場合、コミットを修正できます。
|
|
|
|
|
ただし、ひとたびデータをコミットしてプッシュしてしまったら、その内容は盗み取られるおそれがあることに留意してください。
|
|
|
|
|
下の手順で公開リポジトリやローカルからデータを削除できますが、他の誰かが既にプルしたデータを削除することは**不可能です**。
|
|
|
|
|
下の手順で公開リポジトリやローカルからデータを削除できますが、他の誰かがすでにプルしたデータを削除することは**不可能です**。
|
|
|
|
|
パスワードをコミットしてしまった場合は**直ちに変更してください**。
|
|
|
|
|
キーをコミットしてしまった場合は**直ちに再生成しましょう**。
|
|
|
|
|
誰かが既に機密情報をプルしてしまった可能性がある限り、プッシュしたコミットを修正するだけでは不十分です。
|
|
|
|
|
誰かがすでに機密情報をプルしてしまった可能性がある限り、プッシュしたコミットを修正するだけでは不十分です。
|
|
|
|
|
|
|
|
|
|
ファイルを編集して機密情報を削除したあと、次を実行します。
|
|
|
|
|
|
|
|
|
@ -497,7 +497,7 @@ echo sensitive_file >> .gitignore
|
|
|
|
|
(feature-branch)$ git push --force-with-lease origin [branch]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
既に他のコミットをしてしまった場合(つまり、機密情報のコミットが直前のコミットよりも前である場合)は、リベースする必要があります。
|
|
|
|
|
すでに他のコミットをしてしまった場合(つまり、機密情報のコミットが直前のコミットよりも前である場合)は、リベースする必要があります。
|
|
|
|
|
|
|
|
|
|
<a href="#i-want-to-remove-a-large-file-from-ever-existing-in-repo-history"></a>
|
|
|
|
|
### 大容量のファイルに関する履歴を完全に削除したい
|
|
|
|
|