创建与切换分支
创建一个新的分支并切换到该分支:
1 | git branch bugFix |
可以简写为:
1 | git checkout -b bugFix |
合并分支
合并分支前需要先切换到目标分支,然后执行合并操作。例如,先切换到 main
分支,再合并 bugFix
分支:
1 | git checkout main |
HEAD 符号引用
HEAD 是一个对当前所在分支的符号引用,指向你正在其基础上进行工作的提交记录。
分离 HEAD(detached HEAD)状态是指 HEAD 不指向任何分支,而是直接指向某个具体的提交(commit)。这意味着你在一个特定的提交上进行操作,而不是在某个分支上。
查看旧版本:你可以查看项目的历史版本,而不影响当前分支的状态。
1
git checkout <commit-hash>
临时实验:你可以在某个特定的提交上进行实验,而不影响任何分支。如果实验成功,可以创建一个新分支保存这些更改。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22git 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 | git branch -f master HEAD~3 |
选择性提交
git cherry-pick
是一个非常有用的 Git 命令,它允许你从一个分支中选择特定的提交并将其应用到另一个分支。相当于直接commit
。
1 | git cherry-pick <commit-hash> |
源代码管理
提交代码:
1 | git add . |
此时本地 master
分支会前进,但远程保持不动。
同步到远程仓库:
1 | git push |