Git 实用技巧(按场景汇总)回退历史、新建空白分支等

本文最后更新于 2024年4月16日 晚上

git version 2.39.2.windows

1. 回退到历史 commit

回退分支历史是一个敏感的操作,需要小心谨慎。最好在备份、团队协商和测试的基础上进行操作,以避免不必要的问题。

将本地和远程分支回退到历史 commit 的过程涉及使用 Git 的命令来修改分支历史。请注意,在执行这些操作之前,务必备份你的代码,以防发生意外情况。以下为一般步骤:

  1. 查找历史 commit 的哈希值:使用 git log 命令查看提交历史并找到目标 commit 的哈希值

  2. 创建备份分支(可选): 在执行任何回退操作之前,使用命令:git branch backup-branch 创建一个分支来备份当前的状态

  3. 本地分支回退: 使用以下命令将本地分支回退到历史 commit:

    1
    git reset --hard <commit-hash>

    替换 <commit-hash> 为你想要回退到的历史 commit 的哈希。

  4. (!谨慎操作)远程分支回退: 强制推送(force push)本地分支更新远程分支(要求回退):

    这将会覆盖远程分支的历史,可能会影响团队中其他人的工作,所以要小心使用。

    1
    git push origin <branch-name> --force

2. 修改远程仓库地址

修改远程仓库地址可能会影响团队协作,需要谨慎操作。

在实际开发工作中,可能会由于远程仓库迁移等原因导致我们需要修改远程仓库的地址,以下为具体步骤:

1
2
3
4
5
6
# 查看远程仓库地址
git remote -v
# 修改远程仓库地址
git remote set-url <remote-name> <new-url>
# 验证远程仓库地址
git remote -v

3. 新建空白分支

参考:Git - git-switch Documentation: https://git-scm.com/docs/git-switch/zh_HANS-CN

使用 --orphan 参数,创建一条不基于任何现有提交的空白分支。其初始提交(即 HEAD)不指向任何父提交,从而形成一个独立的、空的历史记录。

1
git switch --orphan <new_branch_name>

4. 从 Git 中停止追踪「被追踪的文件」

若误将 .idea, .vscode 中的本地配置文件添加到 git 中,会导致每次编译时,IDE 会提示 git 修改。为了减少/消除提示,需要将该文件取消追踪,但不能将其从本地删除,以取消对 workspace.xml 文件的追踪为例:

  1. 停止追踪文件

    1
    git rm --cached .idea/workspace.xml
  2. 更新 .gitignore 文件,添加 .idea/workspace.xml

  3. 提交更改

    1
    2
    git add .
    git commit -m "Update .gitignore"

5. 重命名分支

例如将 mian 分支重命名为 astrowind

1
2
3
4
# 切换到需要重命名的分支
git switch main
# 使用 git branch -m 命令来重命名分支
git branch -m astrowind

如果需要把改动推送到远程仓库,请执行以下命令

1
2
3
4
# 删除远程的 old_branch
git push origin --delete main
# 将新的分支推送到远程仓库(-u, --set-upstream 表示设置 astrowind 为当前分支的上游分支)
git push -u origin astrowind


Git 实用技巧(按场景汇总)回退历史、新建空白分支等
https://blog.cc01cc.cn/2024/04/15/practical-skills-for-git/
作者
零一/cc01cc(zeo)
发布于
2024年4月15日
更新于
2024年4月16日
许可协议