Maison outils de développement git Comment annuler le commit dans git

Comment annuler le commit dans git

Nov 29, 2021 pm 03:15 PM
git

Comment annuler un commit dans git : 1. Utilisez la commande "git rm" pour annuler ; 2. Utilisez la commande "git reset" pour annuler ; 3. Utilisez la commande "git rebase" pour annuler ; Commande "git revert" pour annuler.

Comment annuler le commit dans git

L'environnement d'exploitation de ce tutoriel : système Windows 7, Git version 2.30.0, ordinateur Dell G3.

Parfois, nous soumettons un code erroné et devons annuler un certain enregistrement de validation. Voici plusieurs méthodes :

1. Supprimer des fichiers

Si la validation qui doit être supprimée concerne un ou plusieurs fichiers, vous pouvez le faire. Faites ce qui suit.

1. Si un fichier soumis à l'entrepôt doit être supprimé, vous pouvez utiliser la commande git rm : git rm 命令:

git rm <file> // 从工作区和暂存区删除某个文件
git commit -m "" // 再次提交到仓库
Copier après la connexion

2、如果只想从暂存区删除文件,本地工作区不做出改变,可以:

git rm --cached <file>
Copier après la connexion

3、如果在工作区不小心删错了某个文件,可以用 git checkout 将暂存区的文件覆盖工作区的文件,从而把误删的文件恢复:

git checkout -- <file>
Copier après la connexion

4、用 git rm 删除文件,同时还会将这个删除操作记录下来;

rm 删除文件,删除的仅仅是本地物理文件,没有将其从 git 的记录中剔除。

5、git addgit rm 有相似的功能,

git add 仅能记录添加、改动的动作,删除的动作需靠 git rm 来完成。

二、GitHub 撤销某次 commit

如果需要删除的不只是某个文件,而是交错的代码,那么有以下三种方法可以删除 commit 。

1、git reset

  • git reset :回滚到某次提交。
  • git reset --soft:此次提交之后的修改会被退回到暂存区。
  • git reset --hard:此次提交之后的修改不做任何保留,git status 查看工作区是没有记录的。

1)回滚代码

如果需要删除的 commit 是最新的,那么可以通过 git reset 命令将代码回滚到之前某次提交的状态,但一定要将现有的代码做好备份,否则回滚之后这些变动都会消失。具体操作如下:

git log // 查询要回滚的 commit_id
git reset --hard commit_id // HEAD 就会指向此次的提交记录
git push origin HEAD --force // 强制推送到远端
Copier après la connexion

2)误删恢复

如果回滚代码之后发现复制错了 commit_id,或者误删了某次 commit 记录,也可以通过下方代码恢复:

git relog // 复制要恢复操作的前面的 hash 值
git reset --hard hash // 将 hash 换成要恢复的历史记录的 hash 值
Copier après la connexion
  1. 注意:删除中间某次提交时最好不要用 git reset 回退远程库,因为之后其他人提交代码时用 git pull 也会把自己的本地仓库回退到之前的版本,容易出现差错进而增加不必要的工作量。

2、git rebase

  • git rebase:当两个分支不在一条线上,需要执行 merge 操作时使用该命令。

1)撤销提交

如果中间的某次 commit 需要删除,可以通过 git rebase 命令实现,方法如下:

git log // 查找要删除的前一次提交的 commit_id
git rebase -i commit_id // 将 commit_id 替换成复制的值
进入 Vim 编辑模式,将要删除的 commit 前面的 `pick` 改成 `drop`
保存并退出 Vim
Copier après la connexion

这样就完成了。

2)解决冲突

该命令执行时极有可能出现 reabase 冲突,可以通过以下方法解决:

git diff // 查看冲突内容
// 手动解决冲突(冲突位置已在文件中标明)
git add <file> 或 git add -A // 添加
git rebase --continue // 继续 rebase
// 若还在 rebase 状态,则重复 2、3、4,直至 rebase 完成出现 applying 字样
git push
Copier après la connexion

3、git revert

  • git revert:放弃某次提交。
    git revert 之前的提交仍会保留在 git log 中,而此次撤销会做为一次新的提交。
  • git revert -m:用于对 merge 节点的操作,-m 指定具体某个提交点。

1)撤销提交

要撤销中间某次提交时,使用 git revert 也是一个很好的选择:

git log // 查找需要撤销的 commit_id
git revert commit_id  // 撤销这次提交
Copier après la connexion

