【 一 】安装Git
1、下载git
git官网地址:https://git-scm.com/download/win/
选择所需要的版本,进行下载。
2、下载完成之后,双击下载好的exe文件进行安装。
3、默认是C盘,推荐修改一下路径(非中文并且没有空格),然后点击下一步。
4、Git 选项配置,推荐默认设置,然后下一步。
5、Git 安装目录名,不用修改,直接点击下一步。
6、Git 的默认编辑器,建议使用默认的 Vim 编辑器,然后点击下一步。
7、在Git创建分支后的默认的名字(master),如果没有特别的使用默认的设置,点击next即可。
8、修改 Git 的环境变量,使用默认的即可,点击next。
9、开启https连接,保证数据传输数据的安全,按照默认的选择即可。
10、配置 Git 文件的行末换行符,Windows 使用 CRLF,Linux 使用 LF,选择第一个自动转换,然后继续下一步。
11、选择 Git 终端类型,选择默认的 Git Bash 终端,然后继续下一步。
12、选择 Git pull 合并的模式,选择默认,然后下一步。
13、其他配置,选择默认设置,然后下一步。
14、额外的配置选项,技术还不成熟,有已知的 bug,不建议勾选,然后点击右下角的 Install按钮,开始安装 Git。
15、安装完成后,点击FInish安装完成。
【 二 】检查
打开控制面板(win+R 输入cmd),查看Git版本信息
# git -v
【1】 git gitlab gitee github介绍
# git -软件,做版本管理的,分不同平台(win,mac)# github -网站,git远程代码仓库,全球最大的开源代码托管平台,全球最大的开源代码仓库# gitee(小公司,私有仓库) -国内最大的开源代码托管平台# gitlab(公司内部这个多) -公司内部的远程仓库 # bitbucket 给公司做代码托管的,没有开源
【2】git使用流程
# git 有三个区 工作区:某个文件夹,在文件夹 新增,修改,删除,更新 文件--》用户操作的位置 暂存区:工作区的变更---》提交到暂存区 版本库:把暂存区内容---》提交到版本库---》文件就被版本管理了--》回退到某个版本 远程仓库:第三方:github,gitee,gitlab # 工作流程:三个区的来回操作# 常用命令 1 初始化仓库:git init # 创建出一个 .git 文件夹--》不要删,删除仓库记录都没了 新建文件夹:lqz ---》git bash here---》打开termial--》输入linux命令 ls mkdir 2 查看仓库状态 git status 3 在工作区,新建 s1.py,加入一行代码 4 把变更提交到暂存区 git add 文件名 # 提交当前文件的变更 git add . # 所有变更都提交 5 把暂存区提交到版本库 git commit -m '注释,必须加' 6 查看版本记录 git log git reflog -----了解---------- 6 git checkout . # 把工作区变更回退(还没放到暂存区) 7 git reset --soft 版本号 # 唯一表示,可以不写全,短一些 git reset --soft 05125c7 # 上一个版本号 8 git reset --mix 2b8766f767 # 把版本库拉回到工作区
【3】git常用命令
# 1 初始化仓库 ---仓库目录下会出现 .git 文件夹--》文件夹千万不要删除git init # 初始化当前文件夹git init 文件夹 # 在当前文件夹下创建文件夹,并把新创建的文件夹作为仓库# 2 查看仓库状态git status git status -s #查看仓库状态的简约显示# 红色:工作区有变更,但是没有提交到暂存区 # 绿色:工作区变更提交到暂存区,但是没有提交到版本库---》还没有被版本管理起来# 白色:所有变更都被版本管理了# 3 把工作区变更提交到暂存区git add 文件名 文件夹git add . # 所有变更# 4 把暂存区提交到版本库git commit -m '注释' # 只要提交一次,就会有个版本号,以后根据版本号我们可以回退到任意版本# 5 设置用户名和邮箱--》一般写在git init之后,只设置一次 # 全局设置 git config --global user.name '用户名' git config --global user.email '用户邮箱' # 局部设置: git config user.name 'xxx' git config user.email '4@qq.com' # 6 查看版本日志 git log # 能看到用户:lqz <3306@qq.com> git reflog ----------了解-------------# 7 撤销工作区变更 git checkout . -- 撤销所有暂存区的提交git checkout 文件名 -- 撤销某一文件的暂存区提交# 8 撤销暂存区提交:add的逆运算 >: git reset HEAD . -- 撤销所有暂存区的提交 >: git reset 文件名 -- 撤销某一文件的暂存区提交 # 9 git log 更多 查看时间点之前|之后的日志: >: git log --after 2018-6-1 >: git log --before 2018-6-1 >: git reflog --after 2018-6-1 >: git reflog --before 2018-6-1 查看指定开发者日志 >: git log --author author_name >: git reflog --author author_name# 10 回滚到指定版本: 回滚到上一个版本: >: git reset --hard HEAD^ >: git reset --hard HEAD~ 回滚到上三个版本: >: git reset --hard HEAD^^^ >: git reset --hard HEAD~3 回滚到指定版本号的版本: >: git reset --hard 版本号 (重点) >: eg: git reset --hard 35cb292
3.1 git log和git reflog区别
# git logcommit 7884b345a03ec8a1dfae5976d3e1c4ec55a2f785 (HEAD -> master) # 版本号Author: xxx <4@qq.com> # 作者Date: Mon Jan 22 12:29:13 2024 +0800 # 日期 xxx # 注释# 如果做了代码回撤---》这里的日志看不到,就通过git reflog来查看
3.2 版本回退 git reset --hard
回滚到上一个版本:>: git reset --hard HEAD^>: git reset --hard HEAD~回滚到上三个版本:>: git reset --hard HEAD^^^>: git reset --hard HEAD~3回滚到指定版本号的版本:>: git reset --hard 版本号 (重点)>: eg: git reset --hard 35cb292# 只要是被版本管理了,后期我们可以回退到任意版本
【4】 git忽略文件
使用
'''初始化git init查看文件信息git status提交文件到缓存区git add .文件到缓存区git commit -m "注释"全局配置git config --global user.name '白植涛' git config --global user.email '11385924+bai-zhitao@user.noreply.gitee.com'提交仓库信息git remote add origin https://gitee.com/bai-zhitao/lufy.gitgit push -u origin "master"不行就这个git push origin master'''
# .gitignore文件.venv*.log*.pyc__pycache__**/migrations/*.py!**/migrations/__init__.pyscriptsluffy.log
-
必须要创建一个
.gitignore
文件必须要是这个名字
# 在仓库中,某些文件或文件夹,不期望被git管理,不被版本管理 -node_models -.idea -.vscode -__pycache__ :为了加快执行效率---》解释器会把py文件,只要执行过,就编译成views.cpython-38.pyc---》以后再运行,直接运行这个文件,速度快 -项目的日志文件 # 在仓库目录下新建一个文件:.gitignore 标明哪些不被git管理,标明语法如下: -如果是文件,直接写文件名 -如果是文件夹,直接写文件夹名 # 具体如下""" 过滤文件内容文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤例如:a.txt:项目中所有a.txt文件和文件夹都会被过滤/a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤/b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤*x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)注意:# 以'#'开始的行,被视为注释. # 忽略掉所有文件名是 lqz.txt的文件. lqz.txt# 忽略所有生成的 html文件,*.html# lqz.html是例外,不在忽略范围内!lqz.html# 忽略所有.o和 .a文件.*.[oa]"""## 后端项目的忽略文件luffy.log__pycache__*.pyc.ideascripts.vscode**/migrations/*.py!**/migrations/__init__.py#### 空文件夹不被git管理log __init__.py luffy.log *.log
【5】 git 多分支
# 1 为什么要有多分支 -可以方便我们协同开发 -一般公司都会有master主分支,dev开发分支,bug修复分支 # 2 分支的操作 1.创建分支 git branch 分支名 2.查看分支 git branch 3.切换分支 git checkout 分支名 4.创建并切换到分支 git checkout -b 分支名 5.删除分支 git branch -d 分支名 git branch -D 分支名 6.查看远程分支(列出所有分支,包含远程) git branch -a 7.合并分支 git merge 分支名 把dev分支合并到master分支:切换到master分支,执行合并dev分支的命令
【6】 git远程仓库
# 远端的一个服务器 -github -gitee:讲课---》 -gitlab # 注册gitee账号# 新建仓库# 在本地执行git config --global user.name "liuqingzheng"git config --global user.email "306334678@qq.com"# 已有仓库cd lqzgit remote add origin https://gitee.com/liuqingzheng/lqz2.git # 添加远程仓库地址 git pull origin master git push origin master