git でコミットをキャンセルする方法: 1. "git rm" コマンドを使用して元に戻します; 2. "git replace" コマンドを使用して元に戻します; 3. "git rebase" コマンドを使用して元に戻します; 4 「git revert」コマンドを使用して元に戻します。
このチュートリアルの動作環境: Windows 7 システム、Git バージョン 2.30.0、Dell G3 コンピューター。
間違ったコードを送信し、特定のコミット レコードを取り消す必要がある場合があります。いくつかの方法があります:
1. ファイルを削除します
削除する必要があるコミットが 1 つ以上のファイルである場合は、次の操作を実行できます。
1. ウェアハウスに送信されたファイルを削除する必要がある場合は、git rm
コマンドを使用できます:
git rm <file> // 从工作区和暂存区删除某个文件 git commit -m "" // 再次提交到仓库
2.ファイルを一時記憶領域から削除します。ローカル ワークスペースに変更を加えない場合は、次のことができます:
git rm --cached <file>
3. ワークスペース内のファイルを誤って削除した場合は、git checkout## を使用できます。 # 一時記憶領域のファイルを上書きします。誤って削除されたファイルを回復する領域のファイル:
git checkout -- <file>4. ファイルを削除するには、
git rm を使用します。削除操作も同様に行われます。ファイルを削除すると、ローカルの物理ファイルのみが削除され、git レコードからは削除されません。
git add、
git rm
ただし、
git add は追加のみを記録できます。変更します。アクションと削除アクションは
git rm
2. GitHub はコミットを取り消します
ファイルだけでなくインターリーブされたコードも削除する必要がある場合は、次の方法があります。コミットを削除するには 3 つの方法があります。 1. gitリセット
gitリセット: 特定のコミットまでロールバックします。
: この送信後の変更はステージング領域に返されます。
: この送信後、変更は保持されません。
git status
1) ロールバック コード
削除する必要があるコミットが最新の場合は、git log // 查询要回滚的 commit_id git reset --hard commit_id // HEAD 就会指向此次的提交记录 git push origin HEAD --force // 强制推送到远端
2) 誤って削除した場合の回復
コードをロールバックした後に間違った commit_id をコピーした場合、または誤ってコミット レコードを削除した場合は、次のことができます。また、次のコードを使用して復元します。<pre class="brush:php;toolbar:false">git relog // 复制要恢复操作的前面的 hash 值
git reset --hard hash // 将 hash 换成要恢复的历史记录的 hash 值</pre>
git replace
を使用しないことをお勧めします。後で他の人がコードを送信するときにgit pull
を使用することになります。また、ローカル ウェアハウスを以前のバージョンにロールバックするため、エラーが発生しやすく、不必要なワークロードが増加します。
2. git rebase
git rebase: 2 つのブランチが同じ行にない場合、マージ操作を実行する必要があります このコマンドを使用します。
途中の特定のコミットを削除する必要がある場合は、
git rebasegit log // 查找要删除的前一次提交的 commit_id git rebase -i commit_id // 将 commit_id 替换成复制的值 进入 Vim 编辑模式,将要删除的 commit 前面的 `pick` 改成 `drop` 保存并退出 Vim
これで完了です。
2) 競合を解決するこのコマンドを実行するとリベースの競合が発生する可能性が高く、次の方法で解決できます:
git diff // 查看冲突内容 // 手动解决冲突(冲突位置已在文件中标明) git add <file> 或 git add -A // 添加 git rebase --continue // 继续 rebase // 若还在 rebase 状态,则重复 2、3、4,直至 rebase 完成出现 applying 字样 git push3、git revert
git revert: コミットを破棄します。
git revert
git revert -m
コミットを途中で取り消したい場合は、
git revertgit log // 查找需要撤销的 commit_id git revert commit_id // 撤销这次提交
2) マージ ノードの送信を元に戻します。
この送信がマージ ノードの場合は、-m
コマンドを追加する必要があります:
git revert commit_id -m 1 // 第一个提交点 // 手动解决冲突 git add -A git commit -m "" git revert commit_id -m 2 // 第二个提交点 // 重复 2,3,4 git push
推奨学習: "
Git チュートリアル>>
以上がgitでコミットをキャンセルする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。