Git学习(黑马程序员)

news2024/11/27 4:26:06

基本配置

在这里插入图片描述

在用户目录下创建文件.bashrc

1打开Git Bash

2 在目录下输入指令:

touch ~/.bashrc

在文件中写入内容:

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

获取本地仓库

要使用Git对我们的代码进行版本控制,首先需要获得本地仓库
1)在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库
2)进入这个目录中,点击右键打开Git bash窗口
3)执行命令git init
4)如果创建成功后可在文件夹下看到隐藏的.git目录

#基础操作指令
Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化。

 *查看修改的状态(status)
作用:查看的修改的状态(暂存区、工作区)
命令形式:git status
 *添加工作区到暂存区(add)
作用:添加工作区一个或多个文件的修改到暂存区
命令形式:git add 单个文件名|通配符
将所有修改加入暂存区:git add .
git add .加载全部文件到缓存区
 *提交暂存区到本地仓库(commit)
作用:提交暂存区内容到本地仓库的当前分支
命令形式:git commit -m '注释内容'

vim 编辑器的使用

1编辑文件:

vim file01.txt

2编辑模式

输入i

3退出

按下ESC,并输入:wq即可退出

查看提交日志(log)

在3.1.3中配置的别名 git-log 就包含了这些参数,所以后续可以直接使用指令 git-log
作用:查看提交记录
命令形式:git log [option]
options
–all 显示所有分支
–pretty=oneline 将提交信息显示为一行
–abbrev-commit 使得输出的commitId更简短
–graph 以图的形式显示

git log或者
git-log

版本回退

作用:版本切换(回退到指令执行后的位置)
命令形式:git reset --hard commitID
commitID 可以使用 git-log 指令查看
如何查看已经删除的记录?
git reflog
这个指令可以看到已经删除的提交记录

清空git命令:clear

添加文件至忽略列表

一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动
生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以在工作目录
中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:

# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf

分支

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

 查看本地分支
命令:git branch
 创建本地分支
命令:git branch 分支名
 *切换分支(checkout)
命令:git checkout 分支名
我们还可以直接切换到一个不存在的分支(创建并切换)
命令:git checkout -b 分支名
 *合并分支(merge)
一个分支上的提交可以合并到另一个分支
命令:git merge 分支名称
删除分支
不能删除当前分支,只能删除其他分支
git branch -d b1 删除分支时,需要做各种检查
git branch -D b1 不做任何检查,强制删除
解决冲突
当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:
1. 处理文件中冲突的地方
2. 将解决完冲突的文件加入暂存区(add)
3. 提交到仓库(commit)

操作远程仓库

添加远程仓库

git remote add <远端名称> <仓库路径>
命令: git remote add <远端名称> <仓库路径>
远端名称,默认是origin,取决于远端服务器设置
仓库路径,从远端服务器获取此URL
例如: git remote add origin git@gitee.com:czbk_zhang_meng/git_test.git

查看远程仓库

git remote

推送到远程仓库

命令:git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ]
如果远程分支名和本地分支名称相同,则可以只写本地分支
git push origin master
-f 表示强制覆盖
--set-upstream 推送到远端的同时并且建立起和远端分支的关联关系。
git push --set-upstream origin master
如果当前分支已经和远端分支关联,则可以省略分支名和远端名。
git push 将master分支推送到已关联的远端分支。

本地分支与远程分支的关联关系

git branch -vv

在这里插入图片描述

从远程仓库克隆

git clone <仓库路径> [本地目录]

在这里插入图片描述

从远程仓库中抓取和拉取

远程分支和本地的分支一样,我们可以进行merge操作,只是需要先把远端仓库里的更新都下载到本
地,再进行操作。
抓取 命令:git fetch [remote name] [branch name]
抓取指令就是将仓库里的更新都抓取到本地,不会进行合并

如果不指定远端名称和分支名,则抓取所有分支。
拉取 命令:git pull [remote name] [branch name]
拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
如果不指定远端名称和分支名,则抓取所有并更新当前分支。

解决合并冲突

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

idea中使用git

初始化本地仓库

在这里插入图片描述

设置远程仓库

在这里插入图片描述

提交到本地仓库

在这里插入图片描述

推送到远程仓库

在这里插入图片描述

克隆远程仓库到本地

在这里插入图片描述

