Git操作指南

Git操作指南

1.安装并配置Git

Git官网:https://git-scm.com/downloads

安装完成后,打开Git Bash,配置Git:

git config --global user.email "email@example.com"
git config --global user.name "Your Name"

其中 --global参数,表示这台机器上所有的Git仓库都会使用这个配置。

当然也可以对某个仓库指定不同的用户名与邮箱,在当前仓库运行该命令而不使用–global即可。

2.获取项目

使用Git进行版本管理的对象是项目,那么项目从哪里获取呢?

两种场景:

  1. 项目源码在远程版本库(GitHub/GitLab/Gitee),从远程版本库克隆项目到本地。
  2. 项目源码在本地,想要添加Git版本管理,并关联推送到指定远程版本库。(或者采用第一种方案,远程克隆到本地后再将代码全部移动到版本库,简单快速)

2.1 从远程版本库克隆项目到本地

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. SSH方式(推荐,速度快,需要密钥)
git clone git@49.4.67.157:bdl/AI_Sports_App.git
  1. HTTP方式(不需要密钥)
git clone http://49.4.67.157:7070/bdl/AI_Sports_App.git
如何配置密钥

打开Git Bash,输入cd .ssh,如果没有该目录,说明本机没有配置过密钥。

输入cd …回到上一层目录,即确保当前目录在~下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输入以下命令创建密钥:

ssh-keygen -t rsa -C "your_email@youremail.com"

查看你生成的公钥:

cat ~/.ssh/id_rsa.pub

复制公钥,登录GitHub/GitLab,点击右上角头像,点击Setting,左侧导航栏找到SSH Keys,将公钥粘贴在Key输入框中,设置Title,点击Add Key保存即可。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 克隆指定分支的版本
git clone -b <分支名> <Git URL>
  1. 指定克隆深度(depth=1即只克隆最新版本)
git clone --depth=1 <Git URL>

2.2 本地项目添加Git版本管理,并关联推送到远程版本库

⭐(2.2节建议最最最后看,涉及后面的提交与推送操作)

进入项目根目录,执行Git仓库初始化操作。

git init

将项目所有内容提交到暂存区。

git add .

将暂存区内容推送的本地版本库。

git commit -m "Add: Project"

在远程版本库(GitHub/GitLab/Gitee)上创建一个远程仓库。

获取SSH链接(没有配置SSH密钥的话可使用HTTPS链接)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本地版本库关联远程版本库。

git remote add origin git@gitee.com:YanKeyon/YanKeyon.git

将远程版本库中代码与本地版本库中代码进行合并。

git pull --rebase origin master

将本地版本库代码上传至远程版本库。

git push -u origin master

OK。

3.查看版本库状态

git status

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

标红的文件:FirstFile.txt 表示没有被添加的文件。

4.将文件添加到暂存区

在上面我们通过git status可以看到有一个标红文件,将该文件提交到暂存区有两种方式:

  1. 提交单个文件到暂存区(为文件路径)
git add <filename>
  1. 提交当前全部修改过的文件到暂存区
git add .

温馨提示

如果新增了一个空的文件夹,Git是监测不到的,此时需要在该文件夹内创建文件后才可以。

5.提交暂存区的内容

git commit -m "描述"

-m 后面输入的是本次提交的说明,可以输入你本次提交的内容概略,方便以后从历史记录中方便的找到改动记录。

6.推送到远程版本库

git push origin master

也可以只输入git push ,默认提交到master分支。

7.从远程版本库更新项目到本地

使用场景:

  • 当远程版本库有更新,而本地想更新的时候使用
  • 当本地想提交时,建议先git pull一次,再通过git addgit commit -m ""git push提交本地代码。
  1. 全部更新
git pull
  1. 更新单个文件
git fetch
git checkout origin/master -- <filename>

8.查看单个文件的修改内容

git diff <filename>

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

-表示删除的内容

+表示增加的内容

温馨提示

如果进入diff后发现无法退出,进入:模式,键入q即可。

9.查看提交日志

  1. 查看全部提交日志
git log

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

会列出所有提交的commit ID、Author、Date、描述。

也可以通过浏览器访问GitHub/GitLab查看。

  1. 查看最新一次提交
git log -1
  1. 以单行的形式查看提交
git log oneline
  1. 查看提交日志,并且能看到分支情况(推荐)
git log --graph --pretty=oneline --abbrev-commit

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

10.撤销修改