2)撤销 merge 节点提交

如果这次提交是 merge 节点的话,则需要加上 -m

git revert commit_id -m 1 // 第一个提交点
// 手动解决冲突
git add -A
git commit -m ""
git revert commit_id -m 2 // 第二个提交点
// 重复 2,3,4
git push
Copier après la connexion
2 Si vous souhaitez uniquement supprimer le fichier de la zone de stockage temporaire, l'espace de travail local ne sera pas modifié. , vous pouvez :

rrreee 3. Si vous supprimez accidentellement un fichier dans l'espace de travail, vous pouvez utiliser git checkout pour écraser le fichier dans la zone de stockage temporaire avec le fichier dans l'espace de travail, supprimant ainsi le fichier supprimé accidentellement : rrreee

4. Utilisez git rm pour supprimer les fichiers, et l'opération de suppression sera également enregistrée ; /code> pour supprimer des fichiers, et seuls les fichiers physiques locaux seront supprimés sans le supprimer des enregistrements de git. 🎜🎜5. git add et git rm ont des fonctions similaires, 🎜🎜mais git add ne peut enregistrer que les ajouts et les modifications, les suppressions. à compléter par git rm. 🎜🎜🎜🎜2. GitHub annule une validation🎜🎜🎜🎜Si vous devez supprimer non seulement un fichier, mais également du code entrelacé, il existe trois façons de supprimer la validation. 🎜🎜🎜1. git reset🎜🎜
  • git reset : revenir à un certain commit.
  • git reset --soft : les modifications après cette soumission seront renvoyées dans la zone de préparation.
  • git reset --hard : Aucune modification ne sera conservée après cette soumission git status Il n'y a aucun enregistrement dans l'espace de travail.
🎜1) Restaurer le code🎜🎜Si le commit qui doit être supprimé est le dernier, vous pouvez utiliser la commande git reset pour restaurer le code au état d'un commit précédent Mais assurez-vous de sauvegarder le code existant, sinon ces modifications disparaîtront après la restauration. Les opérations spécifiques sont les suivantes : 🎜rrreee🎜2) Récupération après suppression accidentelle🎜🎜Si vous constatez que vous avez copié le mauvais commit_id après avoir annulé le code, ou supprimé un enregistrement de validation par erreur, vous pouvez également le restaurer via le code suivant : 🎜rrreee
  1. Remarque : lors de la suppression d'un certain commit au milieu, il est préférable de ne pas utiliser git reset pour restaurer la bibliothèque distante, car lorsque d'autres soumettent code plus tard, ils utiliseront également git pull pour restaurer la bibliothèque distante. La restauration de votre entrepôt local vers la version précédente est sujette à des erreurs et augmente la charge de travail inutile.
🎜🎜2. git rebase🎜🎜
  • git rebase : Utilisez cette commande lorsque les deux branches ne sont pas sur la même ligne et doivent effectuer une opération de fusion.
🎜1) Annuler le commit🎜🎜Si un certain commit au milieu doit être supprimé, vous pouvez utiliser la commande git rebase La méthode est la suivante : 🎜 rrreee🎜C'est tout. 🎜🎜2) Résoudre les conflits🎜🎜Il est très probable qu'un conflit de rebase se produise lors de l'exécution de cette commande, qui peut être résolu par les méthodes suivantes : 🎜rrreee🎜🎜3, git revert🎜🎜
  • git revert : Abandonner une certaine soumission. 🎜git revert La soumission précédente restera toujours dans le journal git, et cette révocation sera traitée comme une nouvelle soumission.
  • git revert -m : utilisé pour opérer la fusion des nœuds, -m spécifie un point de validation spécifique.
🎜1) Annuler un commit🎜🎜Lorsque vous souhaitez annuler un commit intermédiaire, utiliser git revert est également un bon choix : 🎜rrreee🎜2) Annuler un nœud de fusion commit🎜 🎜Si cette soumission est un nœud de fusion, vous devez ajouter la commande -m : 🎜rrreee🎜Apprentissage recommandé : "🎜Tutoriel Git🎜"🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quels sont les fonds de fiducie de cryptage en niveaux de gris? Quels sont les fonds de fiducie de cryptage en niveaux de gris? Mar 05, 2025 pm 12:33 PM