解决冲突

  1. 执行merge或pull操作时,可能发生冲图

在这里插入图片描述
2. 冲突解决后加入暂存区

3. 提交到本地仓库

4. 推送到远程仓库

在这里插入图片描述
点击更新仓库操作就可以使得各个分支跟远端分支保持一致。

创建分枝

在这里插入图片描述
在这里插入图片描述

git 常见操作

在这里插入图片描述
在这里插入图片描述
1. 切换分支前先提交本地的修改
2. 代码及时提交,提交过了就不会丢

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

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

相关文章

3.4-初识Container

常用的docker container命令&#xff1a; 1、基于image创建docker container命令&#xff1a; docker run lvdapiaoliang/hello-docker 2、列举当前本地正在运行的container容器命令&#xff1a; docker container ls 3、列举当前本地所有的container容器命令(包括正在运行的和…

3DMAX建模基础教程:可渲染和封闭二维样条线

在3D建模中&#xff0c;可渲染和封闭的二维样条线对于创建复杂的模型和场景至关重要。以下是一些关于如何在3DMAX中建模基础教程&#xff0c;帮助你掌握可渲染和封闭的二维样条线的使用。 1. 创建新的样条线 首先&#xff0c;选择“图形”菜单&#xff0c;然后选择“样条线”…

如何利用PCB创建PCB封装库

如何利用PCB创建PCB封装库 首先你要活得PCB工程文件&#xff0c;然后利用Altium Designer将工程文件打开&#xff0c;如下图所示&#xff1a; 然后选择工具栏“设计”->“生成PCB库&#xff08;P&#xff09;”&#xff0c;如下图&#xff1a; 最后将生成的库文件保存到指…

kubernetes集群编排(10)

目录 prometheus监控 部署prometheus 部署nginx监控实例 部署prometheus-adapter prometheus监控 部署prometheus 创建项目仓库并上传镜像 [rootk8s2 helm]# vim prometheus-values.yaml alertmanager:alertmanagerSpec:image:repository: prometheus/alertmanagertag: v0.24.0…

《中国北斗产业发展指数报告》发布,北斗产业化水平稳步提升

《中国北斗产业发展指数报告》发布&#xff0c;北斗产业化水平稳步提升 11月9日&#xff0c;在浙江德清举办的第一届中国测绘地理信息大会上&#xff0c;中国卫星导航定位协会首次发布《中国北斗产业发展指数报告》。 报告显示&#xff0c;当前国产北斗芯片出货量已超亿级规模&…

hyper-v外部网络,ssh服务正常,可以ping通虚拟机,但是无法远程连接虚拟机。

问题&#xff1a; ssh服务正常&#xff0c;可以ping通虚拟机&#xff0c;虚拟机可上网&#xff0c;一切正常&#xff0c;但是无法远程连接虚拟机。 报错&#xff1a;Network error: Connection refused 解决&#xff1a; 在本机的网络设置中&#xff0c;这个东西不知道是什么…

OpenHarmony 开发者论坛正式上线,盖楼赢惊喜好礼~

你&#xff0c;是否曾遇到 OpenHarmony 开发难题&#xff0c;却不知找谁解答&#xff1f; 你&#xff0c;是否曾想分享 OpenHarmony 技术&#xff0c;但没有一个官方投稿平台&#xff1f; 你&#xff0c;是否想加入火热的 OpenHarmony 开源项目&#xff0c;却不知如何参与和贡…

精益管理3个阶段,如何实现高效企业管理?

在现今竞争激烈的市场环境下&#xff0c;企业需要不断提高经营效率和降低成本来保持竞争力。其中&#xff0c;精益管理是一种不错的管理方式&#xff0c;在各大企业得到广泛的运用。今天我们来了解一下精益管理的3个阶段&#xff0c;以及如何使用精益管理工具来实现高效企业管理…

MySQL--视图、存储过程、触发器

1、视图 1、定义&#xff1a; 所谓的视图是一种虚拟存在的表&#xff0c;视图中的数据并不在数据库中实际存在&#xff0c;就是视图只保存了查询的SQL逻辑&#xff0c;不保存查询的结果&#xff0c;所以在创建视图的时候&#xff0c;主要的工作就是落在创建这条SQL查询语句的时…

图数据库实战-HugeGraph简介

