2022新版Git教程 从入门到实战Git远程仓库Gitee的使用
Posted 小鱼干儿♛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022新版Git教程 从入门到实战Git远程仓库Gitee的使用相关的知识,希望对你有一定的参考价值。
- 🐟 个人主页 :https://blog.csdn.net/qq_52007481
- ⭐个人社区:【小鱼干爱编程】
- 📰最近专栏:Git教程专栏
- 💯 刷题网站:市面上的刷题网站有很多如何选择一个适合自己的网站呢,博主给这里推荐一款我常用的刷题网站 👉点击跳转
文章目录
因为GitHub服务器在国外,访问起来可能有一些问题,所以这一章的教学主要以码云(Gitee)为主,码云和GitHub使用起来很相似,所以学会使用码云,在使用Github就很容易上手了
远程仓库作用
远程仓库是指托管在因特网或其他网络中的你的项目的版本库。 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等。
使用码云(Gitee)
注册账号
首先需要注册一个码云的账号
创建仓库
-
在码云创建一个新仓库
-
新建仓库设置仓库名称和仓库路径,一般建议名称和路径和项目使用同一个
-
创建仓库成功以后我们可以看到,有两个链接,这两个链接是远程仓库的地址
建立项目和本地仓库
建立一个git-dome的项目目录,里面添加一个fish.txt
初始化并提交
git init
git add .
git commit -m'first'
添加远程仓库
git remote add 别名 远程库的链接
git remote add git-dome https://gitee.com/liu/git-dome.git
这里的别名通常是用
origin
这里为了强调它只是一个别名的作用特意换了一个
最后的链接是你远程项目的地址可以是https也可以是ssh只不过选择不同的后面的验证方式有所不同
推送到远程仓库
git push <remote> <branch>
git push <远程连接的别名> <分支名>
git push -u git-dome master
我们第一次推送分支时,加上了
-u
参数,Git不但会把本地的分支内容推送的远程新的分支,还会把本地的分支和远程的分支关联起来,在以后的推送或者拉取时就可以简化命令git push
或者git push <remote> <branch>
这里就是将本地的master分支和远程的master分支关联了起来
注意:推送的单位是分支
如果是第一次使用git,并且刚才使用的是https
协议的链接,则在推送的时候会出一个弹窗,让你输入用户名和密码,这里的用户名和密码是码云的用户名和密码,主要是用来让网站验证你的身份。这里的用户名和密码存到凭据管理器
,以后需要修改密码的时候可以去凭据管理器中更改,可以参考这个博客
推送成功
注意最下面的一行内容,这个就是代表本地分支和远程分支绑定起来
查看远程仓库
查看全部的远程仓库
# 查看的是简略信息
git remote
# 详细信息
git remote -v
通过git remote -v
你会发现自己只添加了一个远程仓库,但是结果为什么有两个,这两个分别代表一个拥有拉取权限一个代表拥有推送权限
推送成功以后我们查看一下远程仓库中是否有内容,已经看到内容已经添加到里面了
查看某个远程仓库
git remote show < 远程的别名 >
git remote show git-dome
它同样会列出远程仓库的 URL 与跟踪分支的信息。 这些信息非常有用,它告诉你正处于 master 分支,并且如果运行 git pull, 就会抓取所有的远程引用,然后将远程 master 分支合并到本地 master 分支。 它也会列出拉取到的所有远程引用
拉取远程库
git pull 别名 分支名
git pull git-dome master
拉取动作会自动提交本地库以及自动合并
使用ssh协议
上面我们用的是https协议,因为码云在国内所以使用https协议的速度还是很快的,但是如果要使用Github在使用https协议的就对网络的要求比较高,很容易出现超时的情况,使用ssh协议连接速度会快一些
创建私钥和公钥
首先查看自己本地是否有私钥和公钥,打开C盘下当前用户,是否有.ssh
隐藏文件夹,如果有就删除
在当前用户目录下进入Git Bash
使用 ssh-keygen
命令生成公钥和私钥
ssh-keygen -t rsa -C youemail@fish.com
# 最后的邮箱是你自己的可以,随便编的可以
执行命令后,中间会有三次停顿,什么也不用输,直接回车就行
最后的结果
此时文件中多出了一个.ssh
的目录,里面有两个文件
绑定公钥
用记事本本打开公钥,将里面的内容复制下来,添加到Gitee里面
添加完成后就可以使用ssh链接
使用ssh拉取远程库
我们先在gitee中修改一下文件
原来的内容只有第一行,现在添加内容并提交
git pull 远程连接 分支
git pull git@gitee.com:liu/git-dome.git master
同样这个ssh的连接也可以通过 git remote
来添加别名
查看本地的内容
克隆远程仓库
这次我们克隆远程那个git-dome
的项目。因为是要克隆项目,所以就在一个新的文件夹中克隆下来git-dome
的项目
在新文件夹下打开Git Bash
git clone 远程仓库的链接
git clone https://gitee.com/liu/git-dome.git
查看本地,同样也发现本地新的文件夹下也有了刚才的项目
查看克隆下来的项目的远程连接
git remote -v
此时会发现,远程连接的别名是origin
这个别名是Git默认的
这时我们就发现项目已经被克隆下来了,项目已经是你自己本地的项目了,随你自己进行修改
远程仓库的重命名与移除
重命名远程仓库
修改一个远程仓库的别名,
git remote rename old_name new_name
查看此时远程仓库的名称
移除远程仓库
如果因为一些原因想要移除一个远程仓库可以使用 git remote remove
或 git remote rm
# 删除远程仓库
git remote remove new-dome
此时再查看
这里的修改和删除都是针对本地,不会删除远程的仓库
常用流程
首次使用
# 初始化本地仓库
git init
# 添加暂存区
git add .
# 提交到本地仓库
git commit -m 'XXX'
# 更新项目,如果有冲突需要解决冲突
git pull 项目链接
# 给项目链接设置一个别名,以后就可以通过别名使用
git remote add origin 项目链接
# 初次推送到远程
# 将本地分支和远程分支绑定
git push -u origin master
之后提交
git add .
git commit -m 'XXX'
git pull origin master # 如果有冲突就先解决冲突以后再commint一遍
git push origin master
建议还是要先理解原理,不然只是使用命令,等遇到问题时自己不知道怎么解决
本章小结
本章我们学习了远程库的一些使用技巧,学会了如何在代码托管平台建立新的仓库,将本地仓库和远程仓库关联起来、推送和拉取远程的项目、克隆远程的项目到本地,以及远程仓库的重命名与移除。
本章使用的命令
命令 | 作用 |
---|---|
git remote add < 别名 > 链接 | 添加远程库的连接并设置别名 |
git push < 别名 > < 分支 > | 推送指定分支到远程仓库 |
git remote | 查看有几个远链接 |
git remote -v | 查看远程链接 |
git remote show < 别名 > | 查看指定的远程仓库的信息 |
git pull < 别名 > < 分支> | 拉取指定远程仓库指定分支 |
git clone < 远程仓库链接 > | 克隆远程仓库 |
git remote rename < old_别名 > < new_别名 > | 重命名 |
git remote remove < 别名 > | 删除远程仓库 |
git remote rm < 别名 > | 删除远程仓库 |
ssh-keygen -t rsa -C < 邮箱 > | 生成SSH的公钥和私钥 |
- 🐟 个人主页 :https://blog.csdn.net/qq_52007481
- ⭐个人社区:【小鱼干爱编程】
- 📰最近专栏:Git教程专栏
Maven实战与原理分析:手把手带你搭建maven私有仓库
Maven的原理就是将jar从远程中央仓库下载到PC磁盘的本地仓库,当本地仓库没有发现需要的jar就会去Maven默认的远程中央仓库Maven Central(由Apache维护)中寻找,每次需要新的jar后都要从远程中央仓库上下载。那么问题来了?这个远程的中央仓库一定有很多人使用那下载速度一定很慢,这个暂且不用考虑。 重要的是万一哪天公司外网连不上了咋办?而Nexus私服恰好可以解决这个问题。搭建私服的好处是Nexus有效解决了Maven对Apache的远程中央仓库的依赖,当项目需要新的jar时会先在nexus私服下载好以后才会下载到本地。如果发现私服已经存在这个jar包,则会直接从私服下载到本地Maven库,如果没有再去网络上下载。同时,我们也可打包自己的代码变成jar包上传到私服中供公司其他同事下载使用。
准备工作
- 安装Nexus 之前先确定是否已经安装JDK,这里安装的是jdk8版本(如何安装JDK步骤叙述,)
安装Nexus
下载完成后解压安装
- 解压
tar -zvxf nexus-3.13.0-01-unix.tar.gz -C /opt/
复制代码
- 环境变量配置
vim /opt/nexus-3.13.0-01/bin/nexus
//配置JDK 路径
INSTALL4J_JAVA_HOME_OVERRIDE=/opt/jdk1.8.0_181
复制代码
- 启动Nexus
/opt/nexus-3.13.0-01/bin/nexus start
复制代码
- 浏览器打开Nexus界面,默认端口号是8081(注意需要判断服务器是否开通了该端口号的监听,这里我将默认端口号改成9190)
//加入9190端口的监听
vim /etc/sysconfig/iptables
查看是否监听端口(如果配置了自己定义的端口,需要先访问该端口一次才能看到监听)
netstat -ntlp
//重启防火墙配置(不重启端口还是无法生效)
service iptables restart
//修改端口号
vim /opt/nexus-3.13.0-01/etc/nexus-default.properties
//重启Nexus
/opt/nexus-3.13.0-01/bin/nexus restart
Nexus其他命令
//停止
nexus stop
//查看状态
nexus status
默认登录用户名密码
admin
admin123
卸载
rm -rf nexus-3.13删除掉安装目录即可
//可以看到Nexus在浏览器中可以打开界面,部署成功,如下图
复制代码
配置jenkins,maven更新到Nexus私服
- 修改Jenkins服务器上的Maven的settings.xml文件(路径是Maven安装路径 /opt/apache-maven-3.5.4/conf/),加入maven访问nexus认证,访问Nexus的帐号密码为上面登录nexus的默认登录用户名密码
- maven 项目pom文件配置私服仓库
<repositories>
<repository>
<id>nexus</id> <!--id要和上一步配置的id一致-->
<name>local nexus</name>
<url>http://xxxxx:9190/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>local nexus</name>
<url>http://xxxxx:9190/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
复制代码
Nexus 默认的三种类型仓库,创建仓库的时候可以选择这三种
1.group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库;
2.hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库)
3.proxy(代理类型):从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的 Configuration 页签下 Remote Storage Location 属性的值即被代理的远程仓库的路径)
复制代码
proxy(代理类型)
- 这里就是代理的意思,代理远程中央 Maven 仓库,当 项目构建访问中央库的时候,先通过代理去远程中央仓库下载依赖包到Nexus 仓库,然后再从Nexus仓库下载到本地。私服我们部署在内网服务器,只要其中一个人从远程中央库下来了,以后相同的依赖包就都是从Nexus私服上进行下载,这样大大加快下载速度,不怕远程中央仓库出现问题。
hosted(宿主类型)
- 创建布和代理方式创建差不多
- Hosted 是宿主机的意思,就是怎么把第三方的 Jar 放到私服上。 Hosted 有三种方式,Releases、SNAPSHOT、Mixed
group(仓库组类型)
- 将其他仓库类型合并一起(maven public就是group类型),如图所示将其他仓库合在一下提供对外使用
仓库属性说明
- maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
- maven-releases:私库发行版jar
- maven-snapshots:私库快照(调试版本)jar
- maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。
Nexus jar 包上传与删除
上传jar包
- 如果我们使用的远程maven中心库有jar包无法下载,或者是我们自己编译好的jar包提供给公司其他人,则可以将本地jar包上传到私服仓库
私服jar删除
- 私服jar出现问题,我们也可以删除私服的jar包重新下载或自行上传
到此,Nexus搭建Maven私服服务已经完成.
作者:maoqitian
链接:https://juejin.cn/post/6844903879910359047
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
以上是关于2022新版Git教程 从入门到实战Git远程仓库Gitee的使用的主要内容,如果未能解决你的问题,请参考以下文章