Git总结超全版

news2024/11/17 11:31:50

最近想系统的回顾一下Git的使用,如果只想快速的集成git到idea,可以参考另一篇我的博客中的git部分

目录

  • 版本管理工具简介
    • Git安装与配置
    • Git远程仓库配置
  • Git常用命令
    • 为常用命令配置别名(可选)
    • Git忽略文件.gitignore
    • 一些概念
    • *本地仓库操作
      • 删除仓库内容
    • *远程仓库操作
    • *分支操作
      • 分支及合并的冲突问题
      • 开发中分支使用原则与流程
    • 标签操作
  • 在IDEA中使用Git
    • IDEA中配置Git
    • 获取Git仓库
    • 本地仓库操作
    • 远程仓库操作
    • 分支操作

版本管理工具简介

现在比较流行的版本管理工具是git ,但是实际上git 是近几年才发展起来的,可能有一些老的项目,还在用一些老的软件,比如svn。版本管理工具一般具有如下特性:

1) 能够记录历史版本,回退历史版本
2) 团队开发,方便代码合并

SVN(SubVersion)

SVN是集中式版本控制系统,版本库是集中放在中央服务器的.工作流程如下:
1.从中央服务器远程仓库下载代码
2.修改后将代码提交到中央服务器远程仓库

优点: 简单,易操作
缺点:所有代码必须放在中央服务器
1.服务器一旦宕机无法提交代码,即容错性较差
2.离线无法提交代码,无法及时记录我们的提交行为

在这里插入图片描述



Git

Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS),分为两种类型的仓库:本地仓库和远程仓库
命令如下:

  1. clone(克隆): 从远程仓库中克隆代码到本地仓库
  2. checkout (检出):从本地仓库中检出一个仓库分支然后进行修订
  3. add(添加): 在提交前先将代码提交到暂存区
  4. commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本
  5. fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
  6. pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于
    fetch+merge
  7. push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库

在这里插入图片描述

在这里插入图片描述


git和svn的区别

svn 是集中式版本控制工具,git 是分布式版本控制工具
svn 不支持离线提交,git有本地仓库,支持离线提交代码


Git安装与配置

下载地址

在这里插入图片描述

  1. 按照附件的 顺序直接下一步傻瓜式安装即可
  2. 其中安装的过程中需要填写一个邮箱和用户名(任意即可)
  3. 注意: 安装完毕请重启资源管理器,或者重启电脑 cmd里输入git --version即可查看版本
  4. 可视化客户端有很多比如上面的TortoiseGit,还有GitHub Desktop等,本教程不介绍,只介绍Git Bash与结合IDEA的使用

Git GuI:Git提供的图形界面工具
Git Bash: Git提供的命令行工具
当安装Git后首先要做的事情是设置用户名称和email地址,是非常重要的, 每次Git提交都会使用该用户信息

在电脑桌面任意位置右击(win11 shift+右击),点击“Git Bash Here”以打开Git命令行窗口,这里相当于一个小的linux窗口,学习linux命令也可以在这里学

#设置用户信息 
   git config --global user.name "用户名"
   git config --global user.email "邮箱地址"
#查看配置信息
   git config --list
   git config user.name
#通过上面的命令设置的信息会保存在用户C:\Users\用户\.gitconfig文件中

在这里插入图片描述

解决GitBash乱码问题

可配可不配

1.打开GitBash执行下面命令

git config --global core.quotepath false

2.${git_home}/etc/bash.bashrc 文件最后加入下面两行

export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"


Git远程仓库配置

如何搭建Git远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。
gitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub
码云gitee是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,一般用于在企业、学校等内部网络搭建git私服。

配置ssh协议

使用它们需要配置 ssh keys。需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitLab只要知道了你的公钥,就可以确认只有你自己才能推送。当然,Github、Gitee或GitLab允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitLab,就可以在每台电脑上往GitLab推送了。

