Git学习笔记----基础运用

2023-10-27

安装Git

Windows:

进入官网下载或百度网盘下载 Git(V2.23_x64)

提取码:uf2x

Ubuntu:

sudo apt-get -install git

安装完成之后打开git命令行(Ubuntu命令行即可操作)

输入以下代码

#查询版本号

git --version

#设置你的姓名(最好是英文)

git config --global user.name “kimalittlestar”

#设置你的邮箱

git config --global user.email “kim_alittlestar@qq.com”

#查看你的姓名、邮箱和所有当前目录下的设置列表

git config --global user.name

git config --global user.email

git config --list

 

 

建立本地仓库

从本地建立一个全新的仓库:

#跳转到你的项目根目录下

cd /d/EclipsecCode/C_project/

 

#初始化一个Git仓库

git init

 

#添加追踪规则,这里添加的规则是 该目录下所有的*.c/.h文件

git add *.c *.h ./**/*.c ./**/*.h

 

#查看仓库当前的状态

git status

 

#编写 .gitignore 忽视特定类型的文件

vim .gitignore

 

#写入以下文本

*.[oad]

 

#查看当前仓库状态

git status

 

#提交当前代码 可以使用两种方式

git commit -m “type your commit message“

 

#或者不带参数,等待他打开默认便捷器输入提交信息文本

git commit

 

 

从远程克隆一个仓库:

#跳转到你想要存储的目录下

cd /d/EclipsecCode/robam

 

#使用克隆命令,期间如果需要输入密码请输入密码

git clone https://github.com/KimAlittleStar/C_project.git

 

#输入ls 查看文件目录,发现多了一个文件夹C_project

ls

 

#clone 远程仓库到此结束 到此结束

 

基本操作

查看文件状态:

#在git中,除去已经忽略了的文件外,文件分为4种状态。

分别为:未追踪、未修改、已修改、已暂存。使用 git

status 查看项目中文件的状态

git status

 

文件状态装换流程 :

#未追踪->(git add <filename>)->已暂存
#已暂存->(git commit)->未修改

#未修改->(edit your file)->已修改

#未修改->(git remove )->未追踪

#已修改->(git commit -a)->已暂存

  

 

查看文件更改 diff 命令:

#查看项目中 已修改状态文件项目与该文件最后一次暂存的文件具体更改了哪些地方,可以使用git diff 命令操作

git diff

 

#如果想要看已暂存的文件和已经在版本库中的文件差异,可以使用 git diff –staged

git diff -staged

 

#diff还可以查看指定分支、指定文件之间的差异,更多操作请跳转:http://gitbook.liuhui998.com/index.html

提交更新到仓库:

#git commit 只会提交staged 状态的文件,使用git status查看 仓库中文件状态。将modified 状态的文件使用 $ git add 改成成为modified状态 然后提交。

git status

git add <filename>

git commit –m “message”

 

#使用 git commit –a 可以将所有追踪内的modified 状态和staged状态的文件一次提交。

git commit –a –m “this is all commit test”

 

查看仓库操作历史:

# 使用git log 可以查看当前仓库操作的历史

git log

 

#同时你也可以使用 git log –p 来内容上的差异

git log –p

 

#同时也可以使用git log -<n> -p 来显示最近n次内容上的差异。去掉 -p参数同理。更多使用请参阅:https://git-scm.com/book/en/v2

git log -1 -p

 

仓库取消追踪某个文件:

#使用git rm 删除某个追踪文件,或者在磁盘上删除,然后使用 git status 就可以看到删除命令在已修改区域,然后在使用git rm 即可提交。或者使用 git commit –a 提交所有改变

为项目添加远程仓库:

# 首先需要在远程仓库有一个你的目标远程仓库,其次获取你的远程仓库url 。输入以下代码 git remote add <别名> [URL]

git remote add kimhttps://github.com/KimAlittleStar/C_project.git

 

 

上传到远程仓库:

#使用git push 推送到远程仓库 git push <别名> <分支名>

git push kim master

 