Investissement en niveaux de gris: le canal des investisseurs institutionnels pour entrer sur le marché des crypto-monnaies. La société a lancé plusieurs fiducies cryptographiques, ce qui a attiré une attention généralisée, mais l'impact de ces fonds sur les prix des jetons varie considérablement. Cet article présentera en détail certains des principaux fonds de fiducie de crypto de Graycale. Grayscale Major Crypto Trust Funds disponibles dans un investissement GrayScale GRAYS (fondée par DigitalCurrencyGroup en 2013) gère une variété de fonds fiduciaires d'actifs cryptographiques, fournissant des investisseurs institutionnels et des particuliers élevés avec des canaux d'investissement conformes. Ses principaux fonds comprennent: ZCash (Zec), Sol,

Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Apr 02, 2025 pm 02:06 PM

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Bitwise: les entreprises achètent un bitcoin une grande tendance négligée Bitwise: les entreprises achètent un bitcoin une grande tendance négligée Mar 05, 2025 pm 02:42 PM

Observation hebdomadaire: les entreprises thésaurisation du Bitcoin - un changement de brassage que je souligne souvent certaines tendances du marché négligées dans des mémos hebdomadaires. Le mouvement de Microstrategy est un exemple brutal. Beaucoup de gens peuvent dire: "Microstrategy et Michaelsaylor sont déjà bien connus, à quoi allez-vous faire attention?" Cette vue est unilatérale. Des recherches approfondies sur l'adoption du bitcoin en tant qu'actif de réserve au cours des derniers mois montrent qu'il ne s'agit pas d'un cas isolé, mais d'une tendance majeure qui émerge. Je prédis qu'au cours des 12 à 18 prochains mois, des centaines d'entreprises suivront le pas et achèteront de grandes quantités de Bitcoin

Dépassant considérablement la SFT, le secret derrière O1 / Deepseek-R1 peut également être utilisé dans les grands modèles multimodaux Dépassant considérablement la SFT, le secret derrière O1 / Deepseek-R1 peut également être utilisé dans les grands modèles multimodaux Mar 12, 2025 pm 01:03 PM

Des chercheurs de l'Université de Shanghai Jiaotong, de Shanghai Ailab et de l'Université chinoise de Hong Kong ont lancé le projet open source Visual-RFT (visual d'amélioration), qui ne nécessite qu'une petite quantité de données pour améliorer considérablement les performances du gros modèle de langage visuel (LVLM). Visual-RFT combine intelligemment l'approche d'apprentissage en renforcement basée sur les règles de Deepseek-R1 avec le paradigme de relâchement de renforcement d'OpenAI (RFT), prolongeant avec succès cette approche du champ de texte au champ visuel. En concevant les récompenses de règles correspondantes pour des tâches telles que la sous-catégorisation visuelle et la détection d'objets, Visual-RFT surmonte les limites de la méthode Deepseek-R1 limitée au texte, au raisonnement mathématique et à d'autres domaines, fournissant une nouvelle façon de formation LVLM. Vis

Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Apr 02, 2025 pm 04:12 PM

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Gitee Pages STATIQUE Le déploiement du site Web a échoué: comment dépanner et résoudre les erreurs de fichier unique 404? Gitee Pages STATIQUE Le déploiement du site Web a échoué: comment dépanner et résoudre les erreurs de fichier unique 404? Apr 04, 2025 pm 11:54 PM

GiteEpages STATIQUE Le déploiement du site Web a échoué: 404 Dépannage des erreurs et résolution lors de l'utilisation de Gitee ...

Comment obtenir les données de la région d'expédition de la version à l'étranger? Quelles sont les ressources prêtes à l'emploi disponibles? Comment obtenir les données de la région d'expédition de la version à l'étranger? Quelles sont les ressources prêtes à l'emploi disponibles? Apr 01, 2025 am 08:15 AM

Description de la question: Comment obtenir les données de la région d'expédition de la version à l'étranger? Y a-t-il des ressources prêtes à l'emploi disponibles? Soyez précis dans le commerce électronique transfrontalier ou les entreprises mondialisées ...

Dessin graphique de sablier Python: comment éviter les erreurs variables non définies? Dessin graphique de sablier Python: comment éviter les erreurs variables non définies? Apr 01, 2025 pm 06:27 PM

Précision avec Python: Source de sablier Dessin graphique et vérification d'entrée Cet article résoudra le problème de définition variable rencontré par un novice Python dans le programme de dessin graphique de sablier. Code...

See all articles