在git bash生成SSH公钥命令ssh-keygen -t rsa,命令执行后,连敲3次回车键,如果公钥已经存在,则自动覆盖。执行完后到系统盘users目录(win: C:\Users\用户\你的用户名.ssh),查看生成的ssh文件。

登陆Github、Gitee或GitLab,打开“settings”,“SSH Keys”页面,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,将公钥( id_rsa.pub),添加到Github、Gitee或GitLab平台中即可。

测试配置是否成功,如在Git Bash中输入ssh -T git@github.comssh -T git@gitee.com
当你第一次使用Git的命令连接GitHub时,会得到一个警告,这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了。


配置http/https协议

一般推荐使用ssh协议,因为SSH 使用公钥加密,不需要频繁输入用户名和密码,避免了凭据泄露风险。配置好 SSH 密钥后,后续操作无需重复输入凭据。在脚本和 CI/CD 环境中,SSH 更易于无交互地操作。

使用 HTTP/HTTPS URL 来克隆仓库。例如:git clone https://github.com/username/repo.git 这些命令后面都会介绍

如果你已经克隆了一个仓库,并想更改其远程 URL 为 HTTPS,可以使用以下命令: git remote set-url origin https://github.com/username/repo.git

需要修改“.git/config”文件内容,注意这是当前项目中的配置文件,不是用户目录下的

在这里插入图片描述

例如:

在这里插入图片描述

虽然直接在 .git/config 文件中包含用户名和密码可以避免重复输入密码,但出于安全考虑,不推荐这种做法。
可以使用 Git Credential Manager 来安全地存储和管理凭据。也可以使用环境变量:将用户名和密码存储在环境变量中,并在需要时读取。例如,编写脚本来设置远程 URL。



Git常用命令

为常用命令配置别名(可选)

有些常用的指令参数非常多,每次都要输入好多参数,我们可以使用别名。
1.打开用户目录,创建.bashrc文件 部分windows系统不允许用户创建点号开头的文件,可以打开gitBash,执行touch ~/.bashrc ~就表示用户目录和linux一样

2.在.bashrc文件中输入如下内容:

#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息(包括隐藏文件)
alias ll='ls -al'

3.打开gitBash,执行source ~/.bashrc 即可使用了 在当前用户的git环境中都有效



Git忽略文件.gitignore

一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。例如Java项目中编译的.class文件、开发工具自带的配置文件等。在这种情况下,我们可以在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。
注意:该文件因为没有文件名,没办法直接在windows目录下直接创建,可以通过命令行Git Bash来touch创建。

常见规则写法有如下几种:
1)/mtk/ 过滤整个文件夹
2)*.zip 过滤所有.zip文件
3)/mtk/do.c 过滤某个具体文件
4) !index.php 不过滤具体某个文件
在文件中,以#开头的都是注释。

下面是一个示例:

.git
logs
rebel.xml
target/
!.mvn/wrapper/maven-wrapper.jar
log.path_IS_UNDEFINED
.DS_Store
offline_user.md
*.class

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr


一些概念

Git本地操作的三个区域:

在这里插入图片描述

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多配置信息、日志信息和文件版本信息等,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

Git工作区中的文件存在两种状态:untracked 未跟踪(未被纳入版本控制)、tracked 已跟踪(被纳入版本控制),其中已跟踪分为以下三种

​ 1)Unmodified 未修改状态

​ 2)Modified 已修改状态

​ 3)Staged 已暂存状态

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述




*本地仓库操作

裸仓库 (git init --bare):没有工作区,主要用于远程共享和协作。
非裸仓库 (git init):包含工作区,适合本地开发和版本控制操作。
如果你需要一个中央仓库来共享代码库,使用裸仓库;如果你需要一个本地开发环境,使用非裸仓库

mkdir创建仓库,并初始化(让Git知道,它需要来管理这个目录),指令:git init
初始化仓库不带工作区:git init --bare
执行之后会在项目目录下创建“.git”的隐藏目录,这个目录是Git所创建的,不能删除,也不能随意更改其中的内容。

在这里插入图片描述