一、HugeGraph简介 HugeGraph是一款易用、高效、通用的开源图数据库系统&#xff08;Graph Database&#xff0c;GitHub项目地址&#xff09;&#xff0c; 实现了Apache TinkerPop3框架及完全兼容Gremlin查询语言&#xff0c; 具备完善的工具链组件&#xff0c;助力用户轻松…

SketchUp (草图大师) SU2015 中文版软件安装包下载地址及安装教程!

1.鼠标右键【SketchUp2015 v15.0.9350(64bit)】压缩包(win11及以上系统先点击“显示更多选项”&#xff09;选择【解压到SketchUp2015 v15.0.9350(64bit)】。 2.打开解压后的文件夹&#xff0c;鼠标右键【SketchUp2015】选择【以管理员身份运行】。 3.点击【下一个】。 4.勾选【…

vue2+antd——实现权限管理——js数据格式处理(回显+数据结构渲染)

vue2antd——实现权限管理——js数据格式处理 效果图如下&#xff1a;1.需求说明2.如何展开所有子项及孙子项目——在弹窗之前就获取树形结构&#xff0c;然后直接将数据传到弹窗中3.template部分代码4.script的data部分5.权限tree数据处理——将row中的权限分配到具体的value参…

13.(vue3.x+vite)组件间通信方式之provide与inject

前端技术社区总目录(订阅之前请先查看该博客) 示例效果 依赖注入Provide / Inject 在父子组件传递数据时,通常使用的是 props 和 emit,父传子时,使用的是 props,如果是父组件传孙组件时,就需要先传给子组件,子组件再传给孙组件,如果多个子组件或多个孙组件使用时,就…

JavaScript数据存储

原始类型&#xff1a;存储在栈内存中&#xff0c;每次开辟的空间大小是固定 引用类型&#xff08;对象、函数、数组&#xff09;&#xff1a;存储在堆内存中&#xff0c;开辟的空间大小根据数据的大小决定 // 声明变量会在栈内存中开辟空间 // 创建对象在堆内存中开辟空间&…

OpenAI:我们暂停了ChatGPT Plus新用户注册

今天中午&#xff0c;OpenAI 首席执行官 Sam Altman 在 X 平台发文说&#xff0c;将暂停 ChatGPT Plus 新用户注册。 we are pausing new ChatGPT Plus sign-ups for a bit > :( the surge in usage post devday has exceeded our c> apacity and we want to make sure e…

Spring 国际化:i18n 如何使用

1、i18n概述 国际化也称作i18n&#xff0c;其来源是英文单词 internationalization的首末字符i和n&#xff0c;18为中间的字符数。由于软件发行可能面向多个国家&#xff0c;对于不同国家的用户&#xff0c;软件显示不同语言的过程就是国际化。通常来讲&#xff0c;软件中的国…

一文搞懂CAN总线协议

1.基础概念 CAN 是 Controller Area Network 的缩写&#xff08;以下称为 CAN&#xff09;&#xff0c;是 ISO 国际标准化的串行通信协议。在北美和西欧&#xff0c;CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线&#xff0c;并且拥有以 CAN 为底层…

OpenAI发布会震撼AI界,千字文全面解读

你的朋友圈是否被近日 OpenAI 的开发者大会刷屏了&#xff1f;这是预料之中的事。在近日&#xff0c;OpenAI 首度召开了旨在定义未来应用市场的开发者大会。 让我们迅速捕捉 OpenAI 最新的动态以及 ChatGPT 的更新亮点。 1、OpenAI 最新动态 今晨的盛会聚焦于以下要点&#xf…

Web服务Openlab的搭建

Web服务Openlab的搭建 网站需求&#xff1a; 基于域名 www.openlab.com 可以访问网站内容为 welcome to openlab!!! 给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料和缴费网站 基于 www.openlab.com/student 网站访问学生信息&#xff0c; 基于 www.openlab.…

5个用于地理空间数据分析的Python包

大家好&#xff0c;地理空间数据分析在城市规划、环境研究、农业和交通等行业中至关重要。不断增长的需求导致Python包在各种地理数据分析要求上的使用增加&#xff0c;例如分析气候模式、研究城市发展或跟踪疾病传播等&#xff0c;评估和选择具有快速处理、修改和可视化能力的…