git版本管理入门(本地/远程仓库,常用命令)

news2024/12/26 9:31:38

目录

git简介

安装git

配置SSH key

 Linux环境下需要命令生成ssh key

本地git管理

多人协作流程

追加

重新提交

git命令

git commit本地和git push远程

git stash和git stash pop暂存

git status查看修改哪些了文件​

git diff 查看修改前后的差异

git log查看提交记录

git add添加到缓存区等待提交

git commit -m 信息:提交缓存区到仓库中

git pull --rebase更新合并​

分支

git branch查看分支

git branch 分支名称:创建分支

git checkout -b 分支名称:创建并切换到该分支

git checkout 分支名称:切换分支

git merge 来源分支 合并分支

git branch -d 分支名称 删除分支

vim常见命令

enter(让其接着输出)

q退出(无法输入时或者需要中断时)

ls查看目录

快捷键

vscode代码格式化Shift+Alt+F

git bash复制粘贴Ctrl/Shift+ins(v)

相关工具

yarn(js包管理)

日常命令集成

Linux系统WSL2

rm -r删除

Fork 提高git 效率

git简介

  • Workspace:工作区
  • Index:暂存区,当执行 git add 的命令后,工作区的文件就会被移入暂存区, stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中
  • Repository:本地仓库,位于自己的电脑上,通过 git commit 提交暂存区的内容,会进入本地仓库。Remote:远程仓库,用来托管代码的服务器,远程仓库的内容能够被分布在多个地点的处于协作关系的本地仓库修改,本地仓库修改完代码后通过 git push 命令同步代码到远程仓库。

安装git

  • 下载 Git 下载地址 ,选择自己系统对应的版本下载即可。

  • 在你的电脑上生成 ssh 秘钥,打开终端,执行 ssh-keygen -t rsa -C "你公司内部邮箱地址",如果执行成功,切换到 ~/.ssh 目录下,此时目录应该如下所示。复制 id_rsa.pub 的内容。

  • 这里以 Github 为例,如下图所示,进入 settings -> SSH and GPG keys 通过 cat 命令查看文件 id_rsa.pub 的内容,然后复制过来,点击 add ssh key,这一步等于说把你的公钥放到了 Github 上进行托管。

  • PowerShell
    cat .git/config
    git remote set-url origin <URL>
    #URL为下图的SSH

    ​​

  • 全局配置 Git 的用户名和邮箱

git clone…redirect: https://gitlab.../sign_in_参宿7的博客-CSDN博客

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

git config --global core.autocrlf false
#使其在检出和提交文件时不会自动更改行尾符。
#在使用Windows vs时,可能会自动更改换行符导致格式错误或其他问题。
#通过将core.autocrlf设置为false,Git将禁止执行此种自动转换并保留文件中已有的行尾样式。
#完全禁止 Git 在检查文件格式时自动转换换行符。如果发现文件中存在混合换行符的情况,Git 将会给出警告信息。

 ​​

​​

git config --global core.safecrlf true

#通常情况下这个设置建议开启,否则diff 不同版本时,会记录不同换行符

cat ~/.gitconfig

​​

配置SSH key

使用你本地的私钥和远程仓库的公钥进行验证是否是一对秘钥

win环境下SSH key 配置_windows ssh key_nandao158的博客-CSDN博客

 Linux环境下需要命令生成ssh key

  • 生成key

PowerShell
ssh-keygen
#键入enter,默认选项

  • 复制key到gitlab的ssh key中

本地git管理

  1. git init 初始化库
  2. git add .
  3. git commit -m “解释”(如果直接git commit还会进去到vim,qa退出)
  4. git diff可查看与上个版本的不同(不过建议学会用fork)