也可以从远程仓库克隆,命令格式:git clone 远程仓库地址

在这里插入图片描述

常用命令总结:

创建一个文件到工作区 touch 文件名

查看当前状态:git status
红色:表示文件状态不在暂存区和本地仓库
绿色:表示文件状态在暂存区但不在本地仓库
nothing:表示工作区和本地仓库同步

添加到暂存区(缓存区):git add 文件名
也可以同时添加多个文件:git add 文件名1 文件名2 文件名3 …
也可以添加所有新文件到暂存区git add -Agit add .

git add . 不处理被删除的文件,而 git add -A 会将被删除的文件从暂存区中移除。
git add . 只会处理当前目录下的文件,而 git add -A 会递归地处理所有目录下的文件
一般来说,如果你想要确保所有修改、新建和删除的文件都被正确添加到暂存区,推荐使用 git add -A 命令。

把暂存区的文件提交至版本库:git commit -m "注释内容"

查看工作区的文件状态 (list) ls
查看暂存区的状态git ls-files

清空命令窗口clear:ctrl+l

每次提交都会产生一个版本号,提交时设置的message、提交人、邮箱、提交时间等信息都会记录到日志中
查看提交日志(log) git log [option] 行数太多时键入q退出查看
options
–all 显示所有分支
–pretty=oneline 将提交信息显示为一行
–abbrev-commit 使得输出的commitId更简短
–graph 以图的形式显示
在上面配置的别名git-log 就包含了这些参数,所以后续可以直接使用指令git-log

版本回退or切换 git reset 将暂存区的文件取消暂存或者是切换到指定版本
取消暂存命令格式:git reset 文件名
切换到指定版本命令格式:git reset --hard 版本号
git reset --hard HEAD^ 上一个版本就是HEAD^,上上一个版本就是HEAD^^
进行版本回退时,不需要使用完整的哈希字符串,前七位即可
每次Git提交都会产生新的版本号,可以使用git log 指令查看,通过版本号就可以回到历史版本

回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?
git reflog这个指令可以看到已经删除的提交记录,查看所有的操作记录以便确定要回到未来的哪个版本

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



删除仓库内容

Git跟踪并管理的是修改,而非文件。

你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。比如我们在当前工作区中修改readme的内容,此时git status就会提醒修改:

在这里插入图片描述

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:rm readme.txt

这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了:

在这里插入图片描述

现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit提交
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:git checkout -- 文件名

在这里插入图片描述

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!

git checkout不仅用于还原文件,还可以用于切换分支,例如,要切换到名为 feature 的分支:git checkout feature 也可以使用 git checkout 来创建新分支并立即切换到该分支git checkout -b new-feature
可以使用 git checkout 切换到某个特定的提交(commit)。这使你处于“分离头指针”状态,不属于任何分支,而是处于特定提交的状态。例如,要切换到某个提交的哈希值为 abcdef 的状态 git checkout abcdef
如果你只想在当前工作目录中恢复特定文件或目录到某个特定分支的状态,也可以使用它,比如将 <file> 恢复到 <branch> 分支的状态 git checkout <branch> -- <file>




*远程仓库操作

前面执行的命令操作都是针对的本地仓库,本节我们会学习关于远程仓库的一些操作,该节会涉及到一些分支操作,需要结合下一章看,具体命令包括

  • git remote 查看远程仓库

  • git remote add 添加远程仓库

  • git clone 从远程仓库克隆

  • git pull 从远程仓库拉取

  • git push 推送到远程仓库


如果要查看已经配置的远程仓库服务器,可以执行 git remote 命令,它会列出每一个远程服务器的简称。
如果已经克隆了远程仓库,那么至少应该能看到 origin ,这是 Git 克隆的仓库服务器的默认名字。
可以通过-v参数查看远程仓库更加详细的信息。本地仓库配置的远程仓库都需要一个简称,后续在和远程仓库交互时会使用到这个简称
在这里插入图片描述



