15 git简介

版本控制器

# 版本控制器:公司协同开发,张三,李四在自己本地开发代码,开发了10天开发出v1版本,V2版本
    -多人协同开发代码合并
    -对版本进行管理,能切换回老版本
  如果出现冲突代码的合并,会提示后提交合并代码的开发者,让其解决冲突

git简介

 什么是git:版本控制器 - 控制的对象是开发的项目代码
    代码开发时间轴:需求1 => 版本库1 ==> 需求2 => 版本库2 => 版本库3(版本库1) => 版本库4(版本库2

版本管理软件:git ,svn(很老)

 

-svn:集中式管理,服务端(有个服务器放着)和客户端(开发人员)
-git:分布式管理,自己本地就能进行代码的提交,查看历史代码。。。

 

 

 

git使用

1.安装

# 1.下载对应版本:https://git-scm.com/download
# 2.安装git:
# 一路下一步
# 任意位置右击,能看到 
    -git bash here
    -git gui here

2.重点:git的三个区域

工作区            暂存区                       版本库
代码存放区域       代码改完放到暂存区           管理了历史代码
修改删除代码       才能提交到版本库             必须从暂存区提交过来

3.常用命令

   #创建一个文件夹,右击点git bash here,出现命令行窗口

3.1  git 初始化

    git init    # 初始化仓库,在某个想被git管理的文件夹下执行,会创建出 .git隐藏文件夹,代表该文件夹被git管理了
# 设置全局用户--》操作这个仓库的人是谁-->

git config --global user.name 'htt'
git config --global user.email '1252216398@qq.com'

    #注:在全局文件 C:\Users\用户文件夹\.gitconfig新建用户信息,在所有仓库下都可以使用

# 设置局部用户---》只对当前仓库有效
    git config user.name 'liuqingzheng'
    git config user.email '3@qq.com'
    #注:在当前仓库的.git文件夹下,config

3.2 查看仓库状态

git status    # 查看仓库状态
git status -s  # 简约显示
    # 在仓库下新建一个文件,查看,会发现是红色的
    # 空文件夹不会被git管理

3.3  从工作区把改变提交到暂存区

git add 文件名字
git add .  # 把当前路径下所有改变都提交到暂存区

3.4 从暂存区,提交到版本库

git commit -m '注释,不加注释提交不了'  # 把暂存区的更改,提交到版本库

git status # 没有红色和绿色---》当前仓库下所有变化都被记录到版本库中了,后期可以回到这个状态

3.5 查看版本库的版本信息

git log   #  查看版本库的日志信息,当前在那个版本上,就只能看到之前的
git reflog #  简短一些日志,可以看所有的变化

3.6 恢复到某个版本

git reset --hard 版本号  # 指定版本库中某个版本恢复到工作区

3.7 工作区回滚

git checkout .    # 恢复工作区,恢复到跟版本库一样的状态,但是新增的文件,由于没被版本管理,它不会操作它

3.8 把暂存区的变化,拉回到工作区(由绿变红)

    git  reset HEAD .

小练习

    -在zmyh.py 中加入一行代码
    -git status   # 红色的zmyh.py,没有提交到暂存区
    -git add .    # 提交到暂存区
    -git commit -m '注释' # 提交到 版本库 
    -删除 zmyh.py  
    -git status   # 红色
    -git add .    # 提交到暂存区
    -git commit -m '注释' # 提交到 版本库 
    # 到此,总共提交了三次(新建,修改了zmyh,删除了zmyh)
    -git log   #查看日志
    -git reset --hard b9b7824  # 回到某个版本
    -git reset --hard 5de4a6b

过滤文件

# 有些文件,不想被git管理,就要设置忽略文件

# 在仓库路径下新建  .gitignore--->在里面配置忽略文件

""" 过滤文件内容
文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤
/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤

eg:
a.txt:项目中所有a.txt文件和文件夹都会被过滤
/a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤
/b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
*x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)
空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)
"""

 

posted @ 2022-02-21 19:56  甜甜de微笑  阅读(47)  评论(0编辑  收藏  举报