撤销修改分多种情况:

  1. 该文件没有使用git add到暂存区,仍在工作区:

    git checkout -- <filename>
    
  2. 该文件使用了git add到暂存区,但没有使用git commit

    将暂存区的文件撤销,重新放回工作区:

    git reset HEAD <filename>
    
  3. 该文件提交到暂存区并且git commit提交到本地版本库:

    版本回退(回退到指定版本)

    git reset --hard <commit ID>
    

温馨提示

使用checkout的时候最好在后面加–,单一分支的项目没事,但如果是多分支的,没有--就变成了“切换到另一个分支”的命令。

11.版本回退

  1. 回退到上一个版本
git reset --hard HEAD
  1. 回退到指定版本
git reset --hard <commit ID>
  1. 如果你回退版本后想重新回到新版本

    命令reflog可以记录你的每一次命令,找到想回去的commit ID,使用reset即可。

git reflog

12.提交忽略文件的配置

  1. 在仓库根目录下新建.gitignore文件

  2. 添加忽略规则

    忽略规则如下:
    #			表示此为注释,将被Git忽略
    *.a			表示忽略所有.a结尾的文件
    bulid/		表示忽略build/目录下的所有文件
    bin/:		表示该文件夹下所有内容都被忽略,不忽略bin文件夹
    /bin:		表示忽略根目录下的bin文件夹
    **/foo:		表示忽略/foo,a/foo,a/b/foo等
    !*.zip		表示不忽略所有.zip结尾的文件
    

    温馨提示:

    如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。简单来说出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。所以大家一定要养成在项目开始就创建.gitignore文件的习惯,否则一单push,处理起来会非常麻烦。

    模板

    在GitHub上有一个专门为各个平台提供的.gitignore模板

    https://github.com/github/gitignore

    其中包括针对Android项目的忽略模板:

    
    # Built application files
    *.apk
    *.ap_
    *.aab# Files for the ART/Dalvik VM
    *.dex# Java class files
    *.class# Generated files
    bin/
    gen/
    out/# Gradle files
    .gradle/
    build/# Local configuration file (sdk path, etc)
    local.properties# Proguard folder generated by Eclipse
    proguard/# Log Files
    *.log# Android Studio Navigation editor temp files
    .navigation/# Android Studio captures folder
    captures/# IntelliJ
    *.iml
    .idea/workspace.xml
    .idea/tasks.xml
    .idea/gradle.xml
    .idea/assetWizardSettings.xml
    .idea/dictionaries
    .idea/libraries
    .idea/caches
    # Android Studio 3 in .gitignore file.
    .idea/caches/build_file_checksums.ser
    .idea/modules.xml# Keystore files
    # Uncomment the following lines if you do not want to check your keystore files in.
    #*.jks
    #*.keystore# External native build folder generated in Android Studio 2.2 and later
    .externalNativeBuild# Google Services (e.g. APIs or Firebase)
    # google-services.json# Freeline
    freeline.py
    freeline/
    freeline_project_description.json# fastlane
    fastlane/report.xml
    fastlane/Preview.html
    fastlane/screenshots
    fastlane/test_output
    fastlane/readme.md# Version control
    vcs.xml# lint
    lint/intermediates/
    lint/generated/
    lint/outputs/
    lint/tmp/
    # lint/reports/
    

13.更新/推送失败的解决方案

  1. git pull更新失败

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    出现错误,提示你本地的修改与远程版本库的修改冲突了。

    蓝框中的文件即为冲突的文件。

    解决方法

    1. 本地备份该文件。
    2. 通过git checkout -- <filename>撤销本地对该文件的修改。
    3. 此时使用git pull即可更新。
    4. 然后再进行自己的修改并推送到远程版本库即可。
  2. git push推送失败

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    出现的原因一般是由于本地没更新却推送导致的。

    此时通过git pull更新一下项目即可再次推送。

    温馨提示

    建议每次提交之前,先更新一下,确保版本最新后再提交。

14.提高效率的小技巧:配置别名

  1. git status 等价于 git st
git config --global alias.st status
  1. git checkout – 等价于 git co-
git config --global alias.co- checkout --
  1. git commit 等价于 git co
git config --global alias.co "commit -m"
  1. git push 等价于 git ps
git config --global alias.ps push
  1. git pull 等价于 git pl
git config --global alias.pl pull
  1. git log …(打印分支) 等价于 git lg
git config --global alias.lg "log '--graph' '--pretty=oneline' '--abbrev-commit'"
  1. 取消别名
git config --global --unset alias.别名

温馨提示

  • 配置别名时,如果命令含有多个参数,需要使用""与’'将参数包含起来,否则设置会无效。
  • 不要重复配置别名,如重复配置,输入git config --global --replace-all alias.别名 "命令"即可恢复到一个配置。
  • 输入git config --list查看配置列表