添加远程仓库命令格式:git remote add 简称 远程仓库地址
注意:一个本地仓库可以关联多个远程仓库

在这里插入图片描述



如果你想获得一份已经存在了的 Git 远程仓库的拷贝,这时就要用到 git clone 命令。 Git 克隆的是该 Git 仓库服务器上的几乎所有数据(包括日志信息、历史记录等)。
克隆仓库的命令格式: git clone 远程仓库地址 [本地目录] 本地目录可以省略,会自动生成一个目录

在这里插入图片描述



将本地仓库当前分支的内容推送到远程仓库的对应分支,命令格式:git push 远程仓库简称 远程仓库分支名称
git push origin feature:feature将把本地的 feature 分支推送到远程仓库的 origin 中的 feature 分支 默认推送的是当前切换到的本地仓库分支 查看分支关联关系我们可以分支章节介绍的git branch -vv 命令

git push -u origin feature 用 -u 参数(–set-upstream的简写)以后再次推送时,Git会记住你推送到的远程分支,允许你只需键入 git push 而不必每次都指定远程分支
-f参数表示强制覆盖

一个仓库可以有多个分支,默认情况下在创建仓库后会自动创建一个master分支,后面会讲解分支相关的操作

在这里插入图片描述

在使用git push命令将本地文件推送至码云远程仓库时,如果是第一次操作,需要进行身份认证,认证通过才可以推送,如下:

在这里插入图片描述

注意:上面的用户名和密码对应的就是我们在码云上注册的用户名和密码,认证通过后会将用户名和密码保存到windows系统中(如下图),后续再推送则无需重复输入用户名和密码。

在这里插入图片描述

推送完成后可以到远程仓库中查看文件的变化。



从远程仓库获取最新版本并合并到本地仓库,命令格式:git pull 远程仓库简称 分支名称

拉取指令就是将远端仓库的修改拉到本地并自动进行合并 即pull = fetch+merge 其中 merge是分支合并操作 分支章节会介绍
git fetch [remote name] [branch name] 抓取指令就是将仓库里的更新都抓取到本地,不会进行合并,如果不指定远端名称和分支名,则抓取所有分支
在这里插入图片描述

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories )
解决此问题可以在git pull命令后加入参数–allow-unrelated-histories




*分支操作

使用分支意味着你可以把你的工作从开发主线上分离开来来进行重大的Bug修改、开发新的功能,以免影响开发主线。本地仓库和远程仓库中都有分支,同一个仓库可以有多个分支,各个分支相互独立,互不干扰。通过git init 命令创建本地仓库时默认会创建一个master分支。

在这里插入图片描述

在这里插入图片描述

本节我们会学习关于分支的相关命令,具体命令如下:



查看分支命令:git branch
git branch 列出所有本地分支;git branch -r 列出所有远程分支;git branch -a 列出所有本地分支和远程分支

在这里插入图片描述

查看关联关系我们可以使用 git branch -vv 命令

在这里插入图片描述



创建分支命令格式:git branch 分支名称

在这里插入图片描述



一个仓库中可以有多个分支,切换分支命令格式:git checkout 分支名称 创建新分支并立即切换到该分支git checkout -b new-feature
注意:在命令行中会显示出当前所在分支,如下图所示。

在这里插入图片描述



推送至远程仓库分支命令格式:git push 远程仓库简称 分支名称

在这里插入图片描述

推送完成后可以查看远程仓库:

在这里插入图片描述



合并分支就是将两个分支的文件进行合并处理,命令格式:git merge 分支名称 注意:分支合并时需注意合并的方向,如下图所示,在Master分支执行操作,结果就是将dev分支的内容合并到Master分支。

先在dev分支下的readme文件中新增一行并提交本地
在这里插入图片描述

切换到master分支下观察readme文件

在这里插入图片描述

将dev分支的内容与master分支合并

在这里插入图片描述



删除分支.不能删除当前分支,只能删除其他分支,即在删除分支的时候,一定要先退出要删除的分支,然后才能删除。
git branch -d 分支名称 删除分支时,需要做各种检查
git branch -D 分支名称 不做任何检查,强制删除

