目录
[4. 推送至远程仓库分支](#4. 推送至远程仓库分支)
一、概述
1.什么是Git
Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。
2.Git能干什么
代码回溯
开发者可以快速回到某个历史版本,方便修复最近的代码错误。
版本切换
允许开发者在不同的版本之间快速切换,例如在开发功能分支和主分支之间切换。这对于并行开发和试验新功能非常有用。
多人协作
Git使得多个开发者可以同时在同一个项目上工作,通过提交和拉取请求(Pull Request)进行代码审查和合并。
远程备份
Git 允许将本地代码库推送到远程服务器,提供一个安全的备份解决方案。这减少了数据丢失的风险,允许团队成员随时访问项目的最新版本。
3.简介
4.下载和安装
下载地址:https://git-scm.com/download
安装完成后在任意目录点击鼠标右键,如果能看到如下菜单则表示安装完成:Git GUI Here:打开Git图形界面
Git Bash Here:打开Git命令行(常用)
二、Git代码托管服务
1.常用的Git代码托管服务
Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?
我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。
gitHub(地址:https://github.com/),是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名gitHub
码云(地址:https://gitee.com/),是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快
GitLab(地址:https://about.gitlab.com/),是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务
BitBucket(地址:https://bitbucket.org/),是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户
2.使用码云代码托管服务
操作流程
1、注册码云账号
2、登录码云
3、创建远程仓库
4、邀请其他用户成为仓库成员
创建远程仓库
邀请其他用户成为仓库成员
三、Git全局设置(常用命令)
1.命令
当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。
在Git 命令行中执行下面命令:
设置用户信息
git config --global user.name "itcast"
git config --global user.email "hello@itcast.cn"
查看配置信息
git config --list
注意:上面设置的user.name和user.email并不是我们在注册码云账号时使用的用户名和邮箱,此处可以任意设置。
2.实现
四、获取Git仓库(常用命令)
要使用Git对我们的代码进行版本控制,首先需要获得Git仓库。
1.两种方式
获取Git仓库通常有两种方式:
1.在本地初始化一个Git仓库(不常用)
2.从远程仓库克隆(常用)
2.本地初始化Git仓库
(1)步骤
1.在任意目录下创建一个空目录(例如repo1)作为我们的本地Git仓库
2.进入这个目录中,点击右键打开Gitbash窗口
3.执行命令git init
(2)实现
会产生一个.git文件,repo1就是一个本地Git仓库
3.远程仓库克隆
(1)步骤
1.在任意目录下,作为我们的远程仓库所在目录(不要在其他仓库的目录里面)
2.进入这个目录中,点击右键打开Gitbash窗口
3.执行命令git clone [程Git仓库地址]
(2)实现
产生一个myGitRepo的远程仓库,和本地仓库平级,没有嵌套
五、几个重要概念(常用命令)
工作区、暂存区、版本库概念还有Git工作区中文件的状态
为了更好的学习Git,我们需要了解Git相关的一些概念,这些概念在后面的学习中会经常提到
1.工作区、暂存区、版本库
版本库: 前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等(一般不能动)
工作区: 包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
2.Git工作区中文件的状态
Git工作区中的文件存在两种状态:
(1)untracked未跟踪(未被纳入版本控制)(git status显示红色)
(2)tracked已跟踪(被纳入版本控制)
1)Unmodified未修改状态(不显示)
2)Modified已修改状态(红色,要先git add 进入暂存区再提交)
3)Staged已暂存状态(绿色)
在工作区新建的文件是untracked未跟踪状态,使用git add进入暂存区就是暂存状态git add *或者git add 【具体的文件】
git status输出当前工作区所有文件的状态红色代表untracked未跟踪,绿色代表tracked已跟踪
六、本地仓库操作命令
本地仓库常用命令如下:
git status 查看文件状态
git add 将文件的修改加入暂存区
git reset 将暂存区的文件取消暂存或者是切换到指定版本
git commit 将暂存区的文件修改提交到版本库
git log 查看日志
语法:git add 文件名/* (*代表工作区所有文件)
语法:git commit 【"注释"】文件名/* (*代表暂存区所有文件)
" "双引号里面是注释,说明作用
提交后,git status就看不到这个文件了,顺便产生一个版本
可以来这里查看版本号,来执行git reset --hard 版本号
就可以回到上个版本的工作区的所有文件和内容
七、远程仓库操作命令
前面执行的命令操作都是针对的本地仓库,本节我们会学习关于远程仓库的一些操作,具体包括:
git remote 查看远程仓库
git remote add 添加远程仓库
git clone 从远程仓库克隆
git pull 从远程仓库拉取
git push 推送到远程仓库
用法git remote
查看远程仓库
git remote add
添加远程仓库,运行git remote add <shortname> <url>添加一个新的远程Git仓库,同时指定一个可以引用的简写。
关联上创建好的远程仓库,并指定简写
git clone
如果你想获得一份已经存在了的 Git 远程仓库的拷贝,这时就要用到git clone 命令。Git克隆的是该Git仓库服务器上
的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。
克隆仓库的命令格式是:git clone [url]git push
将本地仓库内容推送到远程仓库,可以使用命令:git push [remote-name] [branch-name]
remote-name 本地存在的仓库的简称
branch 要上传到对应的远程仓库的分支名称
第一次就要身份认证
该身份必须是上传的远程仓库的成员(管理员或开发者等等)
上传前一定要git add 后 git commit 最后才 git push
git pull
git pull命令的作用是从远程仓库获取最新版本并合并到本地仓库,命令格式:
git pull [short-name] [branch-name]
注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文
件的时候会报错(fatal:refusing to merge unrelated histories)
解决此问题可以在gitpull命令后加入参数--allow-unrelated-histories
八、分支操作
分支是Git使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
同一个仓库可以有多个分支,各个分支相互独立,互不干扰。
通过git init命令创建本地仓库时默认会创建一个master分支。
本节我们会学习关于分支的相关命令,具体如下:
git branch 查看分支
git branch [name] 创建分支
git checkout [name] 切换分支
git push [shortName] [name] 推送至远程仓库分支
git merge [name] 合并分支
1.查看分支
git branch 列出所有本地分支
git branch -r 列出所有远程分支
git branch -a 列出所有本地分支和远程分支
2.创建分支
创建分支命令格式:git branch [name]
master是绿色的,代表当前所在的分支
3.切换分支
切换分支命令格式:git checkout [name]
不同分支的工作区的目录下的文件是不同的。
4. 推送至远程仓库分支
推送至远程仓库分支命令格式:git push [shortName] [branch-name]
shortName是本地的仓库副本的别名
branch-name是分支的名字
5.分支合并
命令格式: git merge [branch-name]
上面的例子就是将b3分支里面的master分支里面没有的文件合并到master分支里面。
九、标签操作
Git中的标签指的是某个分支某个特点时间点的状态。通过标签可以很方便的切换到标记时的状态。比较有代表性的是人们会使用这个功能来标记发布结点版本。(如v0.1,v0.2等)
下面是mybatis-plus的标签(代表版本)
和标签相关的命令:
git tag 列出当前仓库的所有标签
git tag [tag-name] 创建一个当前分支的标签
git push [shortName] [tag-name] 将当前仓库的一个标签推送到远程仓库
git checkout -b [newBranchName] [tag-name] 检出标签就是创建一个新的分支存储标签记录的一个分支的状态即分支的工作区的所有文件及内容
十、idea2023中使用git(更方便更简单)
1.配置git
idea设置里面版本控制里面Git设置Git的可执行文件的路径
右边测试完下面可以显示Git的版本。
2.获取Git仓库
(1)本地初始化仓库
(2)克隆远程仓库
(3).gitignore文件
该文件的作用就是指定项目中的哪些文件不需要git管理
(4)将文件加入暂存区
第一种方式:
在我们新创建一个文件(什么文件都会),idea自动提示是否加入暂存区
没加入暂存区的文件在idea里面显示的是红色
第二种方式:
选择爆红的文件,右击选择Git,再选择添加
添加完就变绿色了
(5)将暂存区的文件提交到版本库
提交单个文件
在选择这个文件右击,选择Git,选择提交文件
提交完,该文件会显示普通的白色。
提交多个文件1.点击左边框的提交按钮
2.勾选你想要提交的文件
3.写注释说明,后点击提交
(6)查看日志
idea最左下角
(7)查看远程仓库
按下面的步骤就可以查看当前仓库关联的远程仓库
(8)添加远程仓库
一个本地仓库可以对应多个远程仓库,点击上面的加号就可以添加其他远程仓库的url
(9)推送远程仓库
第一种:
第二种:
(10)从远程仓库拉取
(11)查看分支
(12)创建分支
你在哪个分支下面创建分支,那么这个新分支就是克隆当前分支,内容一样
(13)切换分支
从master分支切换到b1分支
(14)将分支推送到远程仓库
选择你要推送的分支到远程仓库