1. 什么是git
Git是一个分布式版本控制系统,用于跟踪和管理计算机文件的改动。它最初由林纳斯·托瓦兹在2005年创建,以帮助管理Linux内核开发。Git是免费和开源软件。
2. 基本开发模式
- 通过命令初始化一个 git 仓库,或者从现有的 git 仓库中克隆一个。
- 通过命令创建一个属于自己的分支。
- 在本地开发进行代码的编写中,每到达一个阶段,向本地仓库提交一个版本。
- 开发完成完毕之后,将本地仓库的中的所有版本提交至远程仓库。
3. 基本 git 命令
3.1. 针对本地文件的操作
3.1.1. git clone 、git init 、git pull 和 git fetch 命令
作用:
git clone 从远程仓库中克隆一份代码到本地
git init 初始化本地仓库
git pull 拉去远程分支代码
git fetch 拉去远程分支代码到本地的新分支上
用法:
| 命令 | 解释 |
|---|---|
| git clone 【仓库地址】 | 克隆 |
| git init | 初始化 |
| git pull origin 【远程分支名称】 | 拉取远程分支代码到本地 |
| git fetch origin 【远程分支名称】:【本地新的目标分支】 | 拉取远程分支代码到本地新分支,拉取成功后,执行切换分支命令可以切到新的本地分支 |
3.1.2. git add 命令
作用: 将本地变更的文件推送到 git 暂存区
用法:
| 命令 | 解释 |
|---|---|
| git add 文件名 | 将指定的文件添加进入暂存区 |
| git add . | 将当前工作区的所有文件都添加加入暂存区 |
| git add -A | 将所有被跟踪文件中被修改或删除的文件信息添加到暂存区,包括未跟踪的文件 |
| git add -u | 将所有被跟踪文件中被修改或删除的文件信息添加到暂存区 |
3.1.3. git commit 命令
作用: 将暂存区的文件进行版本记录;换言之:将暂存区文件提交到本地仓库:
用法:
| 命令 | 解释 |
|---|---|
| git commit -m “提交说明” | 将暂存区内容提交到本地仓库 |
3.1.4. git push 命令
作用:将本地仓库中的代码推送到远程仓库中的某个分支
用法:
| 命令 | 解释 |
|---|---|
| git push origin 【远程仓库分支名称】 | 将本地仓库中的代码推送到远程仓库中的某个分支 |
| git push origin 【远程仓库分支名称】 -f | 强制推送,慎用 |
3.1.5. git reset 命令
作用:代码回滚
用法:
| 命令 | 解释 |
|---|---|
| git reset 【版本号】 | 恢复到某次提交的版本,版本号通过【git log】获取 |
| git reset HEAD^ | 恢复成上次提交的版本 |
3.2. 分支操作
3.2.1. git branch 命令
作用: 分支的增删
用法:
| 命令 | 解释 |
|---|---|
| git branch | 查看所有分支 |
| git branch -d 【分支名称】 | 删除指定分支 |
3.2.2. git checkout 命令
作用: 分支的操作
用法:
| 命令 | 解释 |
|---|---|
| git checkout 【分支名称】 | 切换到对应的分支 |
| git checkout -b 【新的分支名称】【基于分支名称】 | 基于某个分支创建一个新的分支,并切换到新的分支 |
3.2.3. git merge 命令
作用: 分支合并
用法:
| 命令 | 解释 |
|---|---|
| git merge 【本地分支名称】 | 用于合并指定分支到当前分支,如有冲突需要手动解决。 |
3.2.4. git rebase 命令
作用: 常用于本地提交的整理,让提交记录更加的清晰。
用法:
| 命令 | 解释 |
|---|---|
| git rebase 【本地分支A】 | 将【本地分支A】合并到当前分支 |
3.3. 提交记录
3.3.1. git log 命令
作用:日志查看
用法:
| 命令 | 解释 |
|---|---|
| git log | 查看所有提交的记录 |
3.4. 暂存代码
3.4.1. git shash 命令
作用:暂时缓存代码。
用法:
| 命令 | 解释 |
|---|---|
| git stash list | 查看所有储藏的修改,包括每个储藏的编号、描述和创建时间。 |
| git stash pop | 可以从堆栈中获取最近一次储藏的修改,同时删除对应的储藏。 |
| git stash pop stash@${num} | 其中 $num 代表你想要应用并删除的储藏的编号。 |