Git进阶:分支管理

参考:廖雪峰Git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743862006503a1c5bf5a783434581661a3cc2084efa000

https://www.jianshu.com/p/92305d949c0e

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.创建分支

创建一个分支,名为dev

git branch dev

2.切换分支

切换到dev分支

git checkout dev

3.创建并切换分支

创建并切换到dev分支,即上面两条命令可合成一条。

git checkout -b dev

4.查看当前分支

git branch

5.合并分支到当前分支

合并dev分支到当前分支

git merge dev

6.删除分支

删除dev分支

git branch -d dev

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

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

相关文章

Linux常用基础命令应用

目录 一、文件与目录操作&#xff08;12个核心命令&#xff09;​​ ​​1. pwd - 显示当前路径​​ ​​2. ls - 查看目录内容​​ ​​3. cd - 切换目录​​ ​​4. mkdir - 创建目录​​ ​​5. touch - 创建文件​​ ​​6. cp - 复制文件/目录​​ ​​7. mv - 移动…

zookeeper基本概念和核心作用

图片来源&#xff1a; 02-Zookeeper概念_哔哩哔哩_bilibili02-Zookeeper概念是黑马程序员Zookeeper视频教程&#xff0c;快速入门zookeeper技术的第2集视频&#xff0c;该合集共计24集&#xff0c;视频收藏或关注UP主&#xff0c;及时了解更多相关视频内容。https://www.bilib…

关于HikariDataSource (null)的误解,顺带提出一种mybaits-Plus mapper映射失败的容易被忽视的原因

首先探究此问题并无什么实际意义&#xff0c;纯属是个人好奇使然&#xff0c;也顺带熟悉了一下Springboot 数据库连接的相关问题&#xff0c;本人纯小白说的不对的地方恳请大佬指正&#xff01;&#xff01; 关于HikariDataSource (null)的误解 问题的发现 Value("${myba…

Centos7上安装docker - yum在线的方式

步骤一 &#xff1a; 安装 yum-utils yum install -y yum-utils步骤二 &#xff1a; 替换docker 的国内的源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo执行完成后&#xff0c;会在 /etc/yum.repos.d/ 目录下 新增 doc…

250405-VSCode编辑launch.json实现Debug调试Open-WebUI

A. 最终效果 根据__init__.py配置launch.json 根据中utils/chat.py中form_data的messages [{role: user, content: 唐老鸭}],可以找到用户输入&#xff0c;进而通过关键词或模型调用的方式&#xff0c;对敏感问题进行特殊处理。 B. 文件配置 launch.json // { // /…

①(PROFINET 转 Modbus TCP)EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

型号 协议转换通信网关 PROFINET 转 Modbus TCP MS-GW35 概述 MS-GW35 是 PROFINET 和 Modbus TCP 协议转换网关&#xff0c;为用户提供一种 PLC扩展的集成解决方案&#xff0c;可以轻松容易将 Modbus TCP 网络接入 PROFINET 网络中&#xff0c;方便扩展&#xff0c;不受限制…

分治-归并排序-逆序对问题

目录 1.升序&#xff08;以右边的合并组为基准&#xff09; 2.降序&#xff08;以左边的合并组为基准&#xff09; 3.逆对序--固定下标 1.升序&#xff08;以右边的合并组为基准&#xff09; 找出左边有多少个数比我(nums[right])大 应该在每一次合并之前&#xff0c;进行…

(四)数据检索与增强生成——让对话系统更智能、更高效

上一篇&#xff1a;&#xff08;三&#xff09;链式工作流构建——打造智能对话的强大引擎 在前三个阶段&#xff0c;我们已经搭建了一个基础的智能对话&#xff0c;并深入探讨了输入输出处理和链式工作流构建的细节。今天&#xff0c;我们将进入智能对话系统的高级阶段——数…

JVM虚拟机篇(二):深入剖析Java与元空间(MetaSpace)

这里写目录标题 JVM虚拟机篇&#xff08;二&#xff09;&#xff1a;深入剖析Java与元空间&#xff08;MetaSpace&#xff09;一、引言二、全面认识Java2.1 Java的起源与发展历程2.2 Java的特性2.2.1 简单性2.2.2 面向对象2.2.3 平台无关性2.2.4 健壮性2.2.5 安全性2.2.6 多线程…

如何查看 MySQL 的磁盘空间使用情况:从表级到数据库级的分析

