代码版本管理工具 git

1. 去B站看视频学习,只看前39集:

01-Git概述(Git历史)_哔哩哔哩_bilibili

2.学习Linux系统文本编辑器的使用

vi编辑器操作指令分享 (baidu.com)

(13条消息) nano编辑器的使用_SudekiMing的博客-CSDN博客

windows下载安装
Git官方下载地址:
Git - Downloading Package
安装图解:
https://www.cnblogs.com/ximiaomiao/p/7140456.html
linux下载安装
sudo apt install git
windowsgit命令与Linux一致

git 的命令

git init    初始化仓库

git clone  https://        克隆仓库

git status   查看仓库状态

git add <file/name>            添加文件到暂存区

git commit -m "文件信息"   提交更改的文件到仓库

git rm <file_name>  删除文件,然后提交,版本仓库的也删除了

git config --list  查看用户名和邮箱 

git checkout -b <分支名>   #创建新的分支
git branch                #查看分支
git rm -r --cached <文件名>  # 删除远程文件或者文件夹子
git push origin --delete <分支名> #删除远程分支
git branch -d <分支名>     # 删除本地分支
git remote -v               #显示远程仓库
git merge <分支名>         # 合并分支
git pull                  # 拉取, 一般两个人同时对一个分支进行修改后,如果别人先提交的,则需要拉取下来在本地解决冲突后合并
git rebase                #变基  
git log                   #查看历史提交
git checkout <commit 序列> #回退到历史版本  
git reflog                # 记录每一次的命令
git branch <新分支名> <序列号>  #如果回退到历史版本后更改代码了,想再次提交,则可切换到最新版本, 然后用该命令行创建新的分支

仓库

查看文件的状态 git status 

把文件添加到暂存区   git add <file_name>    取消添加      git reset <file_name>

提交到本地仓库      git commit  -m ""

修改的文件想要提交到仓库,必须先要添加到暂存区

git commit -a -m ""  添加到暂存区并提交到仓库

文件加入到忽略列表,不需要版本管理。创建.gitignore文件,列出要忽略的文件后缀  命令: touch .gitignore

查看远程仓库     git remote

新建的本地仓库需要关联远程仓库,才能Push ,可以关联多个远程仓库

关联远程仓库    git remote add origin < https://> 

克隆仓库会把历史版本和日志信息一起复制下来

git remote rm  从本地移除远程仓库的记录

fetch抓取   pull拉取    merge合并

git fetch  origin master从远程仓库获取最新版本到本地仓库,不会自动merge ,需要手动合并到工作区,git merge  origin  master

git pull origin master  从远程仓库获取最新版本并merge到本地仓库,

如果本地仓库不是克隆来的,并且存在文件,会报错,需要加参数: git pull origin master --allow-unrelated-histories

git push origin master 将本地仓库推送到远程仓库

分支

查看分支

列出所有分支  git branch -a

列出所有本地分支  git branch 

列出所有远程分支  git branch -r

创建分支 

git branch <name>

以当前分支为基础创建的,所以一般在主分支创建新分支

切换分支 git checkout <name>

推送新分支到远程仓库 git push origin <name>

合并分支

进入主分支执行git merge <name>

两分支合并,对于同一个文件不同的修改,会报错,需要自己去修改文件, 然后 git add <修改的文件名>, 说明已解决冲突 ,然后提交到本地仓库,最后推送分支到远程仓库

在合并改动之前,可以使用如下命令预览两个分支的差异:

git diff <source_branch> <target_branch>

删除本地分支

git branch -d <name>      ,   强制删除: git branch -D <name>  ,不建议

删除远程仓库分支  git push origin -d <name>

标签

标签常用做版本名 标识

git tag <name> 创建标签

git tag 列出所有标签

git show <name> 查看标签信息

git push origin <name>  推送标签到远程仓库

git tag -d [tag] 删除本地标签

git push origin :refs/tags/[tag]

检出标签 :新建一个分支,指向某个tag, 这个分支就以那个版本为基础,

