高频命令

  • git status:查看当前改了哪些文件,最常用

  • git log --oneline --graph --decorate:简洁查看提交历史

  • git diff:看还没 add 的改动

  • git diff --cached:看已经 add 但还没 commit 的改动

  • git branch:查看本地分支

  • git clone <仓库地址>:把远程仓库拉到本地

  • git add <文件>:把文件加入暂存区

  • git add .:把当前目录下修改过的文件都加入暂存区

  • git commit -m "说明":提交一次修改

  • git switch <分支名>:切换分支

  • git switch -c <新分支名>:创建并切换到新分支

  • git pull:拉取远程最新代码

  • git push:把本地提交推到远程

  • git fetch:只获取远程更新,不自动合并

切换分支

  • 基于当前分支新建并切换:
    1
    git switch -c feature/user-login
  • 老写法:
    1
    git checkout -b feature/user-login
  • 推送到远程并建立追踪:
    1
    git push -u origin feature/user-login

合并分支

  • 先切到目标分支:
    1
    git switch develop
  • 合并功能分支:
    1
    git merge feature/user-login

解决冲突

冲突后常见流程:

1
git status

手动编辑冲突文件,删掉这些标记:

1
2
3
<<<<<<<
=======
>>>>>>>

然后:

1
2
git add .
git commit -m "fix: resolve merge conflict"

撤销提交

先在当前节点new branch ;再切换到master分支进行git reset

  • HEAD:当前提交位置
  • 暂存区git add 之后、commit 之前的区域
  • 工作区:你正在编辑的文件

1. --soft

只移动 HEAD,不动暂存区和工作区(重新写提交说明)

删除-m “说明”

例子:

1
git commit -m "wip"

发现提交说明太随便,想改成正式一点:

1
2
git reset --soft HEAD~1
git commit -m "feat: add login validation"

2. --mixed

移动 HEAD,并重置暂存区,但不动工作区(重新选择add文件)

删除-m “说明”, add上去的文件

默认就是 --mixed

例子:

1
2
git reset HEAD~1
git status

这时你会看到:

  • 改动还在
  • 但变成未暂存状态了

然后你可以重新选择:

1
2
3
4
git add file1
git commit -m "feat: part 1"
git add file2
git commit -m "fix: part 2"

3. --hard

HEAD、暂存区、工作区一起重置

删除-m “说明”, add上去的文件, 本地的改动

例子:

1
git reset --hard HEAD~1

回滚某次提交

  • 安全回滚某次提交:
    1
    git revert 提交ID
    比如:
    1
    git revert a1b2c3d
    这会新生成一次“反向提交”,适合线上/团队协作。

查看是谁改了某一行

1
git blame src/login.js