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

Git的使用教程(一)初识Git

 安装完Git后是不是想要迫不及待的来练练手了,那我们现在就开始吧。

    测试环境:操作系统——windows xp,软件——Git for Windows,操作终端——Git Bash

    首先要做下准备工作,找到一个合适的位置创建一个空目录,小编选择在E盘下创建一个名为git的空目录。完成准备工作后,我们就可以接触到使用Git的第一个命令git init

    命令:git init

    通过该命令,我们可以把一个目录瞬间变为Git可以管理的版本库(又称为仓库),使用之后还会提示你这是一个空的仓库,因为我们还没有在里面放东西。我们再来到新建的git目录下,我们会发现,这里多了一个.git目录(Linux下以.开头的目录默认不显示,可以使用ls -a来展示所有文件),该目录就是Git用来管理版本库的,不要手动修改里面的文件,这样会破坏仓库,更不要删除它,删除了它,该目录就是一个普通的目录了。


    命令:git add <file>

    “git init”的时候系统已经提示我们这是一个空的仓库,那么如何往这个空的仓库中放东西,这时候就需要用到git add命令了。在此之前,我们先来新建一个需要被添加的文件READEM.md,如果使用过github.com或者git.oschina.net的朋友相信对这个文件不陌生,我们新建一个仓库的时候都会提示是否新建一个这样的说明文档,我们也入乡随俗,新建一个说明文档。

[plain]  view plain  copy
  1. git add README.md  
我们发现,添加完成后没有任何提示,这就对了,因为UNIX一贯秉承“没有消息就是最好的消息”,相信使用过Linux的朋友对这种情况应该习以为常了。当然,如果你添加到仓库的文件不存在的时候,git还是会给你提示,如下图所示。


    扩展知识

    有太多文件没有被添加?一个个添加很麻烦?没关系我们只需要改进下git add命令即可

    git add -A

    这样就可以把所有没有被添加过的文件一次添加入库了

    温馨提示:git add可以添加的文件只局限于仓库内部,仓库外部的文件不能被添加。


    命令:git commit -m "remark"

    add是添加,commit是提交,这时候很多朋友可能会犯迷糊了,既然前面已经使用“git add”添加到仓库了,这会为什么又多此一举又来提交一次。容小编做个类比(或许不是很形象),我们把“git add”操作比喻成采购员,他的任务就是负责把货物运输到仓库,而“git commit”呢,就是仓库管理员,他负责将货物登记入册。试想下如果没有仓库管理员对这些货物进行统计的话,仓库的货物信息可能会一片混乱,仓库中有些什么我们不知道,甚至于仓库什么时候丢失了什么货物也都不知道,可见仓库管理员是多么的重要。那么后面的-m又是什么呢?我们提交什么东西总要对它有个介绍不是,就像是我们对货物进行入库,总要说明一下入库的货物是什么,什么时间入库的,数量是多少等等。-m就起到了这样的说明作用,我们做了提交操作,肯定是有原因,我们需要把原因写上,这样做既方便了我们日后查看为什么要做这样的提交(如果不做说明,或许以后我们自己都不知道为什么要做这次提交操作),同样在多人协作中可以很明确的让别人知道你出于什么目的做了此次提交操作。


    小结

    1.初始化Git仓库 git init

    2.添加文件到Git仓库 git add

    3.提交文件到Git仓库 git commit

相关文章:

  • Git的使用教程(二)查看状态与文件比较
  • Git的使用教程(三)查看日志和版本回退
  • Git的使用教程(四)工作区和暂存区
  • Git的使用教程(五)管理修改
  • Git本地分支与远程分支的追踪关系
  • Git-命令行-删除本地和远程分支
  • Git的使用教程(六)远程仓库
  • 如何去解决fatal: refusing to merge unrelated histories
  • QT跨目录编译及多工程集成(动态库的创建、引用及工程间相互依赖关系的pro文件编写方法)
  • Pro文件变量详细说明
  • 浅谈 qmake 之 pro、pri、prf、prl文件
  • android实现点击两次返回键实现退出功能
  • Qt共享内存的使用
  • Qt for android 弹出Detected problems with app native libraries (please consult log for detail): 解决方案
  • qml去掉标题栏后实现窗口拖动
  • (三)从jvm层面了解线程的启动和停止
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • chrome扩展demo1-小时钟
  • docker python 配置
  • emacs初体验
  • fetch 从初识到应用
  • LeetCode18.四数之和 JavaScript
  • linux学习笔记
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 安装python包到指定虚拟环境
  • 创建一种深思熟虑的文化
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 动态规划入门(以爬楼梯为例)
  • 基于webpack 的 vue 多页架构
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 用Visual Studio开发以太坊智能合约
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #include
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (13)Hive调优——动态分区导致的小文件问题
  • (70min)字节暑假实习二面(已挂)
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二十四)Flask之flask-session组件
  • (论文阅读11/100)Fast R-CNN
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转)Sql Server 保留几位小数的两种做法
  • .gitattributes 文件
  • .net framework4与其client profile版本的区别
  • .Net IE10 _doPostBack 未定义
  • .net 设置默认首页
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .net6Api后台+uniapp导出Excel
  • .net生成的类,跨工程调用显示注释
  • .NET正则基础之——正则委托
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • @DependsOn:解析 Spring 中的依赖关系之艺术