命令: git checkout -b [branch] [tag] 

在ubuntu 代码版本管理流程

 第一步:

安装git命令

sudo apt-get install git

指定用户名和邮箱 

如果是私人电脑,用你名字的拼音作为user.name ,你的邮箱作为user.email

如果是公用小电脑,用feihu作为user.name ,用123456@jqr 作为user.email

$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@domain.com"

然后到代码工作区里执行命令 git init 初始化本地仓库,如果有了.git就不用执行

(如果看不到.git,按Ctrl + H 显示隐藏的文件 )

git remote 查看远程仓库,没有origin的话就添加远程仓库:  git remote add origin <https://gitee.com/用户名/仓库名/树/分支>  进行关联

第二步:

 在开发过程中,同分支上如果别人对远程仓库的代码进行了修改。我们就可以使用git pull拉取远程代码,就可以将别人最新修改的代码同步到我们的本地工作区。

git pull origin master  --allow-unrelated-histories  拉取master分支的最新版本到本地

写代码,修改代码

git add .    把所有的文件添加到暂存区

git commit -m "信息"  

信息的写法:对哪个文件进行了操作,需要注意什么

或者一个命令完成:  git commit -a -m "信息"      添加到暂存区并提交到仓库

git push origin master 将本地仓库推送到远程仓库

输入你的git邮箱和密码

如果嫌每次输入git账号和密码麻烦,设置保存密码。如,将账号密码保存 30 分钟

git config --global credential.helper 'cache --timeout=1800'

注意问题

 假如你新建了一个远程仓库,里面只有README.md文件,这时你在本地仓库想推送代码到远程仓库,就会报上面的错,因为远程仓库含有本地仓库不存在的文件,推送的话可能会覆盖掉远程仓库的文件。解决方法:

1.先同步git/github上的文件到本地,在本地更改将内容进行合并后再上传,依次执行下面命令:

git pull origin master  --allow-unrelated-histories  拉取文件并合并到本地

如果本地仓库不是克隆来的,并且存在文件,会报错,需要加参数: git pull origin master --allow-unrelated-histories
git push origin master  推送

2.强行推送(不建议)

 git push -u origin +master

强行上传会覆盖掉远程仓库的文件,不到万不得已不用

如果远程仓库的代码被别人修改过而你在修改本地代码前没有pull拉取最新的,会导致代码版本不一样,这时候会提交失败,可以 git push --force origin 分支名,这样会本地代码强制覆盖远程仓库代码(会覆盖掉别人的修改),所以每次更改代码前最好pull一下。如果远程没有这个分支,会在远程仓库新建一个。不建议强行覆盖,如果要强行覆盖,先问问你团队的人。

回溯操作:如果你pull代码后发现你的代码被其他人误操作了,可以git reset --hard HEAD^,使本地仓库当前分支回退到上一次提交的状态,回退前记得切换到相应分支。而HEAD^^表示上上次的状态,HEAD~100表示上100次的状态。也可以把HEAD换成上一步中log里的commit的序列号。

如果代码有大改,记得推送一个版本标签,方便维护版本

git tag <name> 创建标签 v1.0

git push origin <name>  推送标签到远程仓库

调试:

未完待续...

下载开源代码注意:

先查看有多少分支

git clone https://...  只会克隆 默认分支

 克隆所有分支,用下面命令

git clone --mirror   https://...

或者: 

git pull --all  https://...

github加速:

github在国内访问是非常慢的,有时候克隆个项目都失败,git clone加速方法

1. 在执行git clone之前,执行命令:

git config --global url."https://ghproxy.com/".insteadOf https://


向git全局环境增加一个替换设置,它会自动给github的链接前面增加ghproxy.com的加速链接,从而实现快速克隆项目的目标。
第二种方式配置文件法(推荐)
在 ~/.git /config 中增加如下配置即可加速,git对Github的访问

……前面的七七八八内容不用管[url "https://ghproxy.com/https://github.com/"]insteadOf = https://github.com/

