目录
git介绍和安装
1.远程仓库:后端,写了一个接口,完成了一个功能,在公司里,功能完成,要把代码提交到远程仓库
2.公司里协同开发,版本管理需要使用软件:svn,git
3.下载:安装在操作系统上
网址:https://git-scm.com/downloads
一路下一步
任意位置点右键,如果有两个东西(【git gui here】 【git bash here】),表示安装完成
4.pycharm中配置git
下载成zip,使用pycharm打开
使用pycharm直接拉下来,打开---》配置pycharm
-settings中搜索git,把git安装可执行文件配置好
以后下载开源软件:vcs--->get from version contral--->填入路径---》clone下来即可
5. svn,git ,github,gitee,gitlab
5.1 svn:版本管理软件,它是集中式的版本管理,必须有个svn的服务端,服务端如果过来,svn就用不了了
5.2 git :版本管理软件,它是一个分布式的版本管理,每个客户端都可以作为服务端,即便服务端挂了,也能进行版本管理(本地管理)
5.3 github:全球最大的开源远程git仓库,全球最大的开源仓库,git远程仓库
-如果我要写开源软件,本地装git,把代码提交到github
-python监控公司代码有没有被传到github
5.4 gitee:中国最大的开源软件仓库 【私有仓库,花钱买空间】
5.5 gitlab:公司内部的远程仓库,运维搭建维护
git工作流程
1.工作流程:
1.1 只要被git管理了,只要文件发生变化(新增,删除,修改),使用git就能看到它变成红色了
1.2 工作区的变更,要提交到暂存区,变绿色了
1.3 从暂存区提交到版本库,才会被版本管理,一旦被版本管理了,后期可以回退到某个版本
1.4 可以把版本库的内容,提交到远程仓库,统一管理起来【所有开发者都可以提交】
1.5 本地可以拉去远程的代码
1.6 本地可以把本地代码提交到远程
注:1.有红色信息说明工作区有内容(内容发生了变化)---执行git add. 提交到暂存区
2.有绿色信息说明暂存区有内容-----执行git commit -m '发生变化的详细说明'---提交至本地版本库
3.只有被版本库控制的代码 才能被监听 所以可以回滚到任何一个版本
git常用命令
1.初始化仓库---被执行的该文件夹变成git仓库
git init
2.当仓库中文件发生变化---查看状态
新增可以通过linux命令新增(也可直接在文件中创建文件)
git status
3.配置用户信息(可以同时配置局部与全局 局部没有使用全局)(配置一次)
3.1 局部配置---只针对当前仓库--仓库的.git文件夹下的config文件中
命令:git config user.name '名字'
git config user.email '邮箱'
3.2 全局配置---针对所有仓库--C:C:\Users\琴\.gitconfig新建用户信息,在所有仓库下都可以使用
命令:git config --global user.name '名字'
git config --global user.email '邮箱'
4.把工作区内容提交到暂存区---红色变绿色
git add 文件名----提交该文件
git add .----提交所有工作区的文件
5.把暂存区的内容提交至版本库---绿色变无
git commit -m '详细说明'
6.查看版本号---提交到版本库每次会生成唯一的版本号
git log---版本号全
git reflog---版本号简短 精简显示
7.退回工作区内容发生变化之前(工作区内容发生变化变红后退回未修改前 不包含新增文件)
git checkout . ---退回当前所有的变化 不包含新增
8.从暂存区拉回工作区(绿变红)
git reset HEAD
9.把版本库内容拉回暂存区(提交后无变化--绿色)
git reset --soft 回退至上一个版本号(变绿)
10.从版本库拉回工作区(提交后无变化--红色)
git reset --版本号(从红色--绿色--版本库提交的版本号--如果之间还做过别的操作需要找到对应的版本号)
git reset --mix 版本号
11.回退到被版本管理的最后版本(最开始第一次提交到版本库的版本)
git resert --hard 版本号
注:1.简略显示状态:git status -s
2.空文件夹不会被git记录
3.如果删除当前仓库的用户 就会使用全局配置的系统用户 没有配置的话会报错
4.查看时间点之间|之后的日志:
git log --after 时间 # 查看某个时间之后
git reflog --after 时间
git log --before 时间 # 查看某个时间之前
git reflog --before 时间
5.查看制定开发者日志
git log --author author_name
git reflog --author author_name
6.回滚到上一个版本
git reset --hard HEAD^
git reset --hard HEAD~
7.回滚到上三个版本
git reset --hard HEAD^^^
git reset --hard HEAD~3
8.回滚到指定版本号的版本
git reset --hard 版本号
9.git log与git reflog的区别
git log :命令可以显示所有提交过的版本信息如果感觉太繁琐,可以加上参数 --pretty=oneline,只会显示版本号和提交时的备注信息
git reflog :可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
10. git reset --hard,--mix,--soft的区别
git reset --hard:(硬)-> 全部删除,会彻底返回到回退前的版本状态
git reset --mix:了无痕迹mixed (中)-> 保留工作目录,文件回退到未commit的状态
git reset --soft:(软)-> 保留工作目录、暂存区 ,文件会回退到未 add(未到暂存)的状态总结:soft是撤销commit的提交,但工作区未提交的更改还是保留;mixed是撤销暂存区的提交,工作区的更改同样也保留;而hard是把工作区、暂存区、commit到仓库的三个版本都回滚了
git过滤文件
1.针对不需要被版本管理的文件或文件夹需要进行过滤处理
2.在仓库中新建.gitignore[没有任何后缀名的文件]文件
2.1 在仓库的根目录下创建该文件
2.2 文件与文件夹均可以被过滤
2.3 文件过滤语法:
""" 过滤文件内容
文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤
/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤
eg:
a.txt:项目中所有a.txt文件和文件夹都会被过滤
/a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤
/b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
*x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)
空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)
"""
注:针对luffy后端项目要被git管理
# 在项目路径下敲git init
# 创建 .gitignore
# git add .
# git commit -m '初始化项目'
git多分支开发
1.多分支开发:通过分支,更方便协同开发,管理版本
2.分支操作:
2.1 查看分支:*和绿色表示当前所在的分支
git branch
2.2 创建分支:
git branch 分支名(如 dev)
2.3 切换分支:
git checkout 分支名(dev)
2.4 删除分支:不在该分支下才能删除该分支
git branch -d 分支名(dev)
2.5 合并分支:可能存在冲突
如把dev分支合并到master上
回到master上 开始执行代码
git merge dev
2.6 查看远程分支:
git branch -a
git远程仓库
1.远程仓库:
1.1 gitub---全球最大的开源软件仓库(在国外--慢)
1.2 gitee---国内最大的开源软件仓库(快)
1.3 gitlab---公司内部使用---自己搭建
搭建步骤网址:https://zhuanlan.zhihu.com/p/413217715
1.4 开源协议:GPL、Apache
-linux:GPL,自由使用开源的软件,修改,增加内容,可以收费,但是你的代码必须开源
-Kafka。。。:Apache,可以使用开源软件,但必须注明使用了
2.gitee的操作步骤:
2.1 注册登录(官网)
2.2 新建远程仓库---写仓库名
本地仓库--已被版本管理---远程仓库为空:把本地代码上传到远程仓库
1. 设置用户名和邮箱:设置远程仓库
git config --global user.name "用户名"
git config --global user.email "邮箱"
2.新增一个远程仓库
git remote add origin 远程仓库地址(一般用ssh 需要设置秘钥和公钥--将公钥维护至gitee中)
git remote add origin https://gitee.com/violin1/luffy_api.git
3.把本地代码推到远端仓库:
git push 仓库地址对应的分支名(origin) master
注:第一次推需要输入gitee的账号和密码(针对https 如果是ssh需要写一下确认)
在凭证管理中可以删除和修改用户名及密码
2.3 ssh链接远程仓库
1.本地仓库和远程仓库建立关系时,建立的是https的链接,公司一般用ssh的链接
2.https和ssh的区别
https:输入用户名密码,保存在凭据管理中
ssh:配置公钥私钥
-生成公钥私钥
-把公钥放到gitee上
-配好远程仓库,以后直接提交,不需要输入任何秘钥的东西
3.ssh的配置步骤(网址:https://gitee.com/help/articles/4181)
cmd命令行中,ssh-keygen -t ed25519 -C "[email protected]"
一路回车,会在【C:\Users\琴/.ssh】文件夹下生成公钥和私钥
ssh-keygen -t ed25519 -C "[email protected]"
生成一个公钥,一个私钥
id_ed25519 #私钥,千万不能泄露
id_ed25519.pub #公钥,可以给任何人
把公钥配置在gitee的配置文件中
4.从hpps转换为ssh:
-先删除origin 对应的https的链接:git remote remove origin
-查看一下,没有了:git remote
-配置成ssh的地址
git remote add origin git@[email protected]:violin1/luffy_api.git
-以后直接拉去,提交代码即可
git pull origin master
git push origin master
3.将路飞项目推送到远程仓库(针对非空)
3.1 创建远程仓库luffy_api
3.2 将远程仓库已有数据拷贝下来:git clone 地址
3.3 把项目代码拷贝到有远程仓库数据的文件中(.git文件夹不要copy)
3.4 将被管理的文件从工作区提交至暂存区---git add .
3.5 从缓存区提交至版本库---git commit -m '项目初始化'
3.6 从本地版本库推送到远程仓库---git push origin master
3.7 以后完成项目的某个功能执行--git add.和git commit -m '详细说明'
针对多人协调开发 可能在推送远程仓库时造成冲突 在每次推送前先拉下远程仓库的代码 保证本地版本库与远程仓库保存一致 避免冲突(可以每个二到三小时拉取一次)
拉取代码:git pull origin master
推送到远程仓库:git push origin master
协同开发
1.仓库管理员将我们加入到项目开发者
-要么给你个链接,点一下
-要么直接添加你
2.进入自己仓库中就可以看到这个开发的项目
-把项目clone下来:git clone [email protected]:liuqingzheng/luffy_api.git
-用pycharm打开,就可以开发了,开发完新功能
命令:git add .---git commit -m'详细说明'---git pull origin master---git push origin master
[email protected]:xieming6/myfirst.git
标签:git,--,gitee,---,仓库,版本,远程
From: https://www.cnblogs.com/040714zq/p/16937371.html