在这里插入图片描述



分支及合并的冲突问题

在一段时间,A、B用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突。
A用户在本地修改代码后优先推送到远程仓库,此时B用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库,此时B用户晚于A用户,故需要先拉取远程仓库的提交,经过合并后才能推送到远端分支,如下图所示。

在这里插入图片描述

新手上路小技巧:上班第一件事先git pull,可以在一定程度上避免冲突的产生。每天下班前要做的是git push,将本地代码提交到线上仓库。

在B用户拉取代码时,因为A、B用户同一段时间修改了同一个文件的相同位置代码,故可能会发生合并冲突。此时解决思路如下。

当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:

  1. 处理文件中冲突的地方
  2. 将解决完冲突的文件加入暂存区(add)
  3. 提交到仓库(commit)
    冲突部分的内容处理如下所示:

在这里插入图片描述



开发中分支使用原则与流程

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。
在开发中,一般有如下分支使用原则与流程:

  • master (生产) 分支
    线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
  • develop(开发)分支
    是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。
  • feature/xxxx分支
    从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。
  • hotfix/xxxx分支,
    从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支。
  • 还有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等等。

在这里插入图片描述



标签操作

Git 中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。比较有代表性的是人们会使用这个功能来标记发布结点(v1.0 、v1.2等)。下面是mybatis-plus的标签:

在这里插入图片描述


查看标签命令:git tag

在这里插入图片描述



创建标签命令:git tag 标签名

在这里插入图片描述



将标签推送至远程仓库命令:git push 远程仓库简称 标签名

在这里插入图片描述

推送完成后可以在远程仓库中查看标签。



检出标签时需要新建一个分支来指向某个标签,检出标签的命令格式:git checkout -b 分支名 标签名

在这里插入图片描述





在IDEA中使用Git

通过Git命令可以完成Git相关操作,为了简化操作过程,我们可以在IEDA中配置Git,配置好后就可以在IDEA中通过图形化的方式来操作Git。

当然也可以IDEA集成GitBash作为Terminal:

在这里插入图片描述


IDEA中配置Git

在IDEA中使用Git,本质上还是使用的本地安装的Git软件,所以需要提前安装好Git并在IDEA中配置Git。git.exe:Git安装目录下的可执行文件,前面执行的git命令,其实就是执行的这个文件.Git安装目录:

在这里插入图片描述

IDEA中的配置:

在这里插入图片描述

如果Git安装在默认目录中(C:\Program Files\Git),则IDEA中无需再手动配置,直接就可以使用。



获取Git仓库

在IDEA中获取Git仓库有两种方式:

  • 本地初始化仓库,本质就是执行 git init 命令
  • 从远程仓库克隆,本质就是执行 git clone 命令

本地初始化仓库

在IDEA中通过如下操作可以在本地初始化一个本地仓库,其实底层就是执行的 git init 命令。操作过程如下:

1)依次选择菜单【VCS】—【Import into Version Control】—【Create Git Repository】

在这里插入图片描述

2)在弹出的【Create Git Repository】对话框中选择当前项目根目录,点击【OK】按钮:

在这里插入图片描述

操作完成后可以看到当前项目根目录下出现了.git隐藏目录,可以在IDEA的工具栏中看到Git的相关操作图标:

在这里插入图片描述



从远程仓库克隆

在IDEA中从远程仓库克隆本质就是执行的 git clone 命令,具体操作过程如下.1)在IDEA开始窗口中点击【Get from Version Control】

在这里插入图片描述

2)在弹出的【Get from Version Control】窗口中输入远程仓库的URL地址和对应的本地仓库存放目录,点击【Clone】按钮进行仓库克隆操作

在这里插入图片描述



本地仓库操作

本地仓库操作:

  • 将文件加入暂存区,本质就是执行 git add 命令
  • 将暂存区的文件提交到版本库,本质就是执行 git commit 命令
  • 查看日志,本质就是执行 git log 命令