(13条消息) 【git】大文件git clone不下来问题_git大文件拉不下来_xll_bit的博客-CSDN博客

Git简介 - 廖雪峰的官方网站 (liaoxuefeng.com)

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

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

相关文章

状态机实现N位按键消抖

状态机实现N位按键消抖 1、原理 利用状态机实现按键的消抖&#xff0c;具体的原理可参考 (50条消息) 基于FPGA的按键消抖_fpga 按键消抖_辣子鸡味的橘子的博客-CSDN博客 状态机简介&#xff1a; 状态机分类可以主要分为两类&#xff1a;moore和mealy 根据三段式状态机最后…

分布式文件存储与数据缓存 Redis高可用分布式实践(上)

一、Reids概述 1.1 为什么要使用NoSQL 单机Mysql的美好年代 在90年代&#xff0c;一个网站的访问量一般都不大&#xff0c;用单个数据库完全可以轻松应付。在那个时候&#xff0c;更多的都是静态网页&#xff0c;动态交互类型的网站不多。 遇到问题&#xff1a; 随着用户数的…

内网隧道代理技术(十四)之 Earthworm的使用(一级代理)

Earthworm的使用(一级代理) ew 全称是EarchWorm,是一套轻量便携且功能强大的网络穿透工具,基于标准C开发,具有socks5代理、端口转发和端口映射三大功能,可在复杂网络环境下完成网络穿透,且支持全平台(Windows/Linux/Mac)。该工具能够以“正向”、“反向”、“多级级联”…

安防监控视频汇聚EasyCVR修改录像计划等待时间较长,是什么原因?

安防监控视频EasyCVR视频融合汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检…

推荐用于学习RN原生模块开发的开源库—react-native-ble-manager

如题RN的原生模块/Native Modules的开发是一项很重要的技能&#xff0c;但RN官网的示例又比较简单&#xff0c;然后最近我接触与使用、还有阅读了react-native-ble-manager的部份源码&#xff0c;发现里边完全包含了一个Native Modules所涉及的知识点/技术点&#xff0c;故特推…

Kibana+Prometheus+node_exporter 监控告警部署

下载好三个软件包 一、prometheus安装部署 1、解压 linxxubuntu:~/module$ tar -xvf prometheus-2.45.0-rc.0.linux-amd64.tar.gz 2、修改配置文件的IP地址 # my global config global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is ever…

【论文阅读】利用道路目标特征的多期车载激光点云配准

目录 引 言1 道路场景点云特征2 配准方法2.1 配准基元获取2.2 特征点提取2.3 两期道路场景车载点云的配准 2.3.1 基于特征点的4PCS 粗配准 3 实验与分析4 结论5 参考文献 摘 要 针对车载移动测量系统获取的城市道路点云场景巨大、目标复杂多样&#xff0c;多期道路场景重访车载…

【并发专题】操作系统模型及三级缓存架构

目录 课程内容一、冯诺依曼计算机模型详解1.计算机五大核心组成部分2.CPU内部结构3.CPU缓存结构4.CPU读取存储器数据过程5.CPU为何要有高速缓存 学习总结 课程内容 一、冯诺依曼计算机模型详解 现代计算机模型是基于-冯诺依曼计算机模型 计算机在运行时&#xff0c;先从内存中…

二、SQL-6.DCL-2).权限控制

*是数据库和表的通配符&#xff0c;出现在数据库位置上表示所有数据库&#xff0c;出现在表名位置上&#xff0c;表示所有表 %是主机名的通配符&#xff0c;表示所有主机。 e.g.所有数据库&#xff08;*&#xff09;的所有表&#xff08;*&#xff09;的所有权限&#xff08;a…

jeecgboot新建moudle,但是访问404,需要在open moudle setting 里面设置

jeecgboot新建moudle&#xff0c;但是访问404&#xff0c;需要在open moudle setting 里面设置 首先需要确定以下3个pom.xml 最最外层的pom.xml 最最外层的pom.xml <modules><module>jeecg-boot-base-core</module><module>jeecg-module-demo</m…

