目录
1. git 是什么?
git 是一个 版本控制工具
2. git 的作用是什么?
3. git的下载安装
git下载官网地址 注意:不要安装在中文目录
- 一直 next下一步即可(如果想更改默认的安装路径,请不要出现中文)。
- 安装成功后,桌面不会有任何图标。
- 在任意文件夹内,右键能看到如下菜单,表示安装成功。
- Mac系统,打开终端,输入git --version 回车,看到git版本号表示安装成功。
4. git的配置
- 当我们使用Git记录代码的版本的时候,Git需要知道你是谁?也就是提交代码的人是谁?
- Git要求,必须配置一个用户名和一个邮箱
- 用户名,根据团队要求配置或者自定义配置 —— git config --global user.name "xxx"
- 邮箱,根据团队要求配置或者自定义配置 —— git config --global user.email "xxx"
- 查看配置信息 —— git config --list
5. git基础命令
5.1 初始化 git 仓库
- windows用户,进入项目文件夹中,通过鼠标右键打开 "Git Bash Here"
- Mac用户,找到项目文件夹,在文件夹上鼠标右键,选择“在此处新建终端窗口”
- 执行 git init 命令,将当前的目录转化为 Git仓库
初始化仓库,在当前目录下生成一个隐藏文件夹.git —— git init
git init 命令会创建一个名为 .git 的隐藏目录,这个.git目录就是当前项目的Git仓库,里面包含了初始的必要文件。
注意事项:
- 找对项目文件夹(必须保证终端中的路径是项目文件夹)
- 初始化之后,会在项目文件夹中出现一个.git的隐藏文件夹;有关git的全部记录都在里面,不可轻易删除
- 不可以嵌套初始化
5.2 git的三个区
5.3 git的工作流程
- 在工作区中修改文件(新建文件、修改文件内容等等)
- 将修改好的文件,添加到暂存区,暂存
- 将暂存区的文件,提交到仓库,形成版本记录
5.4 git的基本命令
- git status 查看工作区文件的状态 (红色:新创建的文件或被修改的文件。 绿色:文件在暂存区待提交。)
-
git log 作用:查看提交日志(版本记录)
-
如果日志比较多,命令窗口会显示不全
- 按 ↓键,可以查看剩余的日志
- 随时按 q键,退出查看
-
- 使用git log命令时,可以跟一些选项,简化显示的日志信息:
- git log --oneline 单行查看简略版日志
- git log -n 查看最近n次提交的日志
- git reflog 查看所有的提交日志
- git reset
-
作用:版本回退,将代码恢复到已经提交的某一个版本中
-
命令: git reset --hard 版本号 —— 可以回退到任意版本(回退版本后,注意观察工作区的代码)
-
- git reflog —— 可以查看所有的版本信息
- git add . —— 会将项目工作区目录的所有文件,都暂存管理
- git reset 文件名称 / git reset —— 把文件从暂存区移除
5.5 git忽视文件
- 仓库根目录中新建一个 .gitignore 文件(固定文件名)
- 将不需要被git管理的文件路径,添加到 .gitignore 中
6. git的分支命令
相关命令
- git branch —— 查看分支
- git branch 分支名 —— 创建分支
- git checkout 分支名 —— 切换分支
- git merge 分支名 —— 合并代码
分支命令补充
- git checkout -b 分支名 —— 创建并切换分支
- git branch -d 分支名 —— 删除分支
注意:
- git checkout -b 分支名称 是下面两条命令的简写形式:
- git branch 分支名称
- git checkout 分支名称
7. 分支冲突
如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法干净的合并它们,就会出现合并冲突。
分支的本质:分支实质上是一个指针(游动的标记),指向最后一次的版本记录。
其实版本回退切换,只是在让分支指针指向不同的版本记录。
8. git 远程仓库
远程仓库:托管在因特网或其他网络中的 项目版本库。支持多人协作,共同管理远程仓库。
如何创建一个远程仓库?在哪创建?
git代码托管平台
专门用于 存放远程仓库 的网站平台,就是代码托管平台
- github 全球最大的开源项目托管平台 - 免费,国内访问受限,不稳定
- gitee 码云,国产开源项目托管平台。免费,访问速度快、纯中文界面、使用友好
- gitlab 对代码私有性支持较好,企业用户多, 一般收费,允许自建 git 服务器
举例:
git支持多种传输协议:
最常用的两种传输协议:
- https协议:需要输入用户名和密码 —— https://gitee.com/xxx/test.git
- ssh协议: 需要配置秘钥,可免密码登录 —— git@gitee.com:xxx/test.git
- 注意:在实际公司开发中,ssh 的方式更为常见,更加安全可靠
- id_rsa(私钥文件,存放于客户端的电脑中)
- id_rsa.pub(公钥文件,需要配置到 gitee平台 中)
- 打开 Git Bash
- 粘贴如下的命令 ssh-keygen -t rsa
- 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹\.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件
- 使用记事本打开 id_rsa.pub 文件,复制里面的文本内容
- 粘贴配置到 码云 -> 设置 -> ssh 公钥 中即可
- 检测是否配置成功,打开命令行,执行:ssh -T git@gitee.com
- 打开终端,找到进入.ssh文件夹 —— cd ~/.ssh
- 查看.ssh文件夹中的文件(一般有两个“id_rsa ,id_rsa.pub)—— ls
- 查看对应的公钥文件内容 —— cat id_rsa.pub
- 复制内容,配置到对应的平台
8.1 克隆、拉取、提交远程代码
- git clone —— 克隆远程仓库的代码到本地
-
git clone [远程仓库地址]
-
- git pull —— 拉取更新,将远程的代码下载合并到本地的分支
-
git pull
-
- git push —— 将本地仓库中代码提交到远程仓库
- git push 远程仓库地址 分支名
- 第1步,将本地仓库和远程仓库建立关联(给远程仓库地址起个别名) git remote add origin 远程仓库地址
- 第2步,使用 git push -u origin 分支名称 命令推送
- 注意:第一次推送分支可以带 -u 参数,此后可以直接使用 git push 推送当前分支代码到远程分支了。
- 如何拉取别人的远端分支到本地?下载远端分支本地
-
git checkout -t origin/分支名 —— 先在本地建立一个分支,并切换到该分支,然后从远程分支上同步代码到该分支上
- 后续拉取该分支的更新,执行命令:git pull
-
- git remote
- 如果每次push操作都带上远程仓库的地址,非常的麻烦,我们可以给仓库地址设置一个别名
-
添加:git remote add origin 远程仓库的地址
-
查看:git remote -v
-
删除:git remote remove origin
9. git常用命令总结
-
分支管理:
git branch
、git checkout
、git merge
、git rebase
等命令用于管理和操作分支。 -
标签管理:
git tag
命令用于管理标签,可以用来标记重要的提交或版本。 -
查看提交历史:
git log
命令用于查看提交历史,可以显示提交的作者、日期、提交信息等。 -
查看状态和差异:
git status
、git diff
命令用于查看工作目录的状态和文件之间的差异。 -
撤销操作:除了
git revert
,还有git reset
和git checkout
等命令可以用来撤销操作。 -
存储临时更改:
git stash
命令用于将当前工作目录的临时更改存储起来,以便稍后恢复。 -
子模块:
git submodule
命令用于管理子模块,允许将一个 Git 仓库作为另一个 Git 仓库的子目录。 -
远程操作:除了
git push
和git pull
,还有git fetch
、git remote
等命令用于远程操作。 -
重写历史:
git rebase
、git commit --amend
等命令用于重写提交历史。 -
交互式操作:
git add -p
、git rebase -i
等命令允许进行交互式操作,更精细地控制提交历史和代码变更。
git init | 在当前目录初始化一个新的 Git 仓库 |
git clone 远程仓库地址 | 克隆一个远程仓库到本地 |
git add 文件名称 | 将某个文件添加到暂存区 |
git add . | 将所有文件添加到暂存区 |
git commit -m "提交内容描述" | 提交暂存区的文件到本地仓库,并附带一条提交消息 |
git status | 查看当前工作区和暂存区的状态 |
git diff | 查看当前工作区和暂存区文件的差异 |
git log | 查看提交历史 |
git branch 分支名称 | 创建一个新的分支 |
git checkout 分支名称 | 切换到指定分支 |
git merge 分支名称 | 将指定分支合并到当前分支 |
git pull | 拉取远程仓库的更新到本地 |
git push | 推送本地提交到远程仓库 |
git remote -v | 查看远程仓库的信息 |
git fetch | 获取远程仓库的更新到本地,但不自动合并 |
git reset 文件名称 | 将文件从暂存区移除,但保留在工作区 |
git reset --hard 提交id | 将当前分支指向指定的提交,并丢弃暂存区和工作区的修改 |
git revert 提交id | 创建一个新的提交,撤销指定提交的修改 |