今日内容概要

内容详细

1、git详情

1.1 git与svn比较

# git 分布式管理
每个客户端都能完成版本管理的功能
控制的对象是开发的项目代码
Git:无网络时也可以提交到本地版本库,待到有网络时再push到服务 # svn集中式管理
所有代码都放在服务端,版本管理由服务端完成
svn:无网络不可以提交

1.2 git,github,gitee,gitlab分别是什么

# Git:是一种版本控制系统,是一个命令,是一种工具。

# GitHub:是一个基于Git实现的在线代码托管仓库,包含一个网站界面,向互联网开放,公有仓库免费,部分私有仓库收费,全球最大的开源代码托管平台 git的远程仓库

# GitLab:是一个基于Git实现的在线代码仓库托管软件,可以通过GitLab自己搭建一个类似于GitHub一样的系统,用在企业内部网络搭建Git私服,用于企业团队内部协作开发 公司内部的github

# Gitee:(码云) 是 OSCHINA 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管,面向互联网开发,分免费和付费,中国最大的开源代码托管平台 中国版的github,为中国的开源软件事业,贡献自己的一份力量

2、git工作流程

# 本地分三个区:工作区,暂存区,版本库
工作流程指的就是三个区的来回操作 # 工作区文件变化
操作问题 # 工作区提交到暂存区
git add . # 暂存区提交到版本库
git commit -m '注释' # 版本库退回工作区没有更改的时候
git reset --hard 版本号 """
1)有红色信息(工作区有内容),就执行 add
2)全绿信息(内容全部在暂存区),才执行 commit
3)只有被版本库控制的代码,才能被监听,所以可以回滚到任何一个版本
"""

3、git常用命令

# 0 配置用户信息
配置全局用户信息---》以后所有文件夹再提交到版本库显示的就是这个名字,所有的都显示这个名字
git config --global user.name 'lqz'
git config --global user.email '3@qq.com'
写在了用户家路径的 .gitconfig, 写入了以上信息 配置局部用户信息---》当前文件夹以后再提交到版本库显示的就是这个名字、
git config user.name 'liuqingzheng'
git config user.email '306334678@qq.com'
写在了仓库(gittest文件夹)路径下的 .git文件夹下的config文件 # 1 初始化仓库,会在当前文件夹下创建出一个 .git的隐藏文件夹, git配置 版本信息在里面
git init # 2 查看状态--》红色,绿色,没有---》新增,修改,删除--》变红
git status # 3 把工作区变化提交到暂存区---》变绿色
git add .
. 表示当前路径下所有变更 # 4 把暂存区提交到版本库 ---》从绿变无色
git commit -m '注释' # 5 查看版本库的版本信息
git log # 查看代码版本信息,显示详细信息,但是变化记录的少
git reflog # 查看代码版本信息, 显示简略信息, 但是变化都会记录 # 6 工作区回退到某个版本
git reset --hard 版本号
git reset --hard 版本号 # 7 其他,不需要太了解,基本不用
把工作区变化撤销
git checkout . 把暂存区拉回到工作区(绿变红)
git reset HEAD # 注意 :
.git文件夹做了记录,不能删除,如果删除,版本的记录也就没了
单独的空文件夹不会被版本管理

4、Git忽略文件

# Git工作目录中,有些文件必须要有,但又不能提交它们,就可以设置忽略文件