IDEA将本地项目上传到码云

一、创建本地仓库并关联 用IDEA打开项目&#xff0c;在菜单栏点击vcs->create git repository创建本地仓库&#xff0c; 选择当前项目所在的文件夹当作仓库目录。 二、将项目提交本地仓库 项目名右键就会出现“GIT”这个选项->Add->Commit Directory, 先将项目add…

真正帮你实现—MapReduce统计WordCount词频,并将统计结果按出现次数降序排列

项目整体介绍 对类似WordCount案例的词频统计&#xff0c;并将统计结果按出现次数降序排列。 网上有很多帖子&#xff0c;均用的相似方案&#xff0c;重写某某方法然后。。。运行起来可能会报这样那样的错误&#xff0c;这里实现了一种解决方案&#xff0c;分享出来供大家参考…

力扣 968. 监控二叉树

题目来源&#xff1a;https://leetcode.cn/problems/binary-tree-cameras/description/ C题解&#xff08;来源代码随想录&#xff09;&#xff1a;节点可以分为3个状态&#xff1a;0无覆盖&#xff1b;1有摄像头&#xff1b;2有覆盖。 要想放的摄像头最少&#xff0c;应当叶子…

SOC FPGA之HPS模型设计(一)

目录 一、建立HPS硬件系统模型 1.1 GHRD 1.2 从0开始搭建HPS 1.2.1 FPGA Interfaces 1.2.1.1 General 1.2.1.2 AXI Bridge 1.2.1.3 FPGA-to-HPS SDRAM Interface 1.2.1.4 DMA Peripheral Request 1.2.1.5 Interrupts 1.2.1.6 EMAC ptp interface 1.2.2 Peripheral P…

seata组件使用期间,获取全局事务状态

GlobalStatus枚举类展示全局事务状态 官网链接&#xff1a;http://seata.io/zh-cn/docs/user/appendix/global-transaction-status.html 获得全局事务状态 // 开启全局事务地方获取全局事务xid String xid RootContext.getXID(); // 通过全局事务xid获得GlobalStatus枚举类 …

Unity游戏源码分享-2.5D塔防类游戏

Unity游戏源码分享-2.5D塔防类游戏 项目地址&#xff1a; https://download.csdn.net/download/Highning0007/88118947

操作系统_进程与线程(二)

目录 2. 处理机调度 2.1 调度的基本概念 2.2 调度的层次 2.3 三级调度的联系 2.4 调度的目标 2.5 调度的实现 2.5.1 调度程序&#xff08;调度器&#xff09; 2.5.2 调度的时机、切换与过程 2.5.3 进程调度方式 2.5.4 闲逛进程 2.5.5 两种线程的调度 2.6 典型的调度…

多旋翼物流无人机节能轨迹规划(Python代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f308;3 Python代码实现 &#x1f389;4 参考文献 &#x1f4a5;1 概述 多旋翼物流无人机的节能轨迹规划是一项重要的技术&#xff0c;可以有效减少无人机的能量消耗&#xff0c;延长飞行时间&#xff0c;提高物流效率…

了解Unity编辑器之组件篇Layout(八)

Layout&#xff1a;用于管理和控制UI元素的排列和自动调整一、Aspect Ratio Fitter&#xff1a;用于根据宽高比自动调整UI元素的大小 Aspect Mode&#xff1a;用于定义纵横比适配的行为方式。Aspect Mode属性有以下几种选项&#xff1a; &#xff08;1&#xff09;None&#xf…

基于ARM+FPGA (STM32+ Cyclone 4)的滚动轴承状态监测系统

状态监测系统能够在故障早期及时发现机械设备的异常状态&#xff0c;避免故障的 进一步恶化造成不必要的损失&#xff0c;滚动轴承是机械设备的易损部件&#xff0c;本文对以滚动 轴承为研究对象的状态监测系统展开研究。现有的监测技术多采用定时上传监 测数据&#xff0c;…