将文件加入暂存区

当在Git工作区新增文件或者对已有文件修改后,就需要将文件的修改加入暂存区,具体操作如下:

在这里插入图片描述



将暂存区文件提交到版本库

将暂存区文件提交到版本库,可以选择一个文件进行提交,也可以选择整个项目提交多个文件。在IEDA中对文件的提交进行了简化操作,也就是如果文件修改后,无需再加入暂存区,可以直接提交。

1)提交一个文件:

在这里插入图片描述

可以看到,如果选中一个文件提交,则菜单名称为【Commit File…】

2)提交多个文件:

在这里插入图片描述

可以看到,如果提交多个文件,则菜单名称为【Commit Directory…】由于提交操作属于高频操作,所以为了进一步方便操作,在IDEA的工具栏中提供了提交操作的快捷按钮:

在这里插入图片描述



查看日志

查看日志,既可以查看整个仓库的提交日志,也可以查看某个文件的提交日志。

1)查看整个项目的提交日志:

在这里插入图片描述

在这里插入图片描述

2)查看某个文件的提交日志

在这里插入图片描述

在这里插入图片描述




远程仓库操作

远程仓库操作:

  • 查看远程仓库,本质就是执行 git remote 命令
  • 添加远程仓库,本质就是执行 git remote add 命令
  • 推送至远程仓库,本质就是执行 git push 命令
  • 从远程仓库拉取,本质就是执行 git pull 命令

查看远程仓库

在这里插入图片描述



添加远程仓库

一个本地仓库可以配置多个远程仓库,在【Git Remotes】窗口中点击【+】来添加一个新的远程仓库:

在这里插入图片描述



推送至远程仓库

在这里插入图片描述

在弹出的【Push Commits】窗口中可以看到本次推送的文件,点击【Push】按钮即可推送至远程仓库:

在这里插入图片描述

由于推送至远程仓库操作属于高频操作,所以可以通过IDEA工具栏中的提交快捷按钮同时完成提交和推送:

在这里插入图片描述



从远程仓库拉取

在这里插入图片描述

由于从远程仓库拉取文件属于高频操作,所以在IDEA的工具栏中提供了对应的快捷按钮:

在这里插入图片描述





分支操作

分支操作:

  • 查看分支,本质就是执行 git branch 命令
  • 创建分支,本质就是执行 git branch 分支名 命令
  • 切换分支,本质就是执行 git checkout 命令
  • 将分支推送到远程仓库,本质就是执行 git push 命令
  • 合并分支,本质就是执行 git merge 命令

查看分支

在这里插入图片描述

在弹出的窗口中可以看到本地分支和远程分支:

在这里插入图片描述

由于分支操作属于高频操作,所以在IDEA的状态栏中提供了分支操作的快捷按钮:

在这里插入图片描述

点击【master】快捷按钮即可弹出【Git Branches】分支窗口:

在这里插入图片描述



创建分支

在【Git Branches】分支窗口中点击【New Branch】,弹出如下窗口:

在这里插入图片描述

在弹出的【Create New Branch】窗口中输入新分支的名称,点击【Create】按钮完成分支创建



切换分支

在这里插入图片描述



将分支推送到远程仓库

通过如下操作可以将分支推送到远程仓库:



合并分支

在这里插入图片描述



ok 写完了 有些地方写的可能比较简单
这里贴几篇我在写这篇博客之前参考的比较多的几个文章 写的都还可以 本文主要是我的个人回忆总结 如果有什么写的不好的地方 也可以看看这些文章
Git入门到精通全套教程(涵盖GitHub\Gitee码云)
超级完整的 Git的下载、安装、配置与使用 以及命令
实现在IDEA中将项目上传至github远端仓库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1684213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

轻松上手ClickHouse:ClickHouse入门

