Git管理本地代码

一、Git配置

当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改
– global全局配置
通过 --global 选项可以设置全局配置信息

git config --global user.email “dahuadj@qq.com”;
git config --global user.name “dahua”

在这里插入图片描述

检测 打开c盘,查看 .gitconfig文件用记事本打开

C:\Users\wiat\.gitconfig

进入希望纳入 git 版本控制的项目目录,使用 git init 初始化,然后初始化后的文件夹能看到的区域就叫工作区

$ git init

Initialized empty Git repository in D:/workspace/project/program/.git/

该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这个目录也是上面我们说的三个区域之一,这个目录也是 Git 保存数据记录的地方,非常重要,如非必要,不要改动

当一个项目被 Git 初始化以后,只是表示我们希望通过 Git 来管理当前的这个项目文件的不同时期版本记录,但是这个时候项目中已存在的文件,或者以后新增的文件都是没有进入版本控制管理的,它们是 未追踪(Untracked) 的状态

二、Git管理常用操作

1、Git文件夹创建文件
既然 Git 是一种对文件进行操作的软件,那么Git肯定也是可以创建文件的,创建出来的文件会被存放在工作区

wiat@DESKTOP-L159V8T MINGW64 /d/workspace/project/git_test (master)$ git > 2.txt
wiat@DESKTOP-L159V8T MINGW64 /d/workspace/project/git_test (master)$ ls
2.txt  test.txt

2、添加工作区文件到暂存区
暂存区就是通过 git add 文件存放的地方在要提交之前

wiat@DESKTOP-L159V8T MINGW64 /d/workspace/project/git_test (master)$ echo "hello" >> 2.txt
wiat@DESKTOP-L159V8T MINGW64 /d/workspace/project/git_test (master)$ cat 2.txt
hello

git add 文件

# 添加单个文件
git add 1.txt
# 添加多个文件
git add 2.txt 3.txt
# 添加整个目录
git add ./a
# 添加多个目录
git add ./b ./c
# 添加所有文件
git add .

3、查看当前工作区文件状态
git status 查看当前工作区的文件的状态

 git status

git status

On branch master
No commits yet
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        2.txt
        test.txt

当前文件已经被添加至暂存区,等待提交到仓库

wiat@DESKTOP-L159V8T MINGW64 /d/workspace/project/git_test (master)
$ ls -a
./  ../  .git/  2.txt  test.txt

4、暂存区的文件提交至本地仓库

$ git commit -m "V1.0"
[master (root-commit) 0118026] V1.0
 2 files changed, 2 insertions(+)
 create mode 100644 2.txt
 create mode 100644 test.txt

用命令git commit把文件提交到Git仓库(-m后面输入的是本次提交的说明)
为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

四、版本管理
现在已经成功添加并提交了一个 2.txt 文件,接着继续修改 2.txt,修改内容如下:

$ echo "add 123" >> 2.txt

接着运行git status命令可以查看仓库当前的状态,通过输出得知 readme.txt 被修改过了,但还没有准备提交

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   2.txt

假如你休假之后继续上班,但已经记不清上次怎么修改的 2.txt,这时可以用git diff这个命令看看

现在对文件进行提交

$ git add 2.txt
warning: in the working copy of '2.txt', LF will be replaced by CRLF the next time Git tou
ches it
$ git commit -m "add 1"
[master 061ca5e] add 1
 1 file changed, 1 insertion(+)

提交后,再用git status命令查看仓库的当前状态:

$ git status
On branch master
nothing to commit, working tree clean

五、版本回退
在实际工作中,我们怎么知道 readme.txt 文件一共有几个版本被提交到Git仓库里了呢?这时就用到git log命令了。
git log命令显示从最近到最远的提交日志

$ git log
commit 061ca5e383b77ab72e5ad57633bf3adfffba2ee0 (HEAD -> master)
Author: dahua <dahuadj@qq.com>
Date:   Wed Aug 30 14:17:49 2023 +0800
    add 1
    
commit 01180266efcfa99bd3e0999501a0bbb52ff51c30
Author: dahua <dahuadj@qq.com>
Date:   Wed Aug 30 14:09:12 2023 +0800
    V1.0

如何把 2.txt 回退到上一个版本呢?
拉取最近一次提交到暂存区,该操作不影响工作区

$ cat 2.txt
hello
add 123
$ git reset HEAD^
Unstaged changes after reset:
M       2.txt

执行“git checkout 文件名”,从暂存区拉取到工作区

$ git checkout .
Updated 1 path from the index

如何把 2.txt 回退到指定版本呢?

