Git

GitHub和Git的区别

1.GitHub 、Gitee 是一个完成了Git服务器的一个网站
2.Git版本管理工具
GitHub 和Gitee的区别

工作区暂存区和仓库区

三区的具体描述
工作区

对于添加、修改、删除文件的操作,都发生在工作区中

暂存区

暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分

仓库区

仓库区表示个人开发的一个小阶段的完成
仓库区中记录的各版本是可以查看并回退的
但是在暂存区的版本一旦提交就再也没有了

Git管理的常用命令

1.git clone

从远程仓库克隆一个版本库到本地。
#默认在当前目录下创建和版本库名相同的文件夹并下载版本到该文件夹下
$ git clone <远程仓库的网址>

#指定本地仓库的目录
$ git clone <远程仓库的网址> <本地目录>

#-b 指定要克隆的分支,默认是master分支
$ git clone <远程仓库的网址> -b <分支名称> <本地目录>

2.git init

初始化项目所在目录,初始化后会在当前目录下出现一个名为 .git 的目录。
#初始化本地仓库,在当前目录下生成 .git 文件夹
$ git init

3.git status

查看本地仓库的状态。
#查看本地仓库的状态
$ git status

#以简短模式查看本地仓库的状态
#会显示两列,第一列是文件的状态,第二列是对应的文件
#文件状态:A 新增,M 修改,D 删除,?? 未添加到Git中
$ git status -s

4.git remote

操作远程库。
#列出已经存在的远程仓库
$ git remote

#列出远程仓库的详细信息,在别名后面列出URL地址
$ git remote -v
$ git remote --verbose

#添加远程仓库
$ git remote add <远程仓库的别名> <远程仓库的URL地址>

#修改远程仓库的别名
$ git remote rename <原远程仓库的别名> <新的别名>

#删除指定名称的远程仓库
$ git remote remove <远程仓库的别名>

#修改远程仓库的 URL 地址
$ git remote set-url <远程仓库的别名> <新的远程仓库URL地址>

5.git branch

dev分支合并到master分支

注意:一般dev里的代码做了充分的测试才可以向master里 合并,因为master里是最终	版本

一般经理才有权限去合并到master


操作 Git 的分支命令。
 列出本地的所有分支,当前所在分支以 "*" 标出
$ git branch

#列出本地的所有分支并显示最后一次提交,当前所在分支以 "*" 标出
$ git branch -v

#创建新分支,新的分支基于上一次提交建立
$ git branch <分支名>

#修改分支名称
#如果不指定原分支名称则为当前所在分支
$ git branch -m [<原分支名称>] <新的分支名称>
#强制修改分支名称
$ git branch -M [<原分支名称>] <新的分支名称>

#删除指定的本地分支
$ git branch -d <分支名称>

#强制删除指定的本地分支
$ git branch -D <分支名称>

6.git checkout

检出命令,用于创建、切换分支等。
#切换到已存在的指定分支
$ git checkout <分支名称>

#创建并切换到指定的分支,保留所有的提交记录
#等同于 "git branch" 和 "git checkout" 两个命令合并
$ git checkout -b <分支名称>

#创建并切换到指定的分支,删除所有的提交记录
$ git checkout --orphan <分支名称>

#替换掉本地的改动,新增的文件和已经添加到暂存区的内容不受影响
$ git checkout <文件路径>

7.git cherry-pick

把已经提交的记录合并到当前分支。

#把已经提交的记录合并到当前分支
$ git cherry-pick <commit ID>

8.git add

把要提交的文件的信息添加到暂存区中。当使用 git commit 时,将依据暂存区中的内容来进行文件的提交。
#把指定的文件添加到暂存区中
$ git add <文件路径>

#添加所有修改、已删除的文件到暂存区中
$ git add -u [<文件路径>]
$ git add --update [<文件路径>]

#添加所有修改、已删除、新增的文件到暂存区中,省略 <文件路径> 即为当前目录
$ git add -A [<文件路径>]
$ git add --all [<文件路径>]

