Git总结超全版

最近想系统的回顾一下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 --listgit 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.mzph.cn/news/838872.shtml

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

相关文章

滴滴三面 | Go后端研发

狠狠的被鞭打了快两个小时… 注意我写的题解不一定是对的&#xff0c;如果你认为有其他答案欢迎评论区留言 bg&#xff1a;23届 211本 社招 1. 自我介绍 2. 讲一个项目的点&#xff0c;因为用到了中间件平台的数据同步&#xff0c;于是开始鞭打数据同步。。 3. 如果同步的时候…

Sketch v100 for Mac 安装教程【支持M芯片】

Sketch v100 for Mac 安装教程【支持M芯片】 原文地址&#xff1a;https://blog.csdn.net/weixin_48311847/article/details/139104315

CasaOS系统玩客云安装内网穿透工具实现无公网IP远程访问

文章目录 前言1. CasaOS系统介绍2. 内网穿透安装3. 创建远程连接公网地址4. 创建固定公网地址远程访问 前言 2月底&#xff0c;玩客云APP正式停止运营&#xff0c;不再提供上传、云添加功能。3月初&#xff0c;有用户进行了测试&#xff0c;局域网内的各种服务还能继续使用&am…

【学习笔记】后端(Ⅰ)—— NodeJS(Ⅰ)

NodeJS 1、概述 1.1、NodeJS是什么 1.2、NodeJS的主要作用 1.3、NodeJS的优点 1.4、NodeJS 与 浏览器 的 JavaScript 对比 1.4.1 ECMAScript 介绍 1.4.2 JavaScript 介绍 1.4.3 TypeScript 介绍2、基础篇 2.1、Buff…

LangChain带你轻松玩转ChatGPT等大模型开发

大家好&#xff0c;我是herosunly。985院校硕士毕业&#xff0c;现担任算法研究员一职&#xff0c;热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名&#xff0c;CCF比赛第二名&#xff0c;科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的…

Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程

&#x1f42f; Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程 &#x1f4f8; 文章目录 &#x1f42f; Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程 &#x1f4f8;摘要引言正文&#x1f4d8; OpenCV库概述&#x1f680; …

【Git教程】(十九)合并小型项目 — 概述及使用要求,执行过程及其实现,替代解决方案 ~

Git教程 合并小型项目 1️⃣ 概述2️⃣ 使用要求3️⃣ 执行过程及其实现 在项目的初始阶段&#xff0c;往往需要针对重要的设计决策和技术实现原型实验。当原型评估结束后&#xff0c;需要将那些成功的原型合并起来称为整个项目的初始版本。 在这样的情景中&#xff0c;各个原…

php代码审计参考

代码审计思路&#xff1a; 从个人角度出发&#xff0c;如果环境允许的话&#xff0c;可以先选择做一个”程序员“再来做代码审计。因为从开发者的位置去思考问题&#xff0c;可以快速定位问题。学习面向对象编程以及面向过程编程&#xff0c;编写一些 项目提升对代码的理解能力…

Android Compose 六:常用组件 Button

Button 1 简单使用 Button(onClick { /*TODO*/ }) {Text(text "我是一只button里的text")}效果 颜色为什么是这个样子&#xff1f; 前面Text里我们讲过 主题色会影响组件的颜色 这里我使用的颜色如下 primary Color(0xFFFF0000),onPrimary Color(0xFF00FF00),p…

什么是合法IP地址?

IP地址&#xff0c;即互联网协议地址&#xff0c;是网络设备在互联网上进行通信的唯一标识符。IP地址有两种主要版本&#xff1a;IPv4和IPv6。为了保证网络通信的正常进行&#xff0c;IP地址需要是合法的。本文将详细阐述什么是合法IP地址&#xff0c;以及其重要性和验证方法。…

如何给实拍添加旋转模糊效果?视频模糊特效PR模板剪辑素材

PR特效模板&#xff0c;高级旋转模糊效果视频模板剪辑素材。 特征&#xff1a; After Effects 2019及以上兼容项目。 Premiere Pro 2021及以上兼容项目。 可用分辨率&#xff08;4K–HD–方形–移动&#xff09;。 不需要插件。 包括教程。 免费下载&#xff1a;https://prmu…

宝藏级丨图解项目管理全流程(上篇)

《项目管理知识体系指南》的定义&#xff1a;项目是为创造独特的产品、服务或成果而进行的临时性工作。项目管理就是将各种知识、技能、工具与技术应用于项目活动&#xff0c;以满足项目的要求。项目管理的全流程包括以下几个阶段&#xff1a; 项目启动阶段。这是开始一个新项…

GAN实例基于神经网络

目录 1.前言 2.实验 1.前言 需要了解GAN的原理查看对抗生成网络&#xff08;GAN&#xff09;&#xff0c;DCGAN原理。 采用手写数字识别数据集 2.实验 import argparse import os import numpy as np import mathimport torchvision.transforms as transforms from torchvi…

RedisTemplate使用最详解(三)--- opsForHash()

1、put(H var1, HK var2, HV var3) 新增hashMap值 var1 为Redis的keyvar2 为key对应的map值的keyvar3 为key对应的map值的值var2相同替换var3 redisTemplate.opsForHash().put("hashValue","map1","value1"); redisTemplate.opsForHash().put(&q…

Java官网下载JDK17版本详细教程(下载、安装、环境变量配置)

第一步&#xff0c;去百度搜索甲骨文官网 第二步 第三步 第四步 第五步 第六步 第七步 第八步 第九步 第十步 然后在系统变量里面找到path-编辑-新建添加这个,点击确定就好了 %JAVA_HOME%\bin 就完成了&#xff0c;接下来测试是否成功。 测试&#xff1a; 第一步&a…

VC++6.0 ListViewReport报表使用例子

操作步骤&#xff1a; 1&#xff0c;拖一个ListContorl控件 2&#xff0c;修改ID名称 3&#xff0c;设置Report样式 3&#xff0c;加入初始化代码 void CDuplicatefilesclearDlg::InitlizationListView() {CListCtrl *lstVew (CListCtrl*)GetDlgItem(IDC_LIST_Main);lstVew-&…

“联宝360“项目深度解析:创新模式与互助机制

大家好&#xff0c;我是吴军&#xff0c;来自一家知名的互联网科技公司&#xff0c;负责产品策略分析。 最近&#xff0c;我观察到社交网络上出现了一个名为“联宝360”的热门项目&#xff0c;它引发了众多团队长的热烈讨论和积极推广。这个项目虽然是在今年年初刚刚启动的&am…

羊大师分析,羊奶健康生活的营养源泉

羊大师分析&#xff0c;羊奶健康生活的营养源泉 羊奶&#xff0c;作为一种古老的饮品&#xff0c;近年来因其独特的营养价值和健康益处而备受关注。今天&#xff0c;羊大师就来探讨一下羊奶与健康之间的紧密联系。 羊奶富含蛋白质、脂肪、维生素和矿物质等多种营养成分。羊奶…

如何做一个厂区的导航地图?工厂导航定位怎么解决方案

厂区定位导航是一种基于位置服务&#xff08;LBS&#xff09;的导航系统&#xff0c;通过获取厂区内的位置信息&#xff0c;为用户提供准确的导航服务。该系统能够实时显示用户当前位置&#xff0c;提供目的地导航、路径规划、实时定位、语音提示等功能&#xff0c;帮助用户快速…

Process Monitor下载安装使用教程(图文教程)超详细

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…