1、查看版本号:git log查找历史或使用git reflog命令查找合并操作的commit ID,也可以上代码托管网页上查看history,找到需要回滚的目标版本号
2、 使用git reset --hard 版本名命令将版本回退。此命令会将HEAD指针、当前分支指针和索引区都指向指定的commit ID,并重置工作区为该版本。

$ git log
commit 315b68efffe767306838869cfe435b1d33b7678f
Author: dahua <dahuadj@qq.com>
Date:   Wed Aug 30 14:28:48 2023 +0800

    V1.1
$ git reset --hard 315b68efffe767306838869cfe435b1d33b7678f
HEAD is now at 315b68e V1.1

步骤2:“git checkout 文件名”,从暂存区拉取到工作区。

$ cat 2.txt
hello
add 123
147

3、使用git push -f提交更改,此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧,用“git push -f”强制推上去。
//把当前分支重命名为main

$ git branch -M main

然后执行命令git remote add origin + 仓库地址

$ git remote add origin https://github.com/dahuadj/dahuadj.git

注:如果执行后出现 remote origin already exists 就是异常
解决方法:先执行 git remote rm origin 再执行git remote add origin + 仓库地址

$ git remote rm origin

提交时,需要输入验证码同意git上传到github
//用本地的main覆盖远端的main

$ git push -u origin main

1.查看所有分支
用命令:git branch -a
2.创建新分支
命令:git branch test。将会创建一个名为test的新分支
把新分支推送到远程分支(github仓库上):
$ git push origin test
3.切换分支
$ git checkout test
$ git push --set-upstream origin test
4.删除本地分支test
$ git branch -d test
5.删除远程分支
删除完本地,就应该删除远程了。输入以下命令:
$ git branch -r -d origin/test

参考链接:https://blog.csdn.net/kiritomzzz/article/details/131546316
https://blog.csdn.net/catshitone/article/details/54973968

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算法笔记:球树

1 KD树的问题 算法笔记&#xff1a;KD树_UQI-LIUWJ的博客-CSDN博客 在kd树中&#xff0c;导致性能下降的最核心因素是因为kd-tree中被分割的子空间是一个个的超方体&#xff0c;而求最近邻时使用的是欧式距离&#xff08;超球&#xff09;。超方体与超球体相交的可能性是极高…

【原创】jmeter并发测试计划

bankQPS 创建线程组 设置并发参数 HTTP请求GET 添加HTTP请求 GET请求 查看结果树 HTTP请求 POST 添加HTTP请求 参数必须设置头信息格式&#xff1a; 添加HTTP头信息 查看结果树 可以选择&#xff0c;仅查看错误日志 汇总报告

【CSS】简记CSS效果:通过transition(动画过渡属性)实现侧边栏目滑入滑出

需求 在资金明细的页面中&#xff0c;点击按钮时筛选区域从左侧滑出&#xff0c;完成筛选点击确认后调用接口完成数据查询&#xff0c;筛选区域滑入左侧&#xff1b; 基于微信小程序页面实现 wxml代码 <view><!-- 操作按钮 --><button type"primary&qu…

Go测试之.golden 文件

Go测试中的.golden 文件是干什么用的&#xff1f;请举例说明 在Go语言中&#xff0c;.golden文件通常用于测试中的黄金文件&#xff08;golden files&#xff09;。黄金文件是在测试期间记录预期输出结果的文件。测试用例运行时&#xff0c;黄金文件用于比较实际输出与预期输出…

react18+antd5.x(1):Notification组件的二次封装

antdesign已经给我们提供了很好的组件使用体验&#xff0c;但是我们还需要根据自己的项目业务进行更好的封装&#xff0c;减少我们的代码量&#xff0c;提升开发体验 效果展示 开起来和官网的使用没什么区别&#xff0c;但是我们在使用的时候&#xff0c;进行了二次封装&#…

Java“牵手”1688淘口令转换API接口数据,1688API接口申请指南

1688平台商品淘口令接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取1688商品的标题、价格、库存、商品快递费用&#xff0c;宝贝ID&#xff0c;发货地&#xff0c;区域ID&#xff0c;快递费用&#xff0c;月销量、总销量、库存、详情描…

ChatGPT AIGC 一个指令总结Python所有知识点

在ChatGPT中,直接输入一个指令就可以生成Python的所有知识点大纲。 非常实用的ChatGPT功能。 AIGC ChatGPT ,BI商业智能, 可视化Tableau, PowerBI, FineReport, 数据库Mysql Oracle, Office, Python ,ETL Excel 2021 实操,函数,图表,大屏可视化 案例实战 http://t.…

【LeetCode75】第四十题 最大层内元素和

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 这道题和LeetCode75的上一题大同小异&#xff0c;都是要我们对二叉树进行层序遍历。 那具体如何层序遍历我再上一题也详细介绍过了&#…

