当前位置: 首页 > news >正文

Git 指令

Git 安装 · 操作 · 命令行

简介:

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

在这里插入图片描述

  • Workspace:工作区(就是你在电脑里能看到的目录)

  • Index / Stage:暂存区(一般存放在 “.git 目录下” 下的 index 文件(.git/index)中)

  • Repository:仓库区(或本地仓库)

  • Remote:远程仓库

安装:

  1. 源码安装:源码包下载地址:https://git-scm.com/download

    #安装指定系统的依赖包:
    ########## Centos/RedHat ########## 
    $ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel ########## Debian/Ubuntu ########## 
    $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev#解压安装下载的源码包:
    $ tar -zxf git-1.7.2.2.tar.gz 
    $ cd git-1.7.2.2 
    $ make prefix=/usr/local all 
    $ sudo make prefix=/usr/local install
    
  2. Window 安装:安装包下载地址:https://gitforwindows.org/

    完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。 
    在开始菜单里找到"Git"->"Git Bash",会弹出 Git 命令窗口,你可以在该窗口进行 Git 操作。
    
  3. Ubuntu安装:

    $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev 
    $ apt-get install git 
    $ git --version
    

基本信息:

  1. 查看版本:

    $ git --version
    git version 2.22.0.windows.1
    
  2. 查看用户信息:

    #当前登入用户:
    $ git config --global user.name
    Zhangsl#用户邮箱:
    $ git config --global user.email
    547125836@qq.com
    
  3. 设置用户信息:

    #设置用户名:不要‘’
    $ git config --global user.name 'new_name'$ git config --global user.name Nepalese
    $ git config --global user.name
    Nepalese#设置邮箱:
    $ git config --global user.email 'xxx@qq.com'
    
  4. 查看已有配置:

    $ git config --list
    core.symlinks=false
    core.autocrlf=true
    core.fscache=true
    color.diff=auto
    color.status=auto
    ...
    