# 方法:
1 在仓库路径下(被git管理的文件夹),创建一个 .gitignore 的文件,在文件中写入忽略
2 文件与文件夹均可以被过滤
3 文件过滤语法
"""
过滤文件内容
文件或文件夹名:
代表所有目录下的同名文件或文件夹都被过滤 /文件或文件夹名:
代表仓库根目录下的文件或文件夹被过滤 举例:
a.txt:
项目中所有a.txt文件和文件夹都会被过滤 /a.txt:
项目中只有根目录下a.txt文件和文件夹会被过滤 /b/a.txt:
项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤 *x*:
名字中有一个x的都会被过滤(*代表0~n个任意字符) 空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)
""" # luffycity--->vue项目---》vue create创建的(很慢)---》本质其实是从github上拉了一个空项目,改了一下名字,所以,它里面有git的版本管理(.git隐藏文件夹) # 咱们后端项目的 过滤文件写法:
在项目根目录下创建:.gitignore 文件
写入:
.idea
__pycache__
*.pyc
logs/*.log
scripts 在空文件目录下 都创建包文件:
__init__.py

5、分支操作

# 分支是什么?
git 可以创建多条分支,创建完以后,在不同分支上提交版本,不同分支的版本相互不影响 """
1.创建分支
git branch 分支名 2.查看分支
git branch 3.切换分支
git checkout 分支名 4.创建并切换到分支
git checkout -b 分支名 5.删除分支
git branch -d 分支名 6.查看远程分支(暂时先不看)
git branch -a 7.合并分支
git merge 分支名
把dev分支合并到master分支:
要先切换到master分支,执行合并dev分支的命令
""" ## 注意:分支合并可能会出冲突
原因是:master改了东西提交了,dev改了东西提交了,他们改的是同一个代码,合并就会出冲突 # 命令演示顺序:
git checkout -b dev
touch dev.txt
git add .
git commit -m 'dev分支增加了dev.txt'
git checkout master
git merge dev
----------
git checkout dev
git add .
git commit -m 'dev分dev.txt增加了一行'
git checkout master
git merge dev
------

6、git远程仓库

# 远程仓库
gitee,github,bitbucket,自己搭建的gitlab---》把本地版本库中的代码提交到远程仓库---》大家都提交,完成代码合并,协同开发 # 如果公司中用gitee,都是用私有仓库,不要把公司代码做成公有仓库 # 课程案例是传到gitee远程仓库,如果到了公司里使用的是gitlab,所有操作完全一致,只是远程地址不一样

6.1 把本地代码提交到远程仓库(https协议连接)

# 第一步:在远程创建一个空仓库

# 第二步:操作步骤
全局设置
git config --global user.name "liuqingzheng"
git config --global user.email "306334678@qq.com" 情况一:原来连本地仓库都没有
mkdir luffy_api
cd luffy_api
git init
touch README.md
git add README.md
git commit -m "first commit"
-----以上操作创建luffy_api项目时,已经做过了------
git remote add origin https://gitee.com/liuqingzheng/luffy_api.git # 添加一个远程仓库
git push origin master # 把本地仓库推到远程 情况二:原来本地有仓库
cd 到项目目录下
git remote add origin https://gitee.com/deity-jgx/luffy_api.git
git push origin master

6.2 remote源操作

# 1 查看远程仓库
git remote #2 添加远程仓库
git remote add 起一个名字 远程仓库地址
git remote add origin 仓库地址 # 3 删除远程仓库
git remote remove origin # 4 把本地仓库提交到远程仓库
git push 远程仓库名字 分支名
git push origin master
第一次:要输入用户名密码,只要输入一次,以后就记录到操作系统上了
win:凭证管理--》删除
mac:钥匙串---》搜 #5 从远端仓库更新代码
git pull 远程仓库名字 分支名
git pull origin master # 协同开发---》张三提交了代码到远端---》你要拉下来,把张三代码合并到你的本地 ### 注意点:
在公司里,没事就git pull 一下,拉取代码的频率高,出现冲突的概率就小 写了一个星期代码,从来没有拉过,你也改了s1.py s5.py
这一个星期张三,李四王五,分别改了s1.py s2.py s3.py
你一提交---》多人在同一条分支上开发代码出现的冲突,出冲突了,需要解决冲突 ##### 这几个会经常敲
git add .
git status
git commit -m
git pull origin master
git push origin master

6.3 ssh连接提交到远程仓库

# 刚刚咱们用的是https的连接方式,需要输入用户名密码

# 想使用ssh的连接方式,非对称加密的方式实现(不聊),需要公钥和私钥
把公钥配置到远程机器,私钥自己留着
我和远程机器就可以安全通信 # 本地生成一对秘钥:公钥和私钥
在新的cmd窗口操作:
ssh-keygen -t ed25519 -C "306334678@qq.com"
一路回车,就会在用户家路径的.ssh文件夹下生成一对公钥和私钥 # 把公钥配置到gitee上(gitlab,github)
看下图
直接将本地公钥文件内容复制到gitee # 以后不需要输用户名密码,可以安全通信,pull,push代码没有任何阻碍 ######### 远程仓库地址要变 ,原来是https的,现在变成ssh的连接
git remote remove origin
git remote add origin git@gitee.com:deity-jgx/luffy_api.git
git push oringin master ### 注意:
你的一个gitee账号,可以配置多个ssh公钥,如果你配置了多个ssh公钥,意味着有多台机器可以免密操作仓库 公司里ssh用的多
你到了公司,公司会给你gitlab账号和密码,地址,你要在本地生成ssh公钥和私钥,配置到你的gitee,gitlab上

6.4 协同开发引入

# 多人操作同一个仓库,多人写同一个项目

# 你们刚到公司,一般情况下,你会被添加为该仓库的观察者,你目前只能看,不能改,删

# 但是也有的公司直接给你开发者权限---》直接修改提交代码就行了

# 你们是开发者,第一次要clone代码
git clone https://gitee.com/deity-jgx/luffy_api.git # 开发者可以修改并提交代码,没有人审核---》这个过程中可能会出冲突

git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用的更多相关文章

  1. Git的原理简介和常用命令

    Git和SVN是我们最常用的版本控制系(Version Control System, VCS),当然,除了这二者之外还有许多其他的VCS,例如早期的CVS等.顾名思义,版本控制系统主要就是控制.协调 ...

  2. git概念及工作流程详解

    git概念及工作流程详解 既然我们已经把gitlab安装完毕[当然这是非必要条件],我们就可以使用git来管理自己的项目了,前文也多多少少提及到git的基本命令,本文就先简单对比下SVN与git的区别 ...

  3. Git深入浅出使用教程:Git安装、远程控制、常用命令(全)

    一.软件安装 1.先安装[Git-2.24.1.2-64-bit.exe]软件.(官网下载的很慢,可以在百度云盘下载我的) 链接:https://pan.baidu.com/s/1uoIS9DWSBp ...

  4. Git很麻烦?只要掌握这几个命令,轻松将代码提交远程仓库

    在上一章节,跟大家介绍了拉取代码的操作,简单暴力.这一章节要介绍的是如何将现有的项目,直接提交到仓库. 现在,如果大家有一个项目要提交到GitHub仓库,安装上一张的方法,需要先在GitHub上建一个 ...

  5. 【Git】(1)---工作区、暂存区、版本库、远程仓库

    工作区.暂存区.版本库.远程仓库 一.概念 1.四个工作区域 Git本地有四个工作区域:工作目录(Working Directory).暂存区(Stage/Index).资源库(Repository或 ...

  6. Linux常用命令入门文件、网络、系统及其他操作命令

    Linux常用命令入门文件.网络.系统及其他操作命令.压缩 归档 文件系统 系统管理 用户管理  网络管理 finger 相关命令 netstat ping rsh telnet wget 进程管理等 ...

  7. git将本地仓库中的文件上传到远程仓库

    现在我们开始创建本地git仓库(版本库又叫仓库) (本地仓库:$ git init之后的目录): 1.任意地方新建文件夹aaa,右击git bash here, 2.弹出一个对话框, 3. 首先配置你 ...

  8. linux常用命令 查看文件

    Linux常用命令 查看文件 cat命令 cat命令的用途是连接文件或标准打印输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示. 命令格式: cat [ ...

  9. [笔记]解决git本地仓库不能上传到gitee远程仓库的问题

    关键词:git.gitee.码云.上传远程仓库失败 1.gitee有一个远程仓库名字是CommandModel,里面只有两个README文件 2.假如我目录  D:\eclipse\workspace ...

随机推荐

  1. Golang中常用的代码优化点

    Golang中常用的代码优化点 大家好,我是轩脉刃. 这篇想和大家聊一聊golang的常用代码写法.在golang中,如果大家不断在一线写代码,一定多多少少会有一些些代码的套路和经验.这些经验是代表你 ...

  2. Spring Cache缓存框架

    一.序言 Spring Cache是Spring体系下标准化缓存框架.Spring Cache有如下优势: 缓存品种多 支持缓存品种多,常见缓存Redis.EhCache.Caffeine均支持.它们 ...

  3. 【freertos】004-任务创建与删除及其实现细节

    前言 后面都是已动态内存任务为例来分析. 注意: 由于当前学习是在linux上跑的freertos,对于freertos底层相关接口,从demo工程来看,都是posix标准相关. 鉴于freertos ...

  4. 比较HQL、Criteria、Native-SQL这三者做查询的区别,以及应该如何进行选择?

    HQL功能很强大,适合各种情况,但是动态条件查询构造起来很不方便: Criteria 最适合动态查询,但不太适合统计查询,QBE还不够强大.只适合简单的查询: Native-SQL可以实现特定的数据库 ...

  5. Dubbo SPI 和 Java SPI 区别?

    JDK SPI JDK 标准的 SPI 会一次性加载所有的扩展实现,如果有的扩展吃实话很耗时,但 也没用上,很浪费资源. 所以只希望加载某个的实现,就不现实了 DUBBO SPI 1,对 Dubbo ...

  6. ruoyi首次使用常见问题的解决方案

    1.导入项目之后,下载依赖包之后,模块的依赖项飘红(我这里无法复现,当参考图吧) 解决方法: 2.ruoyi框架代码生成之后,需要自己进行替换到指定位置.相应的官方文档位置,否则,可能会出现404,访 ...

  7. JS的箭头函数this作用域

    name="小刚"; let student={ name:"小明", printLog:function(){ // 这里绑定了顶层作用域,可以使用变量与方法 ...

  8. 5. Git初始化及仓库创建和操作

    4. Git初始化及仓库创建和操作 基本信息设置 1. 设置用户名 git config --global user.name 'itcastphpgit1' 2. 设置用户名邮箱 git confi ...

  9. simulink中scope图像显示添加图例

    1. 在scope中添加图例 (1)首先打开配置属性(configuration properties),在display下面的show legend前面打钩 这样就允许图例显示出来 (2)对scop ...

  10. .NET Core Ecosystem

    .NET .NET Blog Application Models Web Mobile Desktop Microservices Gaming Machine Learning Cloud Int ...