覆盖上一次commit:

#使用git commit --amend 可以覆盖上一次提交, 用于自己错误信息的修改、忘记加入暂存区的文件等,最后git仓库中只会有一个commit

git commit

git add <filename>

git commit --amend

 

将暂存态的文件回退到已修改:

#将暂存态的文件回退到已修改需要使用git reset HEAD <filename> 此语句原理实际上是使用仓库中的 <filename>文件覆盖暂存态的文件。详情请参考 https://git-scm.com/book/en/v2/Git-Tools-Reset-Demystified

git reset HEAD -- <filename>

 

抛弃此次修改的文件:

#使用git checkout -- <filename>可以撤销此次对文件的修改。但是此次修改将会被真正丢弃。再也找不到。原理请参考:https://git-scm.com/book/en/v2/Git-Tools-Reset-Demystified

git checkout -- <filename>

 

 
为自己的项目添加标签 tag:

#使用git tag –a <tagName>–m ‘tag message’可以为当前版本添加标签 如果想要添加tag到之前的版本,需要在后面增加 对应版本号的校验码

git tag -a v0.1 -m "using tag test“

 

#除此之外还可以覆盖tag 使用 –f 参数 没有附带信息的tag(轻量tag) 不输入任何参数 只输入tag名等,详情请参考:http://gitbook.liuhui998.com/3_7.html

添加别名快捷操作:

#使用git config --global alias.<quickName> ‘actrue str’ 可以添加自定义的快捷操作 ;详情请参考https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-Git-%E5%88%AB%E5%90%8D

git config --global alias.last 'log -1 HEAD'

 

 
命令行小结

命令行

作用

 

使用示例

git init

在当前目录下初始化一个新的git仓库

cd <your work directory>

git clone

git clone [URL]

在当前目录下克隆一个git仓库 也可以后面加目录参数 克隆到指定目录

git clone https://code.aliyun.com/lonnox/robam_doc.git

git status

查看当前目录中各个文件和操作的状态;文件状态详情请点击

git status

git add <filename> <filename> …

将当前仓库下的文件状态向上更新,文件状态详情请点击,且支持正则表达式

git add *.c *.h ./**/*.c ./**/*.h

详情参考这里

git rm <filename> <filename> …

删除这些文件,并将此操作提交到暂存状态(staged)

git rm project.out

git commit

提交在暂存态的文件或操作,跳出编辑窗口输入提交信息

git commit

git commit –m ‘message’

提交 并将 ‘message 作为提交信息’

git commit –m “message”

git diff

查看已修改的文件和仓库中此文件的区别,如果后面不指定文件名那么将显示所有文件

git diff <filename>

git diff --staged

查看已暂存的文件与仓库中的区别

git diff --staged <filename>

git remote add  <别名> [URL]

为本地项目添加远程仓库

git remote add kim https://github.com/KimAlittleStar/C_project.git

git push <用户名> <分支名>

将自己本地的项目上传至服务器

git push kim master

git commit --amend

将此次提交与上一次提交合并,只记录一次提交

git commit --amend  -a –m “message”

git reset HEAD -- <filename>

抛弃现在的暂存文件使其回退到已修改状态

git reset HEAD -- Exfunction.c

git checkout HEAD -- <filename>

抛弃此文件的修改

git checkout HEAD -- Exfunction.c

git tag

查看、修改、添加项目的标签

git tag –a v0.1 –m ‘message’

git config --global alias.<quickStr> ‘cmd str’

使用quickStr 等效替换 cmd str,例如一些固定参数的命令等。

git config --global alias.cmit-all 'commit -a'

 

 

后记:

经过这几天的学习,越来越感觉到开源社区的奇妙与能量,这群人都有着一种神奇的能量,让人不由自主的佩服和开心起来。了解他们的起源,和他们的思想,越能感受到这群率真的程序员的智慧。

最后把上面的所有内容整理压缩成了一个小PDF文件,里面的两个目录可以点击让大家方便的跳转到相对应的地方,分享给大家。

git基础使用:

链接:https://pan.baidu.com/s/1pkmG0sOjxP8nhNIPw7NWTA
提取码:mzut

 

转载于:https://www.cnblogs.com/kimalittlestar/p/11598564.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git学习笔记----基础运用 的相关文章

  • 原始文件被分成另外两个文件,git 有没有办法查看内容去了哪里?

    我的问题 我是一名代码审查员 我在GIT中有一个情况 before a txt 然后开发人员决定拆分内容a txt分成 2 个文件 并在一次提交中添加一些更改 after b txt 很少的变化和c txt 一些变化 有没有简单的方法可以看
  • 无法在 git 上获取 Http 工作

    我在拇指驱动器上使用 gitbash 作为 git 我的防火墙阻止了我 并且想设置我的 git 以进行 http 访问 我使用 github 并且已经看到了有关如何执行此操作的各种信息 但我还不够了解 无法让它为我自己工作 我在 php i
  • Git 用户配置文件 - 自定义忽略

    我们有一个由 5 名开发人员组成的团队致力于硬件项目 我们有一个 user config h 文件 其中包含每个用户的特定环境和偏好的 defines 例如他们使用的硬件版本 是否应该打开声音等 目前 该文件位于我们的 gitignore
  • 防止在 Git 中签出

    我目前正在研究使用 Git 管理 OpenInsight 应用程序的源代码 由于 OI 代码存储在数据库表中 因此需要进行一定量的手动工作才能将源代码导出为文本 反之亦然 到目前为止 我已经成功地使用 Git 挂钩自动化了很多这项工作 但是
  • 如何让“git status”始终使用短格式?

    我想要git status始终使用短格式 git status short M file1 M dir file2 file untracked3 dir file untracked4 似乎不存在这方面的配置选项 并且git config
  • 获取 git 存储库中每个文件的提交计数

    我正在寻找一种方法来查看有关 git 存储库中每个文件更改频率的统计信息 基本上 文件提交的频率实际上与以前的版本不同 此外 有没有办法获取文件上次更改的日期 我是一个 git 新手 还没有发现任何关于此的信息 任何帮助将不胜感激 这里有两
  • Git 查找第一个非本地提交

    有关的 列出尚未推送到源的 Git 提交 https stackoverflow com questions 3080509 list git commits not pushed to the origin yet git rev par
  • Visual Studio 2017/2019/2022 gitsync/pull/push/fetch 操作卡住,并且无法停止

    我从 Visual Studio 中的 Git Changes 选项卡启动同步 获取 拉取或推送 但操作只是挂起 没有选项可以停止它 我必须点击 X 才能关闭 Visual Studio 如果操作是同步的 它会在其他所有操作上打开一个模式对
  • 在 MySQL 数据库上使用版本控制 (Git)

    我是一名 WordPress 设计师 开发人员 越来越多地使用版本控制 特别是 Git 尽管我确实在某些项目中使用 SVN 我目前正在使用 Beanstalk 作为我的远程仓库 将所有 WordPress 文件添加到我的存储库中是没有问题的
  • 我是否需要在裸仓库上运行 git gc ?

    man git gc http www kernel org pub software scm git docs git gc html其中没有明显的答案 而且我在谷歌上也没有任何运气 尽管我可能只是使用了错误的搜索词 我明白你应该偶尔跑步
  • 反向合并具有干净历史记录的缝合功能分支

    我有这个 d0 f1 d1 d2 f2 d3 merge d4 f3 merge
  • 使用 Git 撤消临时更改

    假设我在 master 上并且有一个斑点 DEBUG FALSE CACHE SIZE 100 code code code 现在我开始在新分支中调试 DEBUG TRUE Don t forget to turn off CACHE SI
  • 无法在 Eclipse 中运行从 Git 导入的项目

    我的 Eclipse 工作区中有一个来自 Github 的项目 通过 File gt Import gt Projects from GIT 但是 我无法运行该示例 因为 运行方式 下的唯一选项是 运行配置 转到 运行配置 后 我单击 浏览
  • 我如何知道哪些文件已在 git 中标记为“假设未更改”

    这个答案 https stackoverflow com a 936325 554807向您展示如何将 git 管理的文件标记为 我不希望从该文件的存储库进行更改 IE 拥有该文件的您自己的本地未跟踪版本 即使它仍然受到 git 的修订控制
  • 我的终端中的彩色、并排、内联 git diff 输出

    请注意 此问题不是该问题的重复问题 而是该问题的后续问题 当我执行 git diff 时 如何获得并排差异 https stackoverflow com questions 7669963 how can i get a side by
  • ClearCase 到 Git 的迁移

    我们正在努力将 CC Vobs 转换为 GIT 我们有基础 vobs 和 UCM vobs 我见过很多没有明确步骤的主题 有没有什么工具或步骤可以保留历史记录和分支 不 据我所知 没有 ClearCase 到 Git 的桥梁 转换器或适配器
  • 合并两个github帐户

    假设我有两个 github 帐户xyz 邮件 ID email protected cdn cgi l email protection and abc email protected cdn cgi l email protection
  • Git 命令查找哪些分支合并到当前分支以及何时合并

    我有几个功能分支正在自动合并到集成分支中 我想知道这种情况是否以及何时发生 我可以打字git log这将向我显示合并已经发生 但由于某种原因 它没有向我显示来自哪个功能分支 它只是说 将integration branch合并到integr
  • 撤消 git pull,如何将存储库恢复到旧状态

    有什么方法可以恢复或撤消 git pull 以便我的源 存储库将恢复到执行 git pull 之前的旧状态 我想这样做是因为它合并了一些我不想这样做的文件 但只合并了其他剩余的文件 那么 我想找回这些文件 可以吗 编辑 我想撤消 git m
  • 是否有一个 Git 命令可以在推送到 master 之前添加通知/警告

    我有一个用例 其他人依赖我在从 master 下拉时没有启用标志 但我需要在本地处理存储库时启用它 我希望 希望 Git 有一种方法可以添加通知或警告 当请求推送到 master 时会触发 作为某种 提醒 所以也许我的工作流程可能是这样的

