1、安装Git
Git-2.9.3-64-bit.exe

2、打开Git Bash,设置用户名,Email

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

3、创建目录,设置为仓库

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

4、添加文件至版本库

将readme.txt文件放入仓库目录下,添加到版本库:
$ git add readme.txt
将文件提交到仓库:
$ git commit -m "wrote a readme file"

注意:可以多次add,一次commit

5、查看文件状态

修改readme.txt文件内容,如:
Git is a distributed version control system.
Git is free software.
执行以下命令:
$ git status

6、对比修改前后不同

$ git diff readme.txt

7、提交修改

$ git add readme.txt
$ git commit -m "add distributed"

8、查看历史记录

$ git log
$ git log --pretty=oneline

9、版本回退

$ git reset --hard HEAD^ 回退到上个版本
$ git reset --hard 3628164 回退到指定版本,版本号不用写全
$ git reflog 查看每次操作命令,可以找到之前的版本号
$ git reset HEAD readme.txt 把暂存区的修改撤销掉(unstage)
注意:git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
10、查看文件内容

$ cat readme.txt

11、撤销修改

$ git checkout -- readme.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

12、删除文件

本地删除了文件
从版本库中删除文件:
$ git rm test.txt
$ git commit -m "remove test.txt"
从版本库恢复被删除的文件:
$ git checkout -- test.txt
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

13、远程仓库

第一步:
在Git Bash中执行命令:
$ ssh-keygen -t rsa -C 542113457@qq.com
一直回车,在C:\Users\wangxiangyu\.ssh目录下会生成两个文件:id_rsa和id_rsa.pub,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第二步:
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

第三步:
创建远程仓库:New repository,Repository name随意,其他默认,Create repository

第四步:
根据GitHub的提示,在本地的learngit仓库下运行命令:
git remote add origin git@github.com:CodeGodWangxy/wangxiangyu1234.git
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的。

第五步:
推送本地库内容到远程库,执行命令,输入yes,回车
git push -u origin master

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样。

$ git push origin master 把本地master分支的最新修改推送至GitHub

14、从远程库克隆

勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件:

准本好远程库后,执行克隆命令:

git clone git@github.com:CodeGodWangxy/gitskillstoo.git

git安装及基础用法的更多相关文章

  1. Docker 安装和基础用法

    理解Docker(1):Docker 安装和基础用法 本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 ...

  2. logstash安装与基础用法

    若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...

  3. elasticsearch安装与基础用法

    来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...

  4. git安装及基本用法

    安装: 1先安装客户端,选择默认路径,直接下一步就可以了 2安装图形化客户端,选择默认路径安装完成 基本用法: 1同步coding上的文件 在桌面上点击鼠标右键,并选择Git Clone... 打开下 ...

  5. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  6. filebeat安装与基础用法

    来自官网,版本为1.2 下载rpm包并安装 wget -c https://download.elastic.co/beats/filebeat/filebeat-1.2.3-x86_64.rpm r ...

  7. kibana安装与基础用法

    来自官网,版本为4.5 下载rpm包并安装 wget -c https://download.elastic.co/kibana/kibana/kibana-4.5.4-1.x86_64.rpm rp ...

  8. g4e基础篇#3 Git安装与配置

    g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...

  9. Git入门(安装及基础命令行操作)

    一.安装 1.Mac 在Mac中安装Git的方法不止一种.最简单的要数通过Xcode命令行工具.对于Mavericks(10.9)或更高版本的操作系统,当你第一次尝试在终端执行git命令时,系统会自动 ...

随机推荐

  1. 倒置输入的整数(C、Python)

      C语言: # include <stdio.h> void f(int num) { , j=, yu; printf("转置后:"); ) { yu = num ...

  2. 【UVA10140】Prime Distance

    题目大意:求出一个给定区间 [l, r] 内相邻素数之间的最大距离和最小距离. 题解:由于 l, r 的范围太大,没法直接用筛法得出区间的素数.考虑筛出区间的素数等价于筛掉区间内的所有和数, 根据算术 ...

  3. 【洛谷P3792】由乃与大母神原型和偶像崇拜

    题目大意:维护一个序列,支持单点修改和查询一段区间能不能组成连续的一段数. 题解:查询区间能不能组成一段连续的数这个操作较为复杂,很难在较小时间复杂度内直接维护.这里采用线段树维护区间哈希的策略,即: ...

  4. bug7 java.net.BindException: 端口被占用。

    java.net.BindException:   端口被占用. java.net.BindException:   端口被占用.

  5. html5的data-*属性,我们一起认识下

    html5的data-自定义属性出来很久了,我们一起认识一下. 比如如下一个代码,我们怎么取到对应的name,对应的age? 既然data-*自定义属性是它的一个属性,这个时候就可以用getAttri ...

  6. MATLAB:图像二值化、互补图(反运算)(im2bw,imcomplement函数)

    图像二值化.反运算过程涉及到im2bw,imcomplement函数,反运算可以这么理解:原本黑的区域变为白的区域,白的区域变为黑的区域. 实现过程如下: close all; %关闭当前所有图形窗口 ...

  7. poj 1904(强连通分量+完美匹配)

    传送门:Problem 1904 https://www.cnblogs.com/violet-acmer/p/9739990.html 参考资料: [1]:http://www.cnblogs.co ...

  8. MQ与webservice的区别,MQ的区别

    Webservice 和MQ(MessageQueue)都是解决跨平台通信的常用手段,两者有哪些区别呢? 个人认为最本质的区别在于 Webservice近乎实时通信,而MQ却通常是延时通信. 什么意思 ...

  9. CentOS 7下Samba服务部署

    Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做 ...

  10. java基础基础总结----- 常用了解java(二)

    一.Java的发展历史 1998年,Java 2 Platform J2SE.J2ME.J2EE 2005年,Java10周年,重新命名: J2SE → Java SE → Standard Edit ...