多人协作流程

  1. git log查看当前仓库的版本号(第一个是当前仓库的版本号,第二个是最近提交的版本号)
  2. 根据版本号是否一致,来看是否要git pull --rebase(拉取最新代码)
  3. 完成需求
  4. git stash(藏匿)
  5. git pull --rebase(拉取最新代码)
  6. git add .  将所有文件添加到缓存区等待提交
  7. git stash pop后解决冲突
  8. 在项目路径输入wsl(从开发环境vs code中的git bash命令中切换到wsl)​
  9. (当代码成功入库后,相关功能完善可以反复使用的同一个JIRA-ID
  10. git commit -m “xxx”,xxx例如 类型(范围): [<JIRA-ID>] <英文总结,首字母大写, no_3rd_skip 代表突破500行代码或10个文件更改的限制建议每改一个整块逻辑,就提交
  11. arc diff 代码审核,进入vim编辑模式,(arcanist代码提交审核工具)

PowerShell
#summary:中文,注意详细,空格增加可读性;
Summary:统一 增加/删除 按钮
Test Plan:self test
Reviewers:xxx,xx
Subscribers:

注意英文还是中文输入.(例如“,”,“.”),建议直接复制上次正确的格式​

最后会生成一个Differential Revision的网址URI,可以看到区别

​​

追加

如果review审核不通过,根据需求修改后进行追加和更新,

PowerShell
git add .
#将首次提交git commit -m “xxx”的-m改成--amend追加
git commit  --amend xx
#为上次arc diff中生成URI中的id,进行更新
arc diff --update   D3xxx4

重新提交

如果不想要在上次提交上追加,可以直接删除,重新提交

arc land(reviewer审核通过后)首字母大写,例如:feat(auto): [ID] Add new function

PowerShell
#建议直接复制,:[]之间有个空格
git commit -m "feat(ui): [ID] Add sub button"

每个提交只能进行一次arc land,否则会报错​

git命令

git commit本地git push远程

Git commit是将更改保存到本地代码库中的命令,

Git push是将更改从本地代码库同步到远程代码库的命令。

git stash和git stash pop暂存

stash栈(先进后出)

可以在另一个时间点上利用这些更改。 执行完 git stash 命令后,在执行 git pull 完成后,可以通过执行git stash pop 来恢复之前存档的改动。

保存的时间是没有限制的,只要不手动删除 stash 列表中的储藏内容,就会一直保存下去。

使用 git stash 时,会在本地存储库中创建一个储藏列表(stash list)。

每个储藏条目都包含一组更改集(change set):暂存区改动和工作目录改动。

默认情况下,Git 会为每个储藏条目自动生成一个唯一的名字,根据时间戳创建。

自定义名git stash<stash name> 

查看git stash list,

恢复git stash apply,最近的一个

恢复git stash apply <stash name>,

删除git stash drop and git stash drop <stash name> 等命令。

清空Git栈git stash clear

git status查看修改哪些了文件

Untracked files指的是在git版本控制下,某个文件或目录已经存在于那个被git管理的工作目录中,但是还没有加入到任何一个git repository中。

在执行git status命令时,这些文件会显示为“Untracked files”。

这意味着这些文件不受版本控制,如果需要对它们进行追踪和版本控制,则需要先将其添加到git repository中,即使用git add命令。

git diff 查看修改前后的差异

按enter可以继续查看差异

git diff命令用于比较两个不同的代码版本之间的差异,

它可以用来比较

工作目录和暂存区之间的差异、

暂存区和最新提交之间的差异、

本地分支之间的差异等。

git diff比较工作目录和最新提交之间的差异。在这种情况下,命令将显示所有未添加到暂存区(Untracked files)的更改,即尚未提交的更改。

例如,可以通过以下命令比较工作目录中的文件file.txt与最新提交之间的差异:

Plaintext
git diff HEAD file.txt

如果要比较暂存区中的更改与最新提交之间的差异,可以使用以下命令:

Plaintext
git diff --cached

还可以将git diff命令与其他命令一起使用,例如git diff branch1..branch2用于比较两个分支之间的差异。

​​

git log查看提交记录

按enter可以接着看下调

​​

commit +<hash值>

​​

git add添加到缓存区等待提交

git add . 将所有当前工作目录中的新文件和被更改过的文件添加到 Git 仓库的缓存区(Index)以备提交。

. 表示要添加所有修改的文件。如果只需要添加特定的文件,则可以用文件名来代替点 .。

git commit -m 信息:提交缓存区到仓库中

git commit -m "add doc"

这是 Git 中的一条命令,作用是将暂存区中的文件提交到版本库中。其中 -m 表示后面可以输入一段提交信息,用于描述本次提交的内容。

比如 git commit -m "add doc" 就表示将该次提交命名为“add doc”,提交信息用于说明本次提交添加了文档内容。​

git pull --rebase更新合并

建议在运行此命令之前,应该首先备份代码或创建一个新的分支来进行实验和测试。

分支

(1)主分支(master):第一次向 git 仓库中提交更新记录时自动产生的一个分支。

(2)开发分支(develop):作为开发的分支,基于 master 分支创建。

(3)功能分支(feature):作为开发具体功能的分支,基于开发分支创建

git branch查看分支

​​

git branch 分支名称:创建分支

git checkout -b 分支名称:创建并切换到该分支

​​

git checkout 分支名称:切换分支

​​

如果在切换分支前有未提交的修改,Git 会提示你这些修改可能会丢失,此时你可以保留修改、提交它们,也可以放弃它们并从其他分支 checkout 后的某个版本开始:

​​

Plaintext
git checkout feature-branch     # 如果放弃修改和暂存区内容
git stash                       # 保存修改(可选)
git checkout feature-branch     # 切换分支
git stash pop                   # 还原修改/暂存区内容

​​

​​

​​

​​

​​

​​

git merge 来源分支 合并分支

(必须在master分支上才能合并develop分支)

git branch -d 分支名称 删除分支

(分支被合并后才允许删除)(-D 强制删除)

  • 恢复单个文件到指定版本:git checkout HEAD~ my-file.js
  • 切换远程分支到本地:git checkout --track origin/remote-branch-name
  • 将修改全部或部分(可选)撤销:git checkout -- path/to/my/file

vim常见命令

enter(让其接着输出)

q退出(无法输入时或者需要中断时)

ls查看目录

​​

快捷键

vscode代码格式化Shift+Alt+F

windows

git bash复制粘贴Ctrl/Shift+ins(v)

git bash鼠标右击后就有复制和粘贴选项,

Ctrl+ins 复制
Shift+ins 粘贴
(只不过将v换成了insert)
git教程

git 简明指南

Git 基本操作 | 菜鸟教程

Git不要只会pull和push,试试这5条提高效率的命令 - 掘金

我在工作中是如何使用 git 的 - 掘金

相关工具

yarn(js包管理)

日常命令集成

Windows TerminalMicrosoft Apps

用于 windows 日常命令的执行,以及各种 shell 的集成(cmd、powershell、git shell)

Linux系统WSL2

rm -r删除

​​

删除目录及其包含的文件和子目录。其中 -r 表示要递归删除目录中所有内容,包括子目录。

需要注意的是该命令会立即删除目录及其全部内容,并且不会进行确认提示。

Fork 提高git 效率

Fork - a fast and friendly git client for Mac and Windows  

git的GUI界面:最好用的GIT版本管理工具 - Fork使用说明 - 知乎

F5刷新

​​

远程仓库clone,repository本地仓库

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

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

相关文章

Centos7安装配置Docker

1. 什么是Docker 在开篇之前考虑到阅读人群,我觉得有必要向各位读者朋友简单介绍一下Docker是什么,它解决了什么问题&#xff1f;Docker是基于Go语言实现的云开源项目。它对此给出了一个标准化的解决方案-----系统平滑移植&#xff0c;容器虚拟化技术。让开发者可以打包他们的…

从加密到签名:如何使用Java实现高效、安全的RSA加解密算法?

目录 1. 接下来让小编给您们编写实现代码&#xff01;请躺好 ☺ 1.1 配置application.yml文件 1.2 RSA算法签名工具类 1.3 RSA算法生成签名以及效验签名测试 1.4 RSA算法生成公钥私钥、加密、解密工具类 1.5 RSA算法加解密测试 我们为什么要使用RSA算法来进行加解密&…

React之state详解

目录 执行过程 异步 React18与自动批处理 setState 推荐用法 ()>{return }&#xff0c;this.state. 生命周期 数据没改变时​不渲染 shouldComponentUpdate PureComponent自动&#xff08;推荐&#xff09; 你真的理解setState吗&#xff1f; - 掘金 组件的私有…

《Nature Aging》: 揭示皮肤衰老的分子机制

一个人衰老最直接的体现就是皮肤衰老。人体的皮肤一般从25&#xff5e;30岁以后即随着年龄的增长而逐渐衰老&#xff0c;大约在35&#xff5e;40岁后逐渐出现比较明显的衰老变化。但是&#xff0c;我们的皮肤为什么会衰老呢&#xff1f;要回答这个问题&#xff0c;我们首先要了…

STC单片机存储器介绍和使用

STC单片机存储器介绍和使用 🌿STC15F2K60S2系列内部结构框图 🌿STC12C5A60S2系列内部结构框图 📑程序存储器(ROM/Flash) 🔖STC单片机ROM容量大小可以根据其型号和命名规则了解到。 🌿STC

chatgpt赋能python:Python怎样让画笔变粗

Python怎样让画笔变粗 Python是一门强大的编程语言&#xff0c;不仅适用于数据分析和机器学习等领域&#xff0c;也可以用来进行图像处理。在Python中&#xff0c;我们可以使用Pillow库来进行图像操作。在本篇文章中&#xff0c;我们将介绍如何使用Python和Pillow来让画笔变粗…

基于游客时空行为特征研究(两步路)

1 轨迹计算 1.1 使用geopy geopy模块常用于定位全球地址、以及经纬度相关的转换与计算&#xff0c;详细请参考&#xff1a; https://pypi.org/project/geopy/ 1.2 安装 pip install geopy 1.3 根据经纬度计算距离 Geopy可以使用测地线距离或大圆距离计算两点之间的测地线距离&a…

【C数据结构】无头非循环单向链表_SList

目录 无头非循环单向链表LinkedList 【1】链表概念 【2】链表分类 【3】无头单向非循环链表 【3.1】无头单向非循环链表数据结构与接口定义 【3.2】无头单向非循环链表初始化 【3.3】无头单向非循环链表开辟节点空间 【3.4】无头单向非循环链表销毁 【3.5】 无头单向非…

Qt中以qRegister开头的几个函数的用法说明

目录 1. 前言 2. qRegisterMetaTypeStreamOperators 2.1. 函数功能简述 2.2.用法举例1 3. qRegisterMetaType 1. 前言 Qt通过qRegister开头的函数和Q_DECLARE开头的几个宏向Qt元系统注册、声明一些非基本类型。一旦声明、注册后&#xff0c;在Qt元系统中就可以很方便的利用这…

神秘龙卷风

那道提示 打开后是一个加密压缩包&#xff0c;根据题目提示&#xff0c;这应该是一道暴力破解的题目 暴力破解后得到密码位5463 结果拿到是一串不止到啥的字符&#xff0c;根据提示应该是还要进行解码 经过查询&#xff0c;得知这个编码叫Brainfuck&#xff1a;&#xff08;下面…

【Java高级语法】(七)Object类:同志,关于Object类的情况你了解多少嘞?~

Java高级语法详解之Object类 :one: 概念:two: 使用2.1 equals()方法2.2 hashCode()方法2.3 toString()方法2.4 finalize()方法2.5 getClass()方法2.6 clone()方法2.7 wait()、notify()和 notifyAll()方法 :three: 使用场景:ear_of_rice: 总结:bookmark_tabs: 本文源码下载地址 …

【前端知识】React 基础巩固(十五)——书籍购物车简单案例

React 基础巩固(十五)——书籍购物车简单案例 案例代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"v…

性能测试基础知识(二)性能测试流程

性能测试流程 一、性能测试需求分析二、性能测试计划和方案三、性能测试用例设计四、性能测试执行五、性能测试分析和调优六、性能测试报告总结 一、性能测试需求分析 1、熟悉被测系统&#xff08;业务功能、技术架构&#xff09; 2、明确测试内容 一般有以下几种类型&#xf…

chatgpt赋能python:Python中如何实现图形移动:探索基本概念和代码示例

Python中如何实现图形移动&#xff1a;探索基本概念和代码示例 介绍 图形移动是计算机科学中的基本概念&#xff0c;它与广泛应用的游戏、动画和用户界面设计有密切关系。 在Python中&#xff0c;我们可以使用各种库和框架来实现图形移动和动画效果&#xff0c;包括Tkinter&a…

chatgpt赋能python:Python截取指定字符操作:让你的SEO优化变得更简单

Python截取指定字符操作&#xff1a;让你的SEO优化变得更简单 在SEO优化中&#xff0c;截取指定字符是一个非常常见的操作。Python作为一款开源的高级编程语言&#xff0c;提供了许多方便的函数和方法来处理文本操作&#xff0c;包括截取指定字符。在本文中&#xff0c;我们将…

第三章 选择与循环

程序员必备技能(思想)&#xff1a;增量编写法。每写一部分代码要及时运行看结果是否正确&#xff0c;对于复杂程序很重要。 常用的运算符优先级&#xff1a; 逻辑非 &#xff01;> 算术运算符 > 关系运算符 > && > || > 赋值运算符 单目运算符 逻辑非…

chatgpt赋能python:Python如何随机生成26个字母

Python如何随机生成26个字母 Python是一种流行的编程语言&#xff0c;被广泛用于数据分析、人工智能和Web开发等领域。 Python中有很多库可以用于随机生成字符&#xff0c;包括Python内置的random库和第三方库string。 在本文中&#xff0c;我们将介绍如何使用这些库在Python中…

《Java黑皮书基础篇第10版》 第16章【笔记】

第十六章 JavaFX UI 组件和多媒体 16.1 引言 16.2 Labeled和Label在这里插入图片描述 标签(label)是一个显示小段文字&#xff0c;一个节点或同时显示两者的区域。它经常用来给其他组件(通常为文本域)做标签&#xff0c;Label类继承自Labeled抽象类 16.3 - 16.4 按钮和复选框…

目标检测YOLO实战应用案例100讲-基于深度学习的遥感目标检测算法FPGA部署实现研究

基于深度学习的目标检测网络剪枝及FPGA部署 随着科技的发展,人工智能的发展正在促进计算机视觉的智能化广泛应用。如手 机上的语音识别可以将声音转化成文字、门禁识别人脸通行、美颜相机对人像加上跟 踪特效等,这些都是人工智能在我们生活中的应用。 人工智能对图像领域…

【Docker】Linux安装步骤

目录 下载关于Docker的依赖环境安装Docker启动&#xff0c;并设置为开机自动启动&#xff0c;测试开启远程API访问端口登录harbor仓库 下载关于Docker的依赖环境 输入以下命令安装依赖环境 回车 yum -y install yum-utils device-mapper-persistent-datalvm2 安装Docker 下…