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

虚幻大学 xuhss 151℃ 0评论

? 优质资源分享 ?

学习路线指引(点击解锁) 知识定位 人群定位
? Python实战微信订餐小程序 ? 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
?Python量化交易实战? 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

今日内容概要

内容详细

1、git详情

1.1 git与svn比较

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

# svn集中式管理
    所有代码都放在服务端,版本管理由服务端完成
    svn:无网络不可以提交

bf12c336a395f103662627ebf7f87366 - git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用

8ef24379c38321c5b0ab57eb04a9bbe0 - git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用

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)只有被版本库控制的代码,才能被监听,所以可以回滚到任何一个版本
"""

f7369f52ae862431e4b64aedb79c3345 - git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用

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文件夹做了记录,不能删除,如果删除,版本的记录也就没了
    单独的空文件夹不会被版本管理

c453151d00c870c6c6a7c4599d94514c - git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用

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
    ------

2a8849354548090e6d2cf4f6c50c8386 - git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用

6、git远程仓库

# 远程仓库
    gitee,github,bitbucket,自己搭建的gitlab---》把本地版本库中的代码提交到远程仓库---》大家都提交,完成代码合并,协同开发

# 如果公司中用gitee,都是用私有仓库,不要把公司代码做成公有仓库

# 课程案例是传到gitee远程仓库,如果到了公司里使用的是gitlab,所有操作完全一致,只是远程地址不一样

a0c18cebf14f9ffed52ab4c1e0586eb8 - git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用

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上

e7266808377047c81450c3b08d9fd9f7 - git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用

d838f910596187e238465d66e2ecec37 - git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用

bac3fb2a15ef29a98a3c866827d98b61 - git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用

6.4 协同开发引入

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

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

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

# 你们是开发者,第一次要clone代码
    git clone https://gitee.com/deity-jgx/luffy_api.git

# 开发者可以修改并提交代码,没有人审核---》这个过程中可能会出冲突

转载请注明:xuhss » git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用

喜欢 (0)

您必须 登录 才能发表评论!