AUTHOR:闫小雨
TIME:2024-05-28
目录
一、Git定义
Git是一个分布式版本控制的系统,主要用途是 管理代码的变更,协作开发,允许开发者跟踪代码的历史记录,解决代码冲突,以及错误修复和代码追踪。
- 版本控制:
-
- Git能够追踪和管理文件的修改历史,包括添加记录、删除记录和修改记录等,每次修改都会生成一个新的版本,并可以在不同版本之间切换。
- 分布式特性:
-
- Git是一个分布式系统,意味着开发者可以拥有完整的项目历史记录,并能在本地进行开发和版本管理,每个开发者都可以通过克隆(git clone)在本地机器上拷贝一个完整的Git仓库。
- 协作开发:
-
- 支持多人协作开发,允许多个开发者独立完成任务并在合并时解决冲突,通过分支(branch)功能,开发者团队成员可以同时工作并独立开发功能。
- 云端仓库和协作:
-
- Git可以与远程仓库进行交互,允许多个开发者协同工作,开发者可以将本地仓库推送到云端仓库(如GitHub、Gitee等),或者从云端仓库拉取最新修改的代码。
- 工作流管理:
-
- Git支持多种工作流模式,比如分支管理和合并请求,这就有助于确保代码质量和稳定性。
- 错误修复和代码追踪:
-
- Git允许开发者快速回退到先前的稳定版本,并即使应用补丁来修复已知错误。
二、Git的基本概念
- 工作区:工作区是指存放项目代码的目录。在工作区中,可以进行修改、编辑和添加新文件。
- 缓冲区:缓冲区是在工作区和仓库之间的暂存区。在进行提交前,可以通过将文件添加到缓冲区中来选择性地记录修改。
- 本地仓库:存放本地代码和版本信息的地方。一个仓库可以包含多个分支,每个分支上保存着代码的不同版本。
- 分支:分支是从主干分支(通常为master或main)分出来的一个独立线条,用于进行开发和测试工作。分支可以独立进行修改和提交,也可以合并到其他分支中。
- 云端仓库:云端仓库是存放在远程服务器上的代码仓库。可以通过克隆(clone)云端仓库来获取完整的代码库,并通过拉取(pull)和推送(push)与云端仓库同步代码。
三、Git的基本操作
- 初始化本地仓库:使用
git init
命令可以初始化一个新的本地仓库。 - 克隆远程仓库:使用
git clone <云端仓库链接>
命令可以克隆一个远程仓库到本地。 - 添加文件到暂存区:使用
git add <文件名>
命令可以将文件添加到暂存区。如果要添加当前目录中的所有文件,可以使用.
代替文件名。 - 提交更改:使用
git commit -m "<name>"
命令可以把暂存区的文件提交到本地仓库。提交信息(name)用于描述此次提交的内容。 - 查看提交历史:使用
git log
命令可以查看提交历史记录,包括每次提交的哈希值、提交者、提交日期和提交信息。 - 创建分支:使用
git branch <branch>
命令可以创建一个新的分支。使用git checkout -b <branch>
命令可以创建一个新分支并立即切换到该分支。 - 切换分支:使用git checkout <branch>命令可以切换到指定分支。
- 合并分支:使用git merge <branch>命令可以将一个分支的修改合并到当前分支。如果合并过程中出现冲突,需要手动解决冲突后再进行提交。
- 拉取云端仓库的更改:使用
git pull
命令可以将云端仓库的更改拉取到本地仓库,并与当前分支进行合并。 - 推送本地更改到云端仓库:使用
git push
命令可以将本地仓库的更改推送到云端仓库。
四、数据常用指令
1、常用创建指令
增加 | |||
仓库 | 本地 | git init | 当前目录初始化一个本地仓库 |
云端>本地 | git clone <仓库链接> | 把云端仓库下载到本地仓库 | |
git fetch | 从云端仓库拉取最新代码并不进行合并的添加到本地仓库 | ||
git pull | 从云端仓库拉取最新代码合并到当前分支的本地仓库 | ||
git pull <origin> <分支名> | 从指定云端仓库指定分支拉最新代码添加本地指定仓库 | ||
缓冲区 | 本地 | git add<文件名> | 将指定修改过的文件添加到缓冲区 |
git add . | 将所有修改过的文件添加到缓冲区 | ||
本地仓库 | 本地 | git commit -m "新版本描述" | 提交缓冲区的修改到本地仓库,并带一条描述性的信息 |
云端控制 | 本地>云端 | git push | 把本地仓库上传到云端仓库 |
2、常用删除命令
查看 | ||
缓冲区 | git rm <文件名> 或 git reset<文件名> | 从缓冲区和工作区中删除文件 |
git rm --cached <文件名> | 从缓冲区中删除文件,但保留在工作目录中 | |
本地仓库 | git reset --hard <commit> | 从本地仓库回退到工作区 |
git revert <commit> | 创建一个新的提交来撤销指定提交的修改 |
3、常用查看命令
删除 | ||
缓冲区 | git diff | 显示工作目录和暂存区之间的差异 |
工作区和缓冲区 | git status | 显示工作区的状态,包括哪些文件被修改、哪些文件被添加到缓冲区 |
本地仓库 | git log | 显示提交历史 |
五、常用分支控制命令
分支控制 | ||
增加 | git branch <新分支名字> | 创建新分支 |
git checkout -b <新分支名字> | 创建一个新分支并切换到该分支 | |
修改 | git merge <分支名字> | 将指定分支合并到当前分支 |
git checkout <指定分区> | 切换到指定分支 | |
查看 | gir branch | 查看本地的所有分支 |
gir branch -a | 查看本地和云端的所有分支 |
六、常用命令总结
命令 | 描述 |
git init | 初始化一个新的Git仓库,在当前目录 |
git clone <仓库> | 克隆一个远程仓库到本地 |
git add <文件> 或 git add . | 将文件或所有修改添加到暂存区 |
git commit -m "message" | 提交暂存区的修改到本地仓库,并附带一条消息 |
git status | 显示工作区的状态,包括哪些文件被修改、哪些文件被添加到暂存区等 |
git diff | 显示工作目录和暂存区之间的差异 |
git log | 显示提交历史 |
git branch | 查看所有本地分支 |
git branch -a | 查看所有本地和远程分支 |
git checkout <branch> | 切换到指定分支 |
git checkout -b <branch> | 创建一个新分支并切换到该分支 |
git merge <branch> | 将指定分支合并到当前分支 |
git pull | 从远程仓库拉取最新代码并合并到当前分支 |
git push | 将本地仓库的修改推送到远程仓库 |
git push -u origin <branch> | 推送本地分支到远程仓库,并设置上游分支 |
git tag | 创建标签 |
git tag -d <tag> | 删除本地标签 |
git push origin <tag> | 推送标签到远程仓库 |
git push origin :refs/tags/<tag> | 删除远程标签 |
git rm <文件> | 从暂存区和工作目录中删除文件 |
git rm --cached <文件> | 从暂存区中删除文件,但保留在工作目录中 |
git revert <commit> | 创建一个新的提交来撤销指定提交的修改 |
git reset --hard <commit> | 重置当前分支的HEAD到指定提交,并丢弃之后的修改 |
git help <command> | 显示指定命令的帮助信息 |
git config --global user.name "Your Name" | 设置全局用户名 |
git config --global user.email "your.email@example.com" | 设置全局邮箱地址 |