引言 在数字化时代&#xff0c;大数据处理和分析已经成为了各行各业不可或缺的一环。而ClickHouse&#xff0c;作为一款高性能的列式数据库管理系统&#xff0c;以其卓越的查询性能和灵活的扩展性&#xff0c;赢得了众多企业和开发者的青睐。本文将带领大家走进ClickHouse的世…

PostgresSQL开启归档模式

文章目录 一、查询数据库归档是否开启1、查看数据目录(找出conf文件位置)2、查看归档是否开启 二、开启归档模式&#xff08;开启后有一定的性能损耗&#xff09;1、创建归档目录2、修改postgresql.conf配置文件3、重启pg 三、验证归档情况1、查看归档是否开启2、检查点 , 刷新…

ftp是什么,ftp能做什么,ftp有什么用 -----在Windows搭建ftp服务器

大家好&#xff0c;我是风屿&#xff0c;今天教大家如何从零开始搭建一台属于自己的ftp&#xff0c;本期教大家搭建Windows客户端的&#xff0c;后面是linux的 首先第一步要有一台联网的Windows电脑 1打开控制面板&#xff0c;找到程序&#xff0c;点击打开或关闭Windows功能…

民国漫画杂志《时代漫画》第13期.PDF

时代漫画13.PDF: https://url03.ctfile.com/f/1779803-1247458360-14efab?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络&#xff01;

Thinkphp3.2.3网站后台不能访问如何修复

我是使用Thinkphp3.2.3新搭建的PHP网站&#xff0c;但是网站前台可以访问&#xff0c;后台访问出现如图错误&#xff1a; 由于我使用的Hostease的Linux虚拟主机产品默认带普通用户权限的cPanel面板&#xff0c;对于上述出现的问题不清楚如何处理&#xff0c;因此联系Hostease的…

企业源代码泄露?这几招教你如何避免这场灾难

网络时代下的企业机密&#xff1a;如何防范源代码泄露风险 在数字化的网络时代&#xff0c;企业机密尤其是源代码的安全保护&#xff0c;已成为软件开发企业关注的焦点。源代码不仅是企业的核心竞争力&#xff0c;更是创新成果的体现。一旦源代码泄露&#xff0c;不仅会造成巨…

判定字符是否唯一

题目链接 判定字符是否唯一 题目描述 注意点 0 < len(s) < 100s[i]仅包含小写字母 解答思路 首先想到的是使用数组存储字母是否出现过&#xff0c;如果多次出现则直接返回false为了不适用额外的数据结构&#xff0c;可以使用位运算判定字符是否唯一&#xff0c;思路…

蓝桥楼赛第30期-Python-第三天赛题 从参数中提取信息题解

楼赛 第30期 Python 模块大比拼 提取用户输入信息 介绍 正则表达式&#xff08;英文为 Regular Expression&#xff0c;常简写为regex、regexp 或 RE&#xff09;&#xff0c;也叫规则表达式、正规表达式&#xff0c;是计算机科学的一个概念。 所谓“正则”&#xff0c;可以…

docker中安装jenkins,并在node和cloud上跑通基于源码控制SCM的pipeline

目录 一、摘要 二、部署和使用 1. docker部署jenkins 1.1 准备数据目录 1.2 拉取jenkins镜像并启动 1.3 初始化配置 1.3.1 登录容器查看初始化密码 1.3.2 访问jenkins并输入初始化密码 1.3.3 创建管理员账户 1.3.4 初始化完成 2. jenkins使用之多分支流水线 2.1 准…

WordPress主题 7B2 PRO 5.4.2 免授权开心版源码

本资源提供给大家学习及参考研究借鉴美工之用&#xff0c;请勿用于商业和非法用途&#xff0c;无任何技术支持&#xff01; WordPress主题 7B2 PRO 5.4.2 免授权开心版源码 B2 PRO 5.4.2 最新免授权版不再需要改hosts&#xff0c;和正版一样上传安装就可以激活。 直接在Word…

安全+大模型应用系列之RSAC的Dropzone AI的分析

