git使用
# svn :集中式管理,cs架构,客户端需要配合服务端才能正常使用功能
# git:分布式管理,单台机器就能进行版本管理
# 有三个区 -工作区:代码,文件存放的位置,新增,修改,删除文件,代码 -暂存区:把工作区的更改提交到暂存区 -版本库:把暂存区的数据,提交到版本库 # 工作流程 -在工作区修改代码,提交到暂存区,暂存区再提交到版本库,代码才被版本管理,可以回退 -各个区域可以相互操作,但工作区不能直接提交到版本库
# 操作步骤 # 1 创建文件夹 lqz # 2 初始化仓库(文件夹中)---》出现 .git 隐藏文件夹 git init 仓库名 # 在当前文件夹再创建一个文件夹作为仓库 git init #当前文件夹就是仓库,就会被管理 # 3 在当前文件夹下创建文件 s1.py # 4 在命令窗口下敲---》查看当前仓库状态---》只要有红色,说明工作区更改了,但是没有提交到暂存区 git status(重点) # 5 把工作区变更提交到暂存区 git add . (重点) # .表示当前路径下所有更改,如果你只想提交某个文件 # 6 git status ---》变绿色---》暂存区的代码没有提交到版本库 # 7 把暂存区所有内容提交到版本库 git commit -m '注释内容' 发现提交不了,需要设置用户 # 8 设置用户 # 设置全局用户---》所有仓库都用这个用户---》用户家路径C:\Users\oldboy\.gitconfig中写入了 git config --global user.email "306334678@qq.com" git config --global user.name "liuqingzheng" # 设置局部用户---》当前仓库---》在.git文件夹下 git config user.email "3@qq.com" git config user.name "lqz" # 9 把暂存区代码提交到版本库 git commit -m '注释内容'(重点) # 10 git status ---》没有颜色 # 11 查看版本管理信息--- git log --》显示谁在什么时间提交的,版本号是多少 git reflog ---》简略显示版本信息 # 12 把工作区回退到某个版本 git reset --hard 版本号(重点) # 13 由绿变红(把暂存区拉回到工作区) git reset HEAD (一般不做) # 14 把当前工作区的更改(不包含新增,包含修改和删除),回退回去 git checkout .
# 在仓库目录下,新建一个 .gitignore 文件,文件中写 目录或者文件或者模糊匹配---》它可以完成对这些文件的忽略 # 项目的日志文件,生成的编译文件,前端项目的node_models文件夹都不需要被版本管理 # 写忽略文件可以完成这个事 """ 过滤文件内容 文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤 /文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤 eg: a.txt:项目中所有a.txt文件和文件夹都会被过滤 /a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤 /b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤 *x*:名字中有一个x的都会被过滤(*代表0~n个任意字符) 空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件) """ ## git 不管理空文件夹,文件夹下有文件,才会被管理
git多分支开发
# 什么是多分支 git分支的概念 可以认为分支就是当前工作目录中代码的一份副本。 使用分支,可以让我们从开发主线上分离出来,以免影响开发主线 # 分支操作 -创建分支 git branch 分支名 -切换分支 git checkout dev -查看分支 git branch -删除分支 git branch -d 分支名字 -合并分支 git merge dev # 切换到要合并进的分支(master) ,把dev合并到master上 # 不同分支的操作,是相互独立的 # 分支合并可能会出冲突 # 面试题:你们公司git是如何分支,如何分支管理的 -我们公司,项目不大,基本就用三条分支 master主分支,dev开发分支,bug分支 -我们在dev分支上协同开发,如果出现bug,从主分支现拉出bug分支修改,修改后合并进主分支
# 上面都是在本地操作,做代码管理,咱们需要协同开发,把多人的代码合并到一起,需要有一个远程仓库,搭建都把代码提交到远程仓库,远程仓库帮我们做合并 # github,gitee,gitlab 都是远程仓库 # 创建完远程仓库后,我们的操作 -本地没有代码 git init git add . git commit -m 'sss' git remote add origin https://gitee.com/liuqingzheng/luffyapi.git git push origin master -本地有代码(luffyapi写了一部分功能了) git remote #查看有哪些远程仓库 git remote remove 名字 # 删除远程仓库的关联 # 创建一个远程仓库的关联 git remote add origin https://gitee.com/liuqingzheng/luffyapi.git # 把本地代码提交到远程仓库 把本地master分支提交到远端的origin上 # 输入gitee的用户名密码 git push origin master
# https的链接方式:输入用户名和密码,输入一次就被保存了 # ssh的链接,不需要用户名密码,需要公钥和私钥 第一步:生成地址参照地址:https://gitee.com/help/articles/4181#article-header0 第二步:在命令行中执行 ssh-keygen -t rsa -C "306334678@qq.com" 第三步:会在当前路径下生成公钥私钥 /c/Users/oldboy/.ssh/ id_rsa :私钥 不能泄露 id_rsa.pub:公钥 可以给别人,配置到git远程仓库 第四步:公钥配置到gitee账户上 第五步:以后就不需要使用用户名密码,就可以直接操作gitee了,走的是ssh链接,而不是https链接 第六步:删除原来配置的https的origin git remote remove origin 第七步:加入ssh的origin git remote add origin git@gitee.com:liuqingzheng/luffyapi.git # 注意,在公司里,在设置用户邮箱和名字的时候,要设置自己真正的邮箱(注册gitee,gitlab的邮箱)
# 步骤 -第一步:你到公司(gitee,gitlab),注册账号 -第二步:把你的公钥配置在你的gitee,gitlab账号上 -第三步:把你的邮箱发给项目的管理者(你老大) -第四步:他把你账号添加为开发者---》你就可以读写项目了 -第五步:你要把公司项目拉到本地 -方式一:直接下载zip -方式二:在命令行中执行 git clone git@gitee.com:liuqingzheng/luffyapi.git -第六步:改代码,提交 (ssh,https提交) git add . git commit -m '注释' #在提交之前一定要拉一下代码 git pull origin master # 可能会有冲突 git push origin master # 冲突出现的原因: -分支合并 -多人在同一分支开发
# 多人在同一分支开发出现冲突 # 冲突出现的样子 print('lqz') <<<<<<< HEAD ======= print('sss') >>>>>>> 732f1921741fa4d6153d1c4b7eb0302a509838d9 先把冲突的地方删除,剩下的代码分析,需要留哪些,到底是留我的代码,还是留同事的代码(删同事的,跟同事说一声),如果删自己的,不用说
操作流程 git branch dev git checkout dev 在代码中增加一行 git add . git commit -m '提交了' git checkout master #加的一行看不到 在代码中增加同一行 git add . git commit -m '提交了' # 把dev合并到master中 git merge dev #冲突了 #解决冲突 git add . git commit -m '提交了'
######### 每次提交代码之前都要先拉一下###### #公司里叫提交 pr # 操作步骤 在远端新建dev分支 在本地新建dev分支,切换到dev分支 执行git pull origin dev #把远端的dev拉倒本地的dev 修改代码 git add . git commit -m '注释' git pull origin dev # 先拉 git push origin dev # 把本地当前在分支(dev)推到远端dev 远端的master和dev代码就不一样了 远端合并代码 提交pr 你领导审核,审核过后,通过,就合并了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下