vue2 组件库之vetur提示

当我们开发完自定义UI组件库后&#xff0c;在项目中使用时&#xff0c;想要达到以下提示效果&#xff0c;组件提示与属性提示&#xff0c;有什么解决方案呢&#xff1a; 事实上&#xff0c;这是vetur的功能&#xff0c;原文如下&#xff1a; Component Data | Vetur If a pac…

软件测试实训系统建设方案

一 、系统概述 软件测试实训系统是软件开发过程中的一项重要测试活动&#xff0c;旨在验证不同软件模块或组件之间的集成与交互是否正常。综合测试确保各个模块按照设计要求正确地协同工作&#xff0c;以实现整个软件系统的功能和性能。以下是软件测试实训系统的一般流程和步骤…

基于Jenkins自动打包并部署docker、PHP环境,ansible部署-------从小白到大神之路之学习运维第86天

第四阶段提升 时 间&#xff1a;2023年8月23日 参加人&#xff1a;全班人员 内 容&#xff1a; 基于Jenkins部署docker、PHP环境 目录 一、环境部署 &#xff08;一&#xff09;实验环境&#xff0c;服务器设置 &#xff08;二&#xff09;所有主机关闭防火墙和selinu…

揭秘:房产小程序如何助力售楼业务提升

随着移动互联网的发展&#xff0c;小程序已经成为各行各业进行营销推广的利器之一。对于房地产行业而言&#xff0c;小程序同样具有巨大的潜力。下面&#xff0c;我们将介绍如何使用乔拓云平台开发一款吸睛的房地产营销小程序。 第一步&#xff1a;注册登录乔拓云平台&#xff…

SpringBootWeb案例 Part3

目录 1. 新增员工 1.1 需求 1.2 接口文档 1.3 思路分析 PostMapping RequestBody //把前端传递的JSON数据填充到实体类中 1.4 功能开发 1.5 功能测试 1.6 前后端联调 2. 文件上传 2.1 文件上传简介 Spring中提供了一个API&#xff1a;MultipartFile&#xff0c;使…

自学设计模式(类图、设计原则、单例模式 - 饿汉/懒汉)

设计模式需要用到面向对象的三大特性——封装、继承、多态&#xff08;同名函数具有不同的状态&#xff09; UML类图 eg.—— 描述类之间的关系&#xff08;设计程序之间画类图&#xff09; : public; #: protected; -: private; 下划线: static 属性名:类型&#xff08;默认值…

【微服务部署】06-日志集成

文章目录 1. EFK日志三件套集成1.1 核心组件1.2 部署 2. Exceptionless日志系统2.1 Exceptionless核心特性2.2 Exceptionless部署文件2.3 K8s中使用Exceptionless 1. EFK日志三件套集成 1.1 核心组件 Elasticsearch&#xff08;存储&#xff09;Fluentd&#xff08;收集器&am…

H36M VS 3DPW datasets

1采集设备方面 H36M使用了高精度的多视角摄像机动态捕捉系统获得了非常准确和连贯的3D关节坐标标注。 3DPW使用了单目摄像机与IMU的复合传感系统进行采集,存在一定程度的标注噪声。 2场景环境方面 H36M主要针对室内定向动作,背景单一简洁。 3DPW重点是室外复杂环境中人的自…

CLICK HOUSE

一、clickhouse简介 MPP架构的列式存储数据库&#xff08;DBMS&#xff1a;Database Management System&#xff09;&#xff0c;能够使用 SQL 查询实时生成分析数据报告。ClickHouse的全称是Click Stream&#xff0c;Data WareHouse。 ClickHouse的全称由两部分组成&#xf…

【黑马头条之热点文章kafkaStream】

本笔记内容为黑马头条项目的热点文章-实时计算部分 目录 一、实时流式计算 1、概念 2、应用场景 3、技术方案选型 二、Kafka Stream 1、概述 2、Kafka Streams的关键概念 3、KStream 4、Kafka Stream入门案例编写 5、SpringBoot集成Kafka Stream 三、app端热点文章…

前端刷题-深浅拷贝

深拷贝 function deepClone(obj) {if (obj null || typeof obj ! "object") {return obj;}if (obj instanceof Date) {return new Date(obj);}if (obj instanceof Array) {const cloneArray [];for (let i 0; i < obj.length; i) {cloneArray[i] deepClone(o…

六、事务-3.事务四大特性

1、原子性 事务是一组操作&#xff0c;这组操作是不可分割的最小操作单元&#xff0c;这组操作要么全部执行成功&#xff0c;要么全部执行失败。 如&#xff1a;三步转账操作&#xff0c;当中只要有一步操作失败了&#xff0c;整个就失败了。 2、一致性 事务完成时&#xff…