1. git删除最近一次提交包括历史记录。

方法一:删除最近的一次提交(最常见)
如果你只是想撤销最后一次提交,这是最简单的方法。

在本地删除提交 使用 git reset --hard 命令,将你的本地分支回退到上一次提交。Bash

  • git reset --hard HEAD^
    • HEAD^ 指的是 HEAD 的父提交,也就是上一次提交。
    • --hard 选项会彻底删除这次提交的所有更改,包括工作区中的文件修改。如果你只想保留文件修改,可以使用 --soft。
  • 强制推送到 GitHub 现在你的本地分支已经没有了最新提交,你需要强制推送到远程仓库,以覆盖掉之前的历史。
  • git push --force origin <branch-name>
    • 请将 <branch-name> 替换为你正在工作的分支名(例如 main 或 dev)。
    • --force 告诉 Git 忽略历史不一致的警告,强制用你的本地历史覆盖远程历史。

2. git取消已提交文件关联

你想从 Git 仓库中删除文件并取消其关联,虽然该文件已经添加到了 .gitignore 文件中,但文件已经被 Git 追踪了,所以需要通过一些额外的步骤来将它从版本控制中移除。

步骤:

  1. 确保文件已经添加到 .gitignore 中:
    首先,确认你已经将该文件的路径添加到 .gitignore 中。例如:

    # 在 .gitignore 中加入文件
    path/to/your/file
    
  2. 从 Git 中删除该文件:
    使用 git rm 命令将文件从 Git 的版本控制中移除。请注意,这将删除该文件的历史记录,并且不会影响本地文件。

    执行以下命令:

    git rm --cached path/to/your/file
    
    • --cached 参数确保文件仅从 Git 追踪中移除,而不会在本地文件系统中删除它。

    • path/to/your/file 替换为你要取消关联的文件的路径。

  3. 提交更改:
    文件已从 Git 的版本控制中移除,你需要提交这个更改。

    git commit -m "Remove file from Git tracking and add to .gitignore"
    
  4. 推送到远程仓库:
    最后,将更改推送到远程仓库。

    git push origin <your-branch>
    

    记得替换 <your-branch> 为你实际的分支名,例如 main 或 master。

总结:

  1. 将文件添加到 .gitignore 中。

  2. 使用 git rm --cached 命令将文件从 Git 追踪中移除。

  3. 提交并推送更改。

这样,Git 将不再追踪该文件,但它会保留在你的本地文件系统中。如果将来你再需要将该文件重新纳入 Git 版本控制,只需删除 .gitignore 中的相关项并使用 git add 重新添加即可。

更多推荐