#查看所有修改、已删除但没有提交的文件,进入一个子命令系统
$ git add -i [<文件路径>]
$ git add --interactive [<文件路径>]

9.git commit

将暂存区中的文件提交到本地仓库中。
#把暂存区中的文件提交到本地仓库,调用文本编辑器输入该次提交的描述信息
$ git commit

#把暂存区中的文件提交到本地仓库中并添加描述信息
$ git commit -m "<提交的描述信息>"

#把所有修改、已删除的文件提交到本地仓库中
#不包括未被版本库跟踪的文件,等同于先调用了 "git add -u"
$ git commit -a -m "<提交的描述信息>"

#修改上次提交的描述信息
$ git commit --amend

10.git fetch

远程仓库获取最新的版本到本地的 tmp 分支上。
#将远程仓库所有分支的最新版本全部取回到本地
$ git fetch <远程仓库的别名>

#将远程仓库指定分支的最新版本取回到本地
$ git fetch <远程主机名> <分支名>

11.git merge

合并分支。

#把指定的分支合并到当前所在的分支下
$ git merge <分支名称>

12.git diff

比较版本之间的差异。
#比较当前文件和暂存区中文件的差异,显示没有暂存起来的更改
$ git diff

#比较暂存区中的文件和上次提交时的差异
$ git diff --cached
$ git diff --staged

#比较当前文件和上次提交时的差异
$ git diff HEAD

#查看从指定的版本之后改动的内容
$ git diff <commit ID>

#比较两个分支之间的差异
$ git diff <分支名称> <分支名称>

#查看两个分支分开后各自的改动内容
$ git diff <分支名称>...<分支名称>

12.git pull

从远程仓库获取最新版本并合并到本地。
首先会执行 git fetch,然后执行 git merge,把获取的分支的 HEAD 合并到当前分支。
#从远程仓库获取最新版本。
$ git pull

13.git push

把本地仓库的提交推送到远程仓库
#把本地仓库的分支推送到远程仓库的指定分支
$ git push <远程仓库的别名> <本地分支名>:<远程分支名>

#删除指定的远程仓库的分支
$ git push <远程仓库的别名> :<远程分支名>
$ git push <远程仓库的别名> --delete <远程分支名>

14.git log

显示提交的记录。
#打印所有的提交记录
$ git log 或者  git reflog

#打印从第一次提交到指定的提交的记录
$ git log <commit ID>

#打印指定数量的最新提交的记录
$ git log -<指定的数量>

15.git reset

还原提交记录。
#重置暂存区,但文件不受影响
#相当于将用 "git add" 命令更新到暂存区的内容撤出暂存区,可以指定文件
#没有指定 commit ID 则默认为当前 HEAD
$ git reset [<文件路径>]
$ git reset --mixed [<文件路径>]

#将 HEAD 的指向改变,撤销到指定的提交记录,文件未修改
$ git reset <commit ID>
$ git reset --mixed <commit ID>

#将 HEAD 的指向改变,撤销到指定的提交记录,文件未修改
#相当于调用 "git reset --mixed" 命令后又做了一次 "git add"
$ git reset --soft <commit ID>

#将 HEAD 的指向改变,撤销到指定的提交记录,文件也修改了
$ git reset --hard <commit ID>

16.git revert

生成一个新的提交来撤销某次提交,此次提交之前的所有提交都会被保留。

#生成一个新的提交来撤销某次提交
#生成一个新的提交来撤销某次提交
$ git revert <commit ID>

17.git tag

当某一个大版本完成之后,需要打一个标签
作用:

	记录大版本
	备份大版本代码
	删除本地和远程标签

  # 删除本地标签
  git tag -d 标签名
  # 删除远程仓库标签
  git push origin --delete tag 标签名



操作标签的命令。
#打印所有的标签
$ git tag

#添加轻量标签,指向提交对象的引用,可以指定之前的提交记录
$ git tag <标签名称> [<commit ID>]

#添加带有描述信息的附注标签,可以指定之前的提交记录
$ git tag -a <标签名称> -m <标签描述信息> [<commit ID>]

