创建与切换分支

创建一个新的分支并切换到该分支:

1
2
git branch bugFix
git checkout bugFix

可以简写为:

1
git checkout -b bugFix

合并分支

合并分支前需要先切换到目标分支,然后执行合并操作。例如,先切换到 main 分支,再合并 bugFix 分支:

1
2
git checkout main
git merge bugFix

HEAD 符号引用

HEAD 是一个对当前所在分支的符号引用,指向你正在其基础上进行工作的提交记录。
分离 HEAD(detached HEAD)状态是指 HEAD 不指向任何分支,而是直接指向某个具体的提交(commit)。这意味着你在一个特定的提交上进行操作,而不是在某个分支上。

  1. 查看旧版本:你可以查看项目的历史版本,而不影响当前分支的状态。

    1
    git checkout <commit-hash>
  2. 临时实验:你可以在某个特定的提交上进行实验,而不影响任何分支。如果实验成功,可以创建一个新分支保存这些更改。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
        git checkout <commit-hash>
    # 进行实验
    git checkout -b new-experiment-branch



    ### `git fetch` 操作

    `git fetch` 完成了以下两步操作:

    - 从远程仓库下载本地仓库中缺失的提交记录。
    - 更新远程分支指针(如 `origin/main`)。

    `git fetch`+`git merge`=`git pull`



    ### 列出和强制更新分支

    列出所有本地分支:
    ```shell
    git branch --list

强制更新 master 分支到某个特定的提交:

1
2
git branch -f master HEAD~3
git branch -f master HEAD^2

选择性提交

git cherry-pick 是一个非常有用的 Git 命令,它允许你从一个分支中选择特定的提交并将其应用到另一个分支。相当于直接commit

1
git cherry-pick <commit-hash>

源代码管理

提交代码:

1
2
git add .
git commit -m "提交信息"

此时本地 master 分支会前进,但远程保持不动。

同步到远程仓库:

1
git push