1. git介绍和安装
1.首页功能写完了---》正常应该提交到版本仓库---》大家都能看到这个---》运维应该把现在这个项目部署到测试环境中---》测试开始测试---》客户可以看到目前做的情况
需要有版本仓库,来管理我们的代码
- svn:比较老,公司基本不用
- git:比较流行,做代码管理
2. git 能干什么?
完成,协同开发(多人一起开发)项目,帮助程序眼整合代码
- 1.帮助开发者合并开发的代码
- 2.如果出现冲突代码的合并,会提示后提交合并代码的开发者,让其解决冲突
- 3. 做版本管理 ---》可以 把代码退回到某个版本
3. 安装git
- 官方下载
- 安装:一路下一步,都选默认的,可以修改安装路径,其他不需要修改
- 验证安装;
1. 在cmd中输入:git -v
2. 在任意路径点击右键:能看到:
git gui here:在此处打开一个git图形化界面
git bash here:在此处打开一个命令窗口
2. git,github,gitlab,gitee介绍
文档:https://www.cnblogs.com/liuqingzheng/p/15328319.html
git :是一个软件,做版本管理和代码合并,有一些git命令github:是一个网站,远程代码仓库,全球最大的开源代码托管网站,使用git的命令来上传下载代码
gitee:是一个网站,远程代码仓库,国内最大的开源代码托管网站,使用git的命令来上传下载代码
gitlab:是一个网站,公司内部搭建的代码托管平台,远程代码仓库,使用git的命令上传下载代码
3.git工作流程
分为工作区、暂存区、版本库
git 就是对文件进行管理 ---》代码也是文件
流程核心总结:
""" 1)有红色信息(工作区有内容),就执行 add 2)全绿信息(内容全部在暂存区),才执行 commit 3)只有被版本库控制的代码,才能被监听,所以可以回滚到任何一个版本 """
如下图:
4.git常用命令
1.将已有的文件夹 - 初始化为git仓库
git init # 初始化当前文件夹作为仓库 git init XX # 初始化当前文件夹下XX作为仓库
2.设置用户(在本机设置一次全局即可)
后期使用远程仓库,可以区分是谁提交了代码
- 2.1 设置全局用户(针对所以仓库)
""" git config --global user.name '用户名' git config --global user.email '用户邮箱' 注:在全局文件 C:\Users\用户文件夹\.gitconfig新建用户信息,在所有仓库下都可以使用 """
当创建完成之后,会在C:\Users\用户文件夹\.gitconfig新建用户信息,如下图所示:
- 2.2 创建局部用户(只针对当前仓库)
git config user.name '用户名' git config user.email '邮箱'
3. 查看仓库状态
# 当仓库中有文件增加、删除、修改,都可以在仓库状态中查看 git status #查看仓库状态 git status -s # 查看仓库状态的简约显示
git status:
- 红色:仓库中新增了,或修改了某些文件,还没有提交到暂存区
- 绿色:在暂存区有变化,还没有提交到版本库
4. 工作区内容提交到暂存区
空文件夹不会被git记录
把工作区变更,提交到暂存区了
有红色变成绿色
git add . # 添加项目中所有文件 git add 文件名 # 添加指定文件
5. 提交暂存区内容到版本库
git commit -m "版本描述信息" # 把暂存区所有内容,提交到版本库,被版本管理起来,以后可以回退,查看
6. 查看版本记录
git log # 显示整个版本号 git reflog # 这个版本号显示的简洁点
7. 切换版本
git reset --hard 版本号(可以截一小段)# 切换版本号
8. 只要被版本管理了(一定能要提交到版本库),以后无论如何操作,都能再退回到某个位置
9. 了解
git checkout . # 把工作区变更删除 git reset HEAD # 把暂存区,拉回到工作区 git reset --soft 23e9e095 # 版本号是上一个版本,把版本库内容拉回到暂存区 git reset --mix b23875 # 把版本库内容拉回到工作区,变红
5. git忽略文件
如果一个文件夹被git管理了,所以文件都会被管理,所以文件发生变化,都会变红
在一个文件夹中,可能有些文件,或文件夹不想被git管理,这时候需要设置过滤文件
使用方式:
- 1. 在仓库目录下(其他目录下不要有),新建一个文件:.gitignore
- 2. 在里面写忽略文件或文件夹
""" 过滤文件内容 文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤 /文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤 eg: a.txt:项目中所有a.txt文件和文件夹都会被过滤 /a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤 /b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤 *x*:名字中有一个x的都会被过滤(*代表0~n个任意字符) 空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件) """
需要被忽略的文件、文件夹:
进行提交:
提交完成,变绿色,在暂存区
注意:
1. 忽略文件,在一开始就要忽略,如果已经被版本管理了,在忽略就没用了
2. 如果之前没有被管理,且已经提交了,可以按照下面步骤做:
删除---》提交到版本库---》再在忽略文件中加入
记住:
迁移记录文件是否提交---》建议不提交
**/migrations/*.py # 忽略迁移记录
!**/migrations/__init__.py #不不忽略 __init__.py