git应该可以说是程序员必备技能吧,这是自己学习Git的笔记,写的不好请见谅。

git安装

linux

git #测试git是否安装
apt-get install git #安装git

windows

下载地址

安装完成后配置

git config --global name
git config --global email

global 参数表示机器上所有git仓库都会使用这个配置

git命令

创建版本库

mkdir VersionWarehouse #linux shell 命令创建目录
cd VersionWarehouse #进入目录
git init #初始化git版本库

不要使用windows的记事本编辑

Notepad++下载

提交文件

vi readme.txt #在版本库文件夹下创建readme.txt文件,随便写入点东西
git add readme.txt #把文件添加到版本库
git commit -m "readme file" #提交文件,-m是提交说明参数,必须要加
#可以多次添加之后一次提交
#修改后提交也必须执行git add命令

仓库状态

git status #查看仓库状态
git diff readme.txt #查看readme.txt的修改内容

版本回退

git log #查看提交的历史纪录
git log --pretty=oneline #只显示在一行
#HEAD表示当前版本
git reset --hard HEAD~1 #退回上一个版本  HEAD^=HEAD~1
#HEAD^^=HEAD~2 退回上上个版本
#HEAD^^^=HEAD~3 退回上上上个版本
git reflog #命令操作记录,可以找到已退回版本的commit_id
git reset --hard commit_id #知道commit_id就可以再回到新版本

工作区和暂存区

工作区

工作区指提交文件的目录

目录下的.git目录是版本库

暂存区

暂存区(stage/index)在.git目录下

创建版本库时默认创建一个分支(master)

git add命令把文件添加到暂存区(stage/index)

git commit命令把文件提交到分支(master)

提交后暂存区(stage/index)会被清空

推送、下拉和克隆

推送

git remote add origin 远程库地址 #本地库与远程库连接,不必每次都连接,连接一次即可
git push -u origin master #第一次推送需要加-u,一会提示输入远程库平台账号密码
git push origin master #第二次推送

下拉

#推送前必须保证未更改的内容与远程库内容相同,不同的话需要下拉。
git remote add origin 远程库地址 #本地库与远程库连接,不必每次都连接,连接一次即可
git pull -u origin master #第一次下拉,如果之前已经输入过远程库平台密码就不需要加-u
git pull origin master #第二次下拉

克隆

git clone https://xxxxx.git(远程库的克隆地址)

Git学习之路的更多相关文章

  1. Git学习之路(2)-安装GIt和创建版本库

    ▓▓▓▓▓▓ 大致介绍 前面一片博客介绍了Git到底是什么东西,如果有不明白的可以移步 Git学习之路(1)-Git简介 ,这篇博客主要讲解在Windows上安装Git和创建一个版本库 ▓▓▓▓▓▓ ...

  2. Git学习之路(5)- 同步到远程仓库及多人协作问题

    ▓▓▓▓▓▓ 大致介绍 我们写好文件后添加到版本库,但是这样还没有做完,我们还需要将它同步到GitHub的远程仓库上,这里就以我们刚开始的drag项目为例,我们在Git学习之路(2)-安装GIt和创建 ...

  3. Git学习之路(6)- 分支操作

    ▓▓▓▓▓▓ 大致介绍 几乎所有的版本控制系统都会支持分支操作,分支可以让你在不影响开发主线的情况下,随心所欲的实现你的想法,但是在大多数的版本控制系统中,这个过程的效率是非常低的.就比如我在没有学习 ...

  4. Git学习之路(3)-提交文件到三个区

    ▓▓▓▓▓▓ 大致介绍 年过的差不多了,开始学习!小白学Git(持续更新) Git有三个工作区域: ◆ 工作区(Working Directory) ◆ 暂存区(Stage) ◆ 版本库(Reposi ...

  5. Git学习之路(4)- 撤销操作、删除文件和恢复文件

    ▓▓▓▓▓▓ 大致介绍 经过前面的学习(小白学Git)已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即: ◆ 撤销操作 ◆ 删除文件 ◆ 恢复文件 我在此之前,已经将三个文件提交 ...

  6. GIT学习之路第三天 文件操作

    本文参考廖雪峰老师的博客进行总结,完整学习请转廖雪峰博客 一.版本回退 1.git log提交日志 在git中可以通过个git log 命令显示从最近到最远的提交日志. $ git log commi ...

  7. GIt学习之路 第二天 创建版本库

    本文参考廖雪峰老师的博客进行总结,完整学习请转廖雪峰博客 创建版本库 阅读: 1859216 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文 ...

  8. GIT学习之路第一天 简介及其安装

    本文参考廖雪峰老师的博客进行总结,完整学习请转廖雪峰博客 Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git有什么特点?简单来说就是:高端大气上档次! 那什么是版本控制 ...

  9. GIT学习之路最终日 标签管理+总结

    本文参考廖雪峰老师的博客进行总结,完整学习请转廖雪峰博客 6.1 创建标签 命令git tag (name)用于新建一个标签,默认为HEAD,也可以指定一个commit id: git tag -a ...

随机推荐

  1. A. Office Keys ( Codeforces Round #424 (Div. 1, rated, based on VK Cup Finals) )

    #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm& ...

  2. Log4j2 - java.lang.NoSuchMethodError: com.lmax.disruptor.dsl.Disruptor

    问题 项目使用了log4j2,由于使用了全局异步打印日志的方式,还需要引入disruptor的依赖,最后使用的log4j2和disruptor的版本依赖如下: <dependency> & ...

  3. 新手搭建springmvc+mybits框架的经验分享

    1.搭建过程中遇到的问题: ①由于是第一次使用springmvc框架,对它的认识真的很浅,只知道他属于spring旗下的产品,仅此而已.于是搭建过程中确实遇到不少麻烦,因为之前的项目都是老师带着做的, ...

  4. java操作mongodb数据库实现新建数据库,新建集合,新建文档

    *首先明确一点,要通过java代码创建mongodb数据库实例,需要同时创建集合和文档. 代码实现: /* 建立与mongodb数据库的连接,可指定参数,如:MongoClient client = ...

  5. Codeforces Round #532(Div. 2) A.Roman and Browser

    链接:https://codeforces.com/contest/1100/problem/A 题意: 给定n,k. 给定一串由正负1组成的数. 任选b,c = b + i*k(i为任意整数).将c ...

  6. centOS 7联网

    在windows上安装的centOS7虚拟机要联网后才能正常使用,只需这样配置下即可: 打开vim /etc/sysconfig/network-scripts/ifcfg-eno16777736,会 ...

  7. python入门之数据类型之字符串

    str方法 name.capitalize() 将name的首字母大写 name.center(20,'*') 将name居中,长度变为20,其余用*填充 name.count('chy') 返回na ...

  8. 关于如何在其他包中写controller和简单介绍@SpringBootApplication

    本文参考博客:https://blog.csdn.net/u013473691/article/details/52353923 关于@Configuration和@Bean参考博客:https:// ...

  9. JavaScript Allongé 第一呷 :基础函数 (2)

    啊!我想要有一个参数 到现在为止,我们已经了解了没有参数的函数.只说我们的函数没有任何参数,甚至还没说参数是什么.大多数程序员非常熟悉参数,中学数学就讨论这个了.所以你知道他们是什么,而我也知道你知道 ...

  10. c# 定时器 自动执行

    //下面讲一个打开窗体定时执行按钮的东西 private void Form1_Load(object sender, EventArgs e) { System.Timers.Timer pTime ...