随机推荐

  • 同步和异步

    同步和异步通常用来形容方法的调用方式 同步方法表明调用一旦开始 调用者必须等待方法执行完成 才能继续执行后续方法 异步方法表明 方法一旦开始 立即返回 调用者无需等待其中方法执行完成 就可以继续执行后续方法 通常我们写的方法都是同步方法 方
  • 使用Nginx解决跨域问题

    目录 使用Nginx解决跨域问题 1 修改浏览器 客户端访问地址 2 在nginx conf配置文件需配置server 3 在Nginx中配置客户端访问的接口 按照规则或通配 并设置被代理的服务器 4 在Nginx中统一配置客户端访问的头部
  • java实时获取汇率

    1 分享三个觉得挺不错的汇率api 1 每小时免费50次查询配额 NOWapi 2 0 1元2000次 年 阿里云 汇率api 3 每天免费100次查询配额 需要实名认证 聚合科技 如果只是针对很少外币获取汇率的话 个人推荐去阿里云购买 毕
  • Java中使用Jar包时读取当前jar文件所在的目录工具

    在实际使用中 jar包所放的位置是不一定的所以要动态获取当前目录 package com gj5u publics util import java io File 获取打包后jar的路径信息 author Rex public class
  • angularJs摸态框实例加详细注解

  • mos 多路模拟电子开关_同步四开关 BuckBoost 180W 模块电源

    点击上方 21Dianyuan 关注我们 本文是 21Dianyuan 社区 原创 技术文章 作者 xueyiranpiao 感谢作者的辛苦付出 本电源主要应用于电池充电 电池为8串磷酸铁锂 10000mAH 0 6C 充电 也可以用于其它
  • Mybatis底层源码分析(最详细的版本)

    Mybatis底层源码分析 最详细的版本 1 概要介绍 MyBatis 是一款优秀的持久层框架 也是当前最流行的java持久层框架之一 它内部封装了jdbc 使开发 者只需要关注sql语句本身 而不需要花费精力去处理加载驱动 创建连接 创建
  • 网络编程知识预备(2) ——TCP三次握手与四次挥手、流量控制(滑动窗口)、拥塞控制、半连接状态、2MSL

    参考 浅显易懂的三次握手与四次挥手 作者 丶PURSUING 发布时间 2021 03 19 09 33 20 网址 https blog csdn net weixin 44742824 article details 114990198
  • python3 面向对象_Python3快速入门(六)——Python3面向对象

    Python3快速入门 六 Python3面向对象 一 面向对象技术简介 1 面向对象简介 面向对象编程 Object Oriented Programing OOP 是一种编程思想 OOP把对象当成程序的一个基本单元 一个对象包含数据和操
  • antd date-picker 默认时间设置问题

    一 官网给出的例子
  • Python编程:通讯录(文件读取)

    描述 读取附件中的csv文件 通讯录信息 放入字典中 后两项以列表形式做为字典的值 并依次输出其中的信息 文件内数据不需要修改 输出时数据之间以空格间隔 编码格式使用GBK 输入 A 时 按行输出文件信息 输入 D 时 直接输出字典内容 输
  • vue3 props属性基本使用梳理

    前言 vue2中props属性的使用是比较统一的基本就一种方式 但是vue3中其实方式是比较多的 因此就打算梳理一下 会按照选项式和组合式进行梳理 包括属性的定义 取值以及属性的监听 应该是叫单文件组件和组合式API 不知道vue官方是根据
  • 递归->栈->队列面试题

    本文所有程序均已测试通过 测试结果图就不一个一个再截图了 读者可以自己copy验证一下 后期我会把思路图补出来 1 行走机器人问题 货架N个 机器人初始位置在pos 经过minutes分钟后到达T有多少种方案 行走机器人问题 货架N个 机器
  • 使用Hexo从0到1搭建个人博客详细教程(超详细,超简单)

    看完这篇 轻轻松松搭建个人博客 校花 班花 额 额 看了就会的博客搭建教程 一 搭建前的软件准备 git node 二 安装hexo 完成简单本地页面展示 三 将Hexo部署到Github 1 Github创建个人仓库 2 生成ssh添加到
  • WebStorm功能特点以及使用指南

    WebStorm功能特点以及使用指南 首先看看WebStorm合其他的IDE有什么特别之处 1 自动保存 不需要你一次又一次地ctrl s啦 所有的操作都直接存储 当然 万一键盘误操作也会被立即存储 不过我们可以通过本地版本控制解决这个问题
  • 创建型模式-建造者模式理解

    1 前言 首先建造者模式适合下面的场景 进行使用 假设不同的对象有着基本的共同特点 或者配合前端进行页面布局 进行构建一个复杂的对象 那么可以参考工厂方法模式进行抽取对象 并进行解耦 达到一个设计符合要求的对象的过程 eg 1 保险产品 前
  • python自适应图片大小_python – 如何在Pygame中将图像缩放到屏幕尺寸

    您可以使用pygame transform scale缩放图像 import pygame picture pygame image load filename picture pygame transform scale picture
  • 小世界网络和复杂网络+python代码实现

    文章目录 小世界网络 复杂网络的特性 平均路径长度L 聚集系数C 度及度分布 小世界效应 规则网络 随机网络 小世界网络 无标度网络 python 代码 生成小世界网络 规则网络 喜欢的话请关注我们的微信公众号 你好世界炼丹师 公众号主要讲
  • 头文件重复定义问题解决“C1014错误“

    比如现在有三个文件 两个头文件 一个 cpp文件 header1 h include header2 h int fun2 header2 h include header1 h int fun main cpp include heade
  • Git学习笔记----基础运用

    安装Git Windows 进入官网下载或百度网盘下载 Git V2 23 x64 提取码 uf2x Ubuntu sudo apt get install git 安装完成之后打开git命令行 Ubuntu命令行即可操作 输入以下代码 查