今日内容概要
内容详细
1、git详情
1.1 git与svn比较
每个客户端都能完成版本管理的功能
控制的对象是开发的项目代码
Git:无网络时也可以提交到本地版本库,待到有网络时再push到服务
所有代码都放在服务端,版本管理由服务端完成
svn:无网络不可以提交


1.2 git,github,gitee,gitlab分别是什么
2、git工作流程
工作流程指的就是三个区的来回操作
操作问题
git add .
git commit -m '注释'
git reset --hard 版本号
"""
1)有红色信息(工作区有内容),就执行 add
2)全绿信息(内容全部在暂存区),才执行 commit
3)只有被版本库控制的代码,才能被监听,所以可以回滚到任何一个版本
"""

3、git常用命令
配置全局用户信息---》以后所有文件夹再提交到版本库显示的就是这个名字,所有的都显示这个名字
git config --global user.name 'lqz'
git config --global user.email '3@qq.com'
写在了用户家路径的 .gitconfig, 写入了以上信息
配置局部用户信息---》当前文件夹以后再提交到版本库显示的就是这个名字、
git config user.name 'liuqingzheng'
git config user.email '306334678@qq.com'
写在了仓库(gittest文件夹)路径下的 .git文件夹下的config文件
git init
git status
git add .
. 表示当前路径下所有变更
git commit -m '注释'
git log
git reflog
git reset --hard 版本号
git reset --hard 版本号
把工作区变化撤销
git checkout .
把暂存区拉回到工作区(绿变红)
git reset HEAD
.git文件夹做了记录,不能删除,如果删除,版本的记录也就没了
单独的空文件夹不会被版本管理

4、Git忽略文件
1 在仓库路径下(被git管理的文件夹),创建一个 .gitignore 的文件,在文件中写入忽略
2 文件与文件夹均可以被过滤
3 文件过滤语法
"""
过滤文件内容
文件或文件夹名:
代表所有目录下的同名文件或文件夹都被过滤
/文件或文件夹名:
代表仓库根目录下的文件或文件夹被过滤
举例:
a.txt:
项目中所有a.txt文件和文件夹都会被过滤
/a.txt:
项目中只有根目录下a.txt文件和文件夹会被过滤
/b/a.txt:
项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
*x*:
名字中有一个x的都会被过滤(*代表0~n个任意字符)
空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)
"""
在项目根目录下创建:.gitignore 文件
写入:
.idea
__pycache__
*.pyc
logs/*.log
scripts
在空文件目录下 都创建包文件:
__init__.py
5、分支操作
git 可以创建多条分支,创建完以后,在不同分支上提交版本,不同分支的版本相互不影响
"""
1.创建分支
git branch 分支名
2.查看分支
git branch
3.切换分支
git checkout 分支名
4.创建并切换到分支
git checkout -b 分支名
5.删除分支
git branch -d 分支名
6.查看远程分支(暂时先不看)
git branch -a
7.合并分支
git merge 分支名
把dev分支合并到master分支:
要先切换到master分支,执行合并dev分支的命令
"""
原因是:master改了东西提交了,dev改了东西提交了,他们改的是同一个代码,合并就会出冲突
git checkout -b dev
touch dev.txt
git add .
git commit -m 'dev分支增加了dev.txt'
git checkout master
git merge dev
----------
git checkout dev
git add .
git commit -m 'dev分dev.txt增加了一行'
git checkout master
git merge dev
------

6、git远程仓库
gitee,github,bitbucket,自己搭建的gitlab---》把本地版本库中的代码提交到远程仓库---》大家都提交,完成代码合并,协同开发

6.1 把本地代码提交到远程仓库(https协议连接)
全局设置
git config --global user.name "liuqingzheng"
git config --global user.email "306334678@qq.com"
情况一:原来连本地仓库都没有
mkdir luffy_api
cd luffy_api
git init
touch README.md
git add README.md
git commit -m "first commit"
-----以上操作创建luffy_api项目时,已经做过了------
git remote add origin https://gitee.com/liuqingzheng/luffy_api.git
git push origin master
情况二:原来本地有仓库
cd 到项目目录下
git remote add origin https://gitee.com/deity-jgx/luffy_api.git
git push origin master
6.2 remote源操作
git remote
git remote add 起一个名字 远程仓库地址
git remote add origin 仓库地址
git remote remove origin
git push 远程仓库名字(自己remote创建的仓库标志名字) 远程仓库分支名(需要把代码推送到哪个分支 就用哪个分支名)
git push origin master
git push origin second:first
第一次:要输入用户名密码,只要输入一次,以后就记录到操作系统上了
win:凭证管理--》删除
mac:钥匙串---》搜
git pull 远程仓库名字(自己remote创建的仓库标志名字) 远程仓库分支名(需要从master分支拉代码就用master)
git pull origin master
在公司里,没事就git pull 一下,拉取代码的频率高,出现冲突的概率就小
写了一个星期代码,从来没有拉过,你也改了s1.py s5.py
这一个星期张三,李四王五,分别改了s1.py s2.py s3.py
你一提交---》多人在同一条分支上开发代码出现的冲突,出冲突了,需要解决冲突
git add .
git status
git commit -m
git pull origin master
git push origin master
6.3 ssh连接提交到远程仓库
把公钥配置到远程机器,私钥自己留着
我和远程机器就可以安全通信
在新的cmd窗口操作:
ssh-keygen -t ed25519 -C "306334678@qq.com"
一路回车,就会在用户家路径的.ssh文件夹下生成一对公钥和私钥
看下图
直接将本地公钥文件内容复制到gitee
git remote remove origin
git remote add origin git@gitee.com:deity-jgx/luffy_api.git
git push oringin master
你的一个gitee账号,可以配置多个ssh公钥,如果你配置了多个ssh公钥,意味着有多台机器可以免密操作仓库
公司里ssh用的多
你到了公司,公司会给你gitlab账号和密码,地址,你要在本地生成ssh公钥和私钥,配置到你的gitee,gitlab上



6.4 协同开发引入
git clone https://gitee.com/deity-jgx/luffy_api.git
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?