仓库信息:

  1. 初始化仓库:

    #使用当前目录作为 Git 仓库,文件夹下初始化一个仓库
    $ git init#使用我们指定目录作为 Git 仓库
    $ git init path
    
  2. 查看仓库:

    #本地所有分支:
    $ git branch
    * master#本地和远程所有分支:
    $ git branch -a
    * masterremotes/origin/master#远程所有分支:
    $ git branch -rorigin/master#查看在你上次提交之后是否有修改
    $ git status -s
    On branch master
    Your branch is up to date with 'origin/master'.Untracked files:(use "git add <file>..." to include in what will be committed)gitnothing added to commit but untracked files present (use "git add" to track)
    
  3. 分支管理:

    #创建分支:temp8023
    $ git branch temp8023$ git branch
    * mastertemp8023#切换分支:
    $ git checkout temp8023
    Switched to branch 'temp8023'#创建并切换分支:name
    $ git checkout -b name#删除本地分支:temp8023
    $ git branch -d temp8023
    Deleted branch temp8023 (was 781f2e3).$ git branch
    * master#删除远程分支:name
    $ git push origin :name#合并分支:(本地和远程)
    $ git merge name
    $ git merge origin/name
    
  4. 文件管理:

    #添加到暂存区:(文件绝对路径/或在当前目录下)
    $ git add E:\ZSLWORK\AndroidStudio\ToolLibs\app\src\main\res\drawable\img_test.jpg#错误例子
    $ git add drawable/img_test.jpg
    fatal: pathspec 'drawable/img_test.jpg' did not match any files#删除本地文件:img_test.jpg(已添加到暂存区)
    $ git rm E:\ZSLWORK\AndroidStudio\ToolLibs\app\src\main\res\drawable\img_test.jpg
    error: the following file has changes staged in the index:app/src/main/res/drawable/img_test.jpg
    (use --cached to keep the file, or -f to force removal)$ git rm -f E:\ZSLWORK\AndroidStudio\ToolLibs\app\src\main\res\drawable\img_test.jpg
    rm 'app/src/main/res/drawable/img_test.jpg'#移动或重命名
    $ git mv 'oldName' 'newName'
    
  5. 克隆项目:(类似 svn checkout

    $ git clone <repo>#克隆到指定的目录
    $ git clone <repo> <directory>#克隆远程项目:
    $ git clone git://github.com/schacon/grit.git#repo:Git 仓库
    #directory:本地目录。
    

拉取与提交:

  1. 提交到分支:

    $ git commit -m "notice"$ git commit -m "add a image"
    [master 70f1eba] add a image1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 app/src/main/res/drawable-v24/img_bg_app4.jpg
    
  2. 推送到远程:

    #需要登入
    $ git push origin masterEnumerating objects: 14, done.
    Counting objects: 100% (14/14), done.
    Delta compression using up to 8 threads
    Compressing objects: 100% (8/8), done.
    Writing objects: 100% (8/8), 102.02 KiB | 34.01 MiB/s, done.
    Total 8 (delta 5), reused 0 (delta 0)
    remote: Resolving deltas: 100% (5/5), completed with 5 local objects.
    To https://github.com/IloveJavaCoding/ToolLibs.gitb866012..70f1eba  master -> master
    

取消缓存:(绿色状态 --> 红色)

#执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存
$ git reset HEAD 'fileName' Unstaged chnages after reset:#".idea"就是要删除的文件夹名称
$ git rm -r --cached .idea
删除项目git:
1. 删除工程文件夹中的.git文件夹;
2. setting---versioncontrol中 点击减号, 删除;

查看提交历史:

$ git log
commit 9fa7fd35128340bf35172e15bf8ef85f250b5964 (HEAD -> Nepalese)
Author: Nepalese <547125836@qq.com>
Date:   Mon Jul 13 16:40:34 2020 +0800:...skipping...
commit 9fa7fd35128340bf35172e15bf8ef85f250b5964 (HEAD -> Nepalese)
Author: Nepalese <547125836@qq.com>
Date:   Mon Jul 13 16:40:34 2020 +0800#简洁版本
$ git log --oneline
9fa7fd3 (HEAD -> Nepalese) in the second screen only use textureView
887cc17 for program, replace surfaceView by textureView then according the current state to adjust the orientation of screen
747bae2 renderTee adjust second screen add cover image adjust stop page
ae687a1 renderTee adjust second screen add cover image adjust stop page
86fe829 (origin/Nepalese) use renderTee to control second screen
e7fcbb8 set release version configuration

**标签:**希望永远记住那个特别的提交快照(给最提交打上标签) [指向某个 commit 的指针]

#-a 选项意为"创建一个带注解的标签"
$ git tag -a 'tagName'#查看标签
$ git log --decorate#追加标签  85fc7e7 -> commit 号
$ git tag -a 'tagName' '85fc7e7'

退出Git 的Vim:

'c' --> 打开编辑模式;
按下'Esc' 退出编辑状态,再按住'Shift', 连按两次'z'。

小知识:按 ‘q’ 退出当前Git 指令。

参考资料:

https://blog.csdn.net/zhaoyanjun6/article/details/70332707

相关文章:

Git 指令

Git 安装 操作 命令行 简介&#xff1a; Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion …...

JAVA中的多态参数

1.方法定义的参数类型为父类类型&#xff0c;实参类型允许为子类类型 public class Ploy_parameter {public static void main(String[] args) {Manage jack new Manage("jack",12000,3000);Staff tom new Staff("tom",10000);Ploy_parameter ploy_para…...

Ubuntu Linux 下安装和卸载cmake 3.28.2版本

一、安装cmake 1.首先&#xff0c;先从cmake官网下载cmake-3.28.2-linux-x86_64.tar.gz 2.用FinalShell 等文件上传工具&#xff0c;将这个压缩包上传到 虚拟机的某个路径去&#xff08;自选&#xff09; 3. cd /usr/local/bin/&#xff0c;然后创建cmake文件夹&#xff0c;…...

【C++】类和对象3:默认成员函数之析构函数

前言 这篇文章我们来学习默认成员函数中的析构函数 概念 析构函数&#xff1a;与构造函数功能相反&#xff0c;析构函数不是完成对对象本身的销毁&#xff0c;局部对象销毁工作是由编译器完成的。而对象在销毁时会自动调用析构函数&#xff0c;完成对象中资源的清理工作。 …...

2024美赛C题完整解题教程及代码 网球运动的势头

2024 MCM Problem C: Momentum in Tennis &#xff08;网球运动的势头&#xff09; 注&#xff1a;在网球运动中&#xff0c;"势头"通常指的是比赛中因一系列事件&#xff08;如连续得分&#xff09;而形成的动力或趋势&#xff0c;这可能对比赛结果产生重要影响。球…...

二、人工智能之提示工程(Prompt Engineering)

黑8说 岁月如流水匆匆过&#xff0c;哭一哭笑一笑不用说。 黑8自那次和主任谈话后&#xff0c;对这个“妖怪”继续研究&#xff0c;开始学习OpenAI API&#xff01;关注到了提示工程(Prompt Engineering)的重要性&#xff0c;它包括明确的角色定义、自然语言理解&#xff08;…...

【leetcode题解C++】98.验证二叉搜索树 and 701.二叉搜索树中的插入操作

98. 验证二叉搜索树 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例…...

【Vue.js设计与实现】第二篇:响应系统-阅读笔记(持续更新)

从高层设计的角度去探讨框架需要关注的问题。 系列目录&#xff1a; 标题博客第一篇&#xff1a;框架设计概览【Vue.js设计与实现】第一篇&#xff1a;框架设计概览-阅读笔记第二篇&#xff1a;响应系统【Vue.js设计与实现】第二篇&#xff1a;响应系统-阅读笔记第三篇&#x…...

微信小程序之本地生活案例的实现

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…...

智能决策的艺术:探索商业分析的最佳工具和方法

文章目录 一、引言二、商业分析思维概述三、数据分析在商业实践中的应用四、如何培养商业分析思维与实践能力五、结论《商业分析思维与实践&#xff1a;用数据分析解决商业问题》亮点内容简介作者简介目录获取方式 一、引言 随着大数据时代的来临&#xff0c;商业分析思维与实…...

C#(C Sharp)学习笔记_前言及Visual Studio Code配置C#运行环境【一】

前言 这可以说是我第一次正式的踏入C#的学习道路&#xff0c;我真没想过我两年前是怎么跳过C#去学Unity3D游戏开发的&#xff08;当然了&#xff0c;游戏开发肯定是没有成功的&#xff0c;都是照搬代码&#xff09;。而现在&#xff0c;我真正地学习一下C#&#xff0c;就和去年…...

政安晨的AI笔记——Bard大模型最新提示词创作绘画分析

AI大模型进入商业应用元年后的第一年&#xff0c;顶级模型大混战终于开始了。 Bard在追赶OpenAI的过程中&#xff0c;还是补上了画图的短板。 &#xff08;相比于视频的5阶张量处理而言&#xff0c;图画做为4阶张量处理虽然不新鲜&#xff0c;但却是跨不过去的基础条件&#…...

基础算法bfs -剪枝问题

问题描述:一个迷宫有 NXM 格,有一些格子是地板,能走;有一些格子是障碍,不能走。给一个起点S和一个终点D。一只小狗从 S出发,每步走一块地板&#xff0c;在每块地员不能停留&#xff0c;而且走过的地板都不能再走。给定一个 T,问小狗能正好走 T步到达D吗?输入:有很多测试样例。…...

在Meteor Lake上测试基于Stable Diffusion的AI应用

上个月刚刚推出的英特尔新一代Meteor Lake CPU&#xff0c;预示着AI PC的新时代到来。AI PC可以不依赖服务器直接在PC端处理AI推理工作负载&#xff0c;例如生成图像或转录音频。这些芯片的正式名称为Intel Core Ultra处理器&#xff0c;是首款配备专门用于处理人工智能任务的 …...

情人节心动礼物:共度情人节美好时刻的礼物推荐

情人节&#xff0c;这个充满浪漫与爱意的特殊日子&#xff0c;总是让人心跳加速&#xff0c;期待着与爱人共享甜蜜时光。在这一天&#xff0c;送出一份精心挑选的礼物&#xff0c;不仅能够表达你对另一半无尽的爱意&#xff0c;更能让这份爱升华&#xff0c;成为你们爱情故事中…...

远程手机搭建Termux环境,并通过ssh连接Termux

背景 Termux只能通过鼠标点击&#xff0c;无法使用电脑键盘&#xff0c;输入速度很慢&#xff0c;你想通过ssh 连接Termux&#xff0c;获得友好体验搞了个云手机&#xff0c;想像普通手机那样充当服务器想把自己的手机公开到局域网中供同事调试想把自己的模拟器公开到局域网中…...

基于EdgeWorkers的边缘应用如何进行单元测试?

随着各行各业数字化转型的持续深入&#xff0c;越来越多企业开始选择将一些应用程序放在距离最终用户更近的边缘位置来运行&#xff0c;借此降低延迟&#xff0c;提高应用程序响应速度&#xff0c;打造更出色的用户体验。 相比传统集中部署和运行的方式&#xff0c;这种边缘应…...

【linux】校招中的“熟悉linux操作系统”一般是指达到什么程度?

这样&#xff0c;你先在网上找一套完整openssh升级方案&#xff08;不是yum或apt的&#xff0c;要源码安装的&#xff09;&#xff0c;然后在虚拟机上反复安装测试&#xff0c;直到把他理解了、背下来。 面试的时候让你简单说说linux命令什么的&#xff0c;你就直接把这个方案…...

【CSS系列】常用容易忽略的css

user-select user-select 是一个 CSS 属性&#xff0c;用于控制用户是否可以选择文本。通过设置 user-select 的值&#xff0c;可以决定用户是否可以选择元素中的文本&#xff0c;以及如何选择文本。 auto&#xff1a;默认值。浏览器可以选择文本。none&#xff1a;用户不能选…...

Java 数据结构 二叉树(二)红黑树

目录 数据结构图-树 简介 规则 旋转 重新着色 红黑树构建过程 前言-与正文无关 生活远不止眼前的苦劳与奔波&#xff0c;它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中&#xff0c;我们往往容易陷入工作的漩涡&#xff0c;忘记了停下脚步&#xf…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...