RSAC的AI元素 2024 RSAC上展示的半数以上的产品都加持了AI技术&#xff0c;从代码检测、数据分级分类、威胁检测、行为分析等检测技术到威胁告警分析研判和自动化处置都体现了AI的融入。 以SIEM产品为例&#xff0c;Elastic演示了可以集成任何第三方的威胁分析大模型&#xf…

uniapp移动端骨架屏流程

1.使用微信开发者工具来生成骨架屏&#xff1b;在分窗模式下选择页面信息&#xff0c;下拉选择生成骨架屏&#xff1b;他会基于当前页面生成骨架屏的样式 点击确定&#xff1b; 会自动生成这两个文件&#xff1b;一个是html结构文件&#xff0c;一个是css样式文件。 然后把这两…

【C++】学习笔记——map和set

文章目录 十五、map和set1. 关联式容器2. set的介绍3. set的使用4. multiset5. map的介绍6. map的使用7. multimap8. map中重载的operator[] 未完待续 十五、map和set 1. 关联式容器 我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector 、list 、deque 等&…

【C++】牛客 ——NC138 矩阵最长递增路径

✨题目链接&#xff1a; NC138 矩阵最长递增路径 ✨题目描述 给定一个 n 行 m 列矩阵 matrix &#xff0c;矩阵内所有数均为非负整数。 你需要在矩阵中找到一条最长路径&#xff0c;使这条路径上的元素是递增的。并输出这条最长路径的长度。 这个路径必须满足以下条件&#…

HP1010|图腾柱无桥PFC电流采样模式小结

伴随着氮化镓和碳化硅等第三代半导体功率器件在应用端的兴起&#xff0c;图腾柱PFC也随之从学术研究走到了现实的产品里。然而&#xff0c;在受益于拓扑电路简洁&#xff0c;高功率密度和效率的同时&#xff0c; 还是有很多技术难点是需要克服的。本文将讨论图腾柱PFC电流采样&…

南京沁恒微USB HUB CH334/CH335多种封装规格选择,外围简单,价格还美丽

概述&#xff1a; CH334 和 CH335 是符合 USB2.0 协议规范的 全速&#xff0c;下行端口支持 USB2.0 高速 480Mbps 个 TT 分时调度 4 个下行端口&#xff09;&#xff0c;还支持高性能的 工业级设计&#xff0c;外围精简&#xff0c;可应用于计算机和工控机主板 特点&#xff1…

NetBox-插件 QR二维码安装汉化教程

简介 本文章主要介绍安装QR插件并进行中文字体支持、字段汉化、增加下载功能&#xff0c;自定义显示字段等。 Netbox 的QR插件&#xff0c;用于给各种实体生成二维码标签&#xff0c;用于贴在实体上。二维码为实体的netbox网址。 Netbox系列文章&#xff1a;https://songxwn…

kali linux 网络配置

1. 静态IP配置 首先打开kali网络配置文件 /etc/network/interfaces vi /etc/network/interfaces 将下方内容添加 auto eth0 iface eth0 inet static address 192.168.136.199 netmask 255.255.255.0 gateway 192.168.136.254auto eth0 #网卡名 iface eth0 inet static …

形态学操作:腐蚀、膨胀、开闭运算、顶帽底帽变换、形态学梯度区别与联系

一、总述相关概念 二、相关问题 1.形态学操作中的腐蚀和膨胀对图像有哪些影响&#xff1f; 形态学操作中的腐蚀和膨胀是两种常见的图像处理技术&#xff0c;它们通过对图像进行局部区域的像素值替换来实现对图像形状的修改。 腐蚀操作通常用于去除图像中的噪声和细小的细节&a…

如何在.NET中集成SignalR

SignalR 简介 SignalR是一个开放源代码库&#xff0c;可用于简化向应用添加实时Web功能&#xff0c;实时Web功能使服务器端代码能够将内容推送到客户端。 SignalR开源库&#xff1a;https://github.com/SignalR/SignalR SignalR 应用场景 需要高频次从服务器获取信息的应用&am…