#切换到指定的标签
$ git checkout <标签名称>

#查看标签的信息
$ git show <标签名称>

#删除指定的标签
$ git tag -d <标签名称>

#将指定的标签提交到远程仓库
$ git push <远程仓库的别名> <标签名称>

#将本地所有的标签全部提交到远程仓库
$ git push <远程仓库的别名> –tags

18.git mv

重命名文件或者文件夹。
#重命名指定的文件或者文件夹
$ git mv <源文件/文件夹> <目标文件/文件夹>

19.git rm

删除文件或者文件夹。

#移除跟踪指定的文件,并从本地仓库的文件夹中删除
$ git rm <文件路径>

#移除跟踪指定的文件夹,并从本地仓库的文件夹中删除
$ git rm -r <文件夹路径>

#移除跟踪指定的文件,在本地仓库的文件夹中保留该文件
$ git rm --cached

误删处理:撤销修改即可
  # 删除文件
  rm 文件名
  # git撤销修改
  git checkout -- 文件名

20.回退版本

方案一:

HEAD表示当前最新版本
HEAD^表示当前最新版本的前一个版本
HEAD^^表示当前最新版本的前两个版本,以此类推...
HEAD~1表示当前最新版本的前一个版本
HEAD~10表示当前最新版本的前10个版本,以此类推...

1)git reset --hard HEAD^

2) git reset --hard 版本号

21.撤销修改

只能撤销工作区、暂存区的代码,不能撤销仓库区的代码
撤销仓库区的代码就相当于回退版本操作

# 第一步:将暂存区代码撤销到工作区
git reset HEAD  文件名

#第二步:撤销工作区代码
git checkout 文件名

22.对比版本

1)对不同版本库

  	把暂存区的代码提交到版本库 再比较 
  	
  	git diff HEAD HEAD^ -- login.py

Git操作场景示例

1. 删除掉本地不存在的远程分支
多人合作开发时,如果远程的分支被其他开发删除掉,在本地执行 git branch --all 依然会显示该远程分支,可使用下列的命令进行删除:


#使用 pull 命令,添加 -p 参数
$ git pull -p

#等同于下面的命令
$ git fetch -p
$ git fetch --prune origin




git config
配置 Git 的相关参数。

Git 一共有3个配置文件:

1. 仓库级的配置文件:在仓库的 .git/.gitconfig,该配置文件只对所在的仓库有效。
2. 全局配置文件:Mac 系统在 ~/.gitconfig,Windows 系统在 C:\Users\<用户名>\.gitconfig。
3. 系统级的配置文件:在 Git 的安装目录下(Mac 系统下安装目录在 /usr/local/git)的 etc 文件夹中的 gitconfig。

#查看配置信息

#--local:仓库级,--global:全局级,--system:系统级
$ git config <--local | --global | --system> -l

#查看当前生效的配置信息
$ git config -l

#编辑配置文件
#--local:仓库级,--global:全局级,--system:系统级
$ git config <--local | --global | --system> -e

#添加配置项
#--local:仓库级,--global:全局级,--system:系统级
$ git config <--local | --global | --system> --add <name> <value>

#获取配置项
$ git config <--local | --global | --system> --get <name>

#删除配置项
$ git config <--local | --global | --system> --unset <name>

#配置提交记录中的用户信息
$ git config --global user.name <用户名>
$ git config --global user.email <邮箱地址>

#更改Git缓存区的大小
#如果提交的内容较大,默认缓存较小,提交会失败
#缓存大小单位:B,例如:524288000(500MB)
$ git config --global http.postBuffer <缓存大小>

#调用 git status/git diff 命令时以高亮或彩色方式显示改动状态
$ git config --global color.ui true

#配置可以缓存密码,默认缓存时间15分钟
$ git config --global credential.helper cache

#配置密码的缓存时间
#缓存时间单位:秒
$ git config --global credential.helper 'cache --timeout=<缓存时间>'

#配置长期存储密码
$ git config --global credential.helper store
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值