在日常数据库管理中&#xff0c;了解每张表和每个数据库占用了多少磁盘空间是非常关键的。这不仅有助于我们监控数据增长&#xff0c;还能为性能优化提供依据。 Google Gemini中国版调用Google Gemini API&#xff0c;中国大陆优化&#xff0c;完全免费&#xff01;https://ge…

[Windows] XHS-Downloader V2.4 | 小红书无水印下载工具 支持多平台批量采集

[Windows] XHS-Downloader 链接&#xff1a;https://pan.xunlei.com/s/VON4ygFN1JcyzLJJIOqIpqodA1?pwdsinu# XHS-Downloader 是一款开源免费的小红书内容下载工具&#xff0c;支持无水印视频 / 图文提取、多链接批量处理及账号作品采集。其核心优势包括&#xff1a; 全平台…

6.1 宽度优先搜索算法(BFS)

宽度优先搜索算法(BFS Breadth first search) 又称广度优先搜索&#xff0c;这种搜索是逐层的&#xff0c;搜索完上层&#xff0c;才会搜索下一层&#xff0c;直到找到目标节点。 搜索过程如图中箭头方向&#xff1a; 【例如】 八数码难题&#xff1a;利用空格的移动&#xff…

基于LSTM的文本分类2——文本数据处理

前言 由于计算机无法认识到文字内容&#xff0c;因此在训练模型时需要将文字映射到计算机能够识别的编码内容。 映射的流程如下&#xff1a; 首先将文字内容按照词表映射到成唯一的数字ID。比如“我爱中国”&#xff0c;将“中”映射为1&#xff0c;将“国”映射到2。再将文…

Redis数据结构之ZSet

目录 1.概述2.常见操作2.1 ZADD2.2 ZRANGE2.3 ZREVRANGE2.4 ZRANGEBYSCORE2.5 ZSCORE2.6 ZCARD2.6 ZREM2.7 ZINCRBY2.8 ZCOUNT2.9 ZMPOP2.10 ZRANK2.11 ZREVRANK 3.总结 1.概述 ZSet和Set一样也是String类型元素的集合&#xff0c;且不允许重复的成员&#xff0c;不同的是ZSet…

什么是DHCP服务,在生活中的应用是什么?

提起DHCP&#xff0c;不接触互联网的可能会很陌生&#xff0c;其实并没有这么高深&#xff0c;简明扼要的说就是可以自动为连接的设备分配IP地址&#xff0c;子网掩码&#xff0c;网关&#xff0c;dns等网络参数。使连接步骤简化&#xff0c;从而提高效率。 主要功能&#xff…

2025 AI智能数字农业研讨会在苏州启幕,科技助农与数据兴业成焦点

4月2日&#xff0c;以"科技助农数据兴业”为主题的2025AI智能数字农业研讨会在苏州国际博览中心盛大启幕。本次盛会吸引了来自全国各地相关部门领导、知名专家学者、行业协会组织&#xff0c;以及县级市农业企业代表、县级市农产品销售商等万名嘉宾齐聚姑苏城&#xff0c;…

论文导读 | SOSP23 | Gemini:大模型 内存CheckPoint 快速故障恢复

本期分享的是一篇SOSP 2023论文&#xff1a; Gemini: Fast Failure Recovery in Distributed Training with In-Memory Checkpoints Zhuang Wang (Rice University), Zhen Jia (Amazon Web Services, Inc.), Shuai Zheng (Amazon Web Services), Zhen Zhang (Amazon Web Servic…

wordpress可视化数据采集Scrapes插件,WP博客网站自动采集发布

源码介绍 wordpress自动采集Scrapes插件&#xff0c;支持ripro&#xff0c;modown&#xff0c;子比&#xff0c;7b2等多种WordPress主题 支持PHP7.4&#xff0c;PHP8.0及以上不支持 上传插件到wp-content/plugins目录&#xff0c;然后解压 不需要写采集规则&#xff0c;傻瓜式…

JavaScript Math(算数)指南

JavaScript Math&#xff08;算数&#xff09;指南 引言 JavaScript的Math对象是一个内置对象&#xff0c;提供了进行数学运算的方法和值。它对于执行基本的数学计算、生成随机数以及执行更复杂的数学操作非常有用。本文将详细介绍JavaScript中的Math对象&#xff0c;涵盖其常…

Deep Reinforcement Learning for Robotics翻译解读

a. 机器人能力 1 单机器人能力&#xff08;Single-robot competencies&#xff09; 运动能力&#xff08;Mobility&#xff09; 行走&#xff08;Locomotion&#xff09;导航&#xff08;Navigation&#xff09; 操作能力&#xff08;Manipulation&#xff09; 静态操作&…