git config --global --list //查看之前设置
//删除之前的配置
git config --global --unset user.name "你的名字" //删除之前的名字配置
git config --global --unset user.email "你的邮箱"//删除之前的名字配置
Git简介
- git是目前世界上最先进的分布式版本控制系统
- git的优点是:
- 适合分布式开发,强调个体
- 公共服务器压力和数据量都不会太大
- 速度快,灵活
- 任意两个开发者之间很容易解决冲突
- 离线工作
Git环境认证
- 在mac的终端中输入:git --version
- 在windows的终端中输入:git --version
Git基本概念
Git工作流程
GIt常用命令
基于Git远程仓库
远程仓库 | 地址 | 备注 |
GitHub | https://github.com/ | 世界上最主流的开源仓库 |
GItee | https://gitee.com/ | 国内目前比较主流的开源仓库,也可以私有化部署 |
Gitlab | https://gitlab.com/ | 私有化部署企业使用的较多 |
git远程仓库的应用场景
- 获取远程仓库代码:开源代码、项目代码
- 项目协作:维护自己的代码、多人维护同一代码
GIt同步命令
- 克隆远程仓库
- git clone <url>
- 远程连接方式:
git config --global --list //查看之前设置 //删除之前的配置 git config --global --unset user.name "你的名字" //删除之前的名字配置 git config --global --unset user.email "你的邮箱"//删除之前的名字配置
若是新系统,第一步创建密钥
- https连接方式:使用给定URL即可克隆,在push时验证用户名及密码
- ssh连接方式:需要提前添加ssh key,在push时不需要输入用户名,配置ssh时设置了密码才需要输入密码(这个方法是最常用的)
-
ssh-keygen -t rsa -C "你的git邮箱"
输入完命令后,会提示输入文件名(这里是gitee_rd_rsa)
-
输入完文件名,会车,会要求输入密码,不管,继续回车,再按回车
-
使用cat gitee_rd_rsa.pub,从ssh-rsa一直复制到最后
-
然后将密钥粘贴到gitee即可
- 拉取远程仓库
- git pull 命令可以将最新的远程仓库拉取到本地
- 初始化仓库
- 在已存在的目录中初始化仓库
- git init
- 如何查看当前目录是否成为git仓库
- 在当前目录下使用ls -al
- 如果查看到当前目录下存在隐藏文件
- 关联远程仓库
- git remote add origin <url> //该命令只是相当于将本地的git仓库与远程仓库建立起关联
- 需要再将远程仓库中的代码放入本地git仓库 git pull --allow-unrelated-histories orign master
- 然后再ls当前目录下的,即可看到当前目录下的远程仓库中的代码
- git remote add origin <url> //该命令只是相当于将本地的git仓库与远程仓库建立起关联
- 在已存在的目录中初始化仓库
GIt修改命令
- 跟踪新文件
- 跟踪某个文件(将目录下指定文件添加到暂存区)
- git add new_file.txt
- 跟踪当前目录下所有的文件(将目录下所有的文件添加到暂存区)
- 跟踪某个文件(将目录下指定文件添加到暂存区)
git add .(注意add与.之间存在空格)
- 提交更新
- Mac终端 vi/vim 的简单使用_weixin_30877227的博客-CSDN博客
- git commit -m "comment" //提交更新到git本地仓库
- 推送到远程仓库
- git push //将本地仓库中的代码上传到远程仓库中
- 当第一次执行git push时 系统会提醒输入 git push --set-upstream orign main
-
GIt常用调试命令
- 检查当前文件状态 git status
- 当前新创建一个文件,还未上传到本地仓库
- 将提示你使用git add .将该目录下的所有文件上传到本地仓库中
- 在提交前检查当前仓库的一个状态,避免提交一些不想提交的代码
- 查看已暂存文件和未暂存的修改
- git diff //查看当前文件与暂存区的区别
- git diff --staged//暂存区将要被提交的内容
- 文件输入git add . 将文件上传到暂存区,还未进行提交
- commit到本地仓库中后再使用,将不会出现任何回复
- 撤销操作
- git checkout <文件名.txt> //撤销对文件的操作
- git reset HEAD <file> //取消暂存
- 移除文件
- git rm -f <file> //删除文件
- git rm --cached <file> //移除暂存区
- 忽略文件
- touch .gitignore 创建一个git忽略txt文档,将要忽略的文件名字vim到文件中
- 创建demo路径后
- git到远端仓库,demo将未被上传
pycharm如何与gitee打通
pycharm连接到gitee的操作_pycharm连接gitee_BuptBf的博客-CSDN博客
git log分析与检索
- git log 分析
- 终端内输入git log
- git log 检查
- 筛选时间 :git log --since = ‘2023-02-02’
- 筛选作者 :git log --author = '作者名字'
- 筛选描述:git log --grep = ‘update’(comments里面的内容)
分支管理策略
- 分支管理
- 概念:每次提交,git都会把它们串成一条时间线,这条时间线就是一个分支
- 价值
- 多人协同
- 环境管理
- 创建分支
- 新建分支,但仍然停留在当前分支:git branch 分支名
- 新建分支并直接切换至当前该分支:git checkout -b 分支名
- 查看分支
- git branch //列出当前本地的所有分支
- git branch -r // 列出所有远程分支
- git branch -a //列出所有的远程分支及本地分支
-
- 切换分支
- git checkout <分支名>
- 删除分支
- git branch -d <分支名>
git 合并与冲突
- 分支合并应用场景
- 合并分支
- git merge 其他分支 本分支 //合并指定分支到当前分支
- 举例子:将bugfix 分支合入dev分支中
- git merge 其他分支 本分支 //合并指定分支到当前分支
- 什么是冲突
- 解决冲突