1. git clone vs git init:

    • git clone:用于从现有的 Git 仓库复制一个副本到本地。这通常是参与一个已存在项目的起始步骤。
    • git init:用于在本地创建一个新的 Git 仓库。这是开始一个全新项目的第一步。
  2. git add vs git commit:

    • git add:将更改添加到暂存区(staging area)。这个命令用于选择你想要在下一次提交中包含的更改。
    • git commit:将暂存区的更改提交到仓库的历史记录中。这是一个正式记录你的更改的步骤。
  3. git pull vs git fetch vs git push:

    • git pull:从远程仓库拉取最新的更改并自动尝试与本地分支合并。
    • git fetch:从远程仓库获取最新的更改,但不自动合并到当前分支。这对于先查看更改再合并很有用。
    • git push:将本地分支的更改推送到远程仓库。
  4. git merge vs git rebase:

    • git merge:将一个分支的更改合并到另一个分支。它会保留分支的历史。
    • git rebase:将一个分支的更改“重新应用”在另一个分支之上。这通常用于创建一个更清洁、线性的提交历史。
  5. git branch vs git checkout vs git switch:

    • git branch:用于创建、列出或删除分支。
    • git checkout:用于切换到不同的分支或恢复工作目录文件。在 Git 2.23 后,这个命令被拆分为两个更具体的命令:git switchgit restore
    • git switch:专门用于切换分支。
  6. git status vs git log:

    • git status:显示当前分支的状态,包括更改、暂存的更改、以及是否与远程分支同步。
    • git log:显示当前分支的提交历史。
  7. git stash:

    • git stash:临时存储未提交的更改,以便可以清洁地切换到另一个分支。稍后可以重新应用这些更改。
11-17 08:48