git 的常用操作

43 阅读2分钟

1. 从 main 分支创建新功能分支

git checkout main

git pull origin main

git checkout -b feature/new-feature

2. 在新分支上开发、提交

...编写代码...

git add . git commit -m "feat: 添加新功能的核心逻辑"

...继续编写代码...

git add . git commit -m "feat: 完善新功能的UI界面"

3. 推送新分支到远程

git push -u origin feature/new-feature

4. 在远程仓库上创建 Pull Request

5. 审查通过后,合并到 main 分支,然后删除本地分支

git checkout main git pull origin main git branch -d feature/new-feature

发现刚刚提交的信息写错了

git commit --amend -m "新的、正确的提交信息" git rebase -i HEAD~3

pick改成reword

pick a1a1a1a refactor: 重构用户模块 reword b2b2b2b fix: 修复登录bug pick c3c3c3c feat: 添加支付功能

6. reset 上一条提交信息

git reset --soft HEAD~1

这是一个非常常见的 Git 错误。

简单解释

你的 Git 暂存区索引文件(index file)损坏了。 这通常发生在以下几种情况:

  1. Git 操作过程中被强制中断(比如突然关机、编辑器崩溃、或者你在 Git 运行时按了 Ctrl+C)。
  2. 磁盘空间不足或文件系统错误。
  3. Git 进程冲突(比如同时有两个 Git 进程在操作同一个仓库)。
  4. .git/index 这个二进制文件本身写坏了。

解决方法

你需要删除损坏的索引文件,然后让 Git 重新生成它。请按顺序执行以下步骤:

第一步:删除损坏的索引文件

在你的项目目录下(即你现在的 PS C:\doc\kpmg\code\tiktok-nav-back> 路径),运行以下命令删除损坏的文件:

rm .git/index

(或者使用 Windows 命令:del .git/index)

第二步:重置暂存区

删除后,你需要告诉 Git 重建索引。运行:

git reset

(如果这一步报错,可以尝试 git reset --hard,但请注意 --hard 会丢弃你当前工作目录中未提交的修改。不过既然 git stash pop 失败了,你的工作目录可能本来就处于混乱状态,通常直接 git reset 即可。)

第三步:再次尝试 Stash Pop

索引修复后,你应该可以继续之前的操作了:

git stash pop

⚠️ 重要提示(关于你未提交的代码)

由于 index 文件损坏,你在工作区中但尚未提交(Unstaged)的代码修改可能在执行 git reset 这一步丢失。