1.环境搭建:

Linux:安装git安装包(yum install -y git)
Windows:到官网下载安装包
安装完成后配置如下用户名和邮箱:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
2.通过 git init 命令把当前目录变成Git可以管理的仓库(先cd到要变成仓库的目录下执行命令git init,执行完命令后就能在当前目录下看到.git文件,此文件为隐藏文件,不能删除,用于跟踪目录变化)
3.通过 git add <filename> 把文件添加到暂存区(重复操作添加多个文件到暂存区)
4.通过 git commit -m "版本修改注释" 将文件提交到仓库
5.通过 git status 查看仓库当前的状态(能查看到是否有修改,是否已提交)
6.通过 git diff <filename> 查看当前内容和分支中最新版本的内容的修改情况(查看清楚修改了什么内容后就放心提交了git add <filename>)
7.通过 git log 查看从最近到最远的提交日志(可以加上参数简单查看git log --pretty=oneline)(然后根据显示的版本号回退版本)
8.通过 git reset --hard HEAD^ 回退到上一个版本(HEAD表示当前版本,HEAD^表示上一版本,HEAD^^表示上上一版本)(回退方法一)
9.通过 git reset --hard <commit id> 回退到指定id的版本(<commit id>用命令git log 查看)
10.通过 git reflog 命令查看命令历史就可以查看到未来的版本号了(当你回退到某个版本后,再像恢复到最新版本时,用git log 命令已经查看不到最新版本的commit id 了,这时通过git reflog 命令查看命令历史)
11.通过 git checkout -- <filename> 可以撤销文件在工作区的全部修改。
(有两种情况:
一种是 <filename> 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
另一种是 <filename> 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。)
12.通过 git reset HEAD <filename> 可以把暂存区的修改撤销掉(unstage),重新放回工作区(git reset 命令既可以回退版本,也可以把暂存区的修改回退到工作区。)
13.通过 git rm <filename> 并且git commit删除文件(一般情况下,你通常直接在文件管理器中把
没用的文件删了,或者用 rm 命令删了;现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit;二是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本git checkout -- <filename>)
14.通过 ssh-keygen -t rsa -C "youremail@example.com" 来创建SSH Key(执行命令后一路按回车)(执行完成后会在用户主目录下多出一个.ssh 的文件夹,文件夹里面有id_rsa私钥和id_rsa.pub公钥)
15.登陆GitHub设置SSH Keys(填写上一步生成的id_rsa.pub公钥)
16.通过 git remote add origin git@github.com:kangvcar/learngit.git 把本地仓库和远程GitHub仓库关联(url从github的repo项目里可以找到)
17.通过 git push -u origin master 把本地仓库的所有内容推送到远程库上(第一次使用加上了-u,是推送内容并关联master分支。之后推送直接git push origin master)
 
远程仓库:(从远程仓库克隆到本地仓库)
18.通过 git clone git@github.com:kangvcar/xx.git 把远程仓库克隆到本地仓库(url从github的repo项目里可以找到)
 
分支管理:
19.通过 git checkout -b dev 来创建并切换到dev分支(-b参数表示创建并切换分支,相当于git branch dev 和 git checkout dev 两个命令的效果)
20.通过 git branch 来查看当前分支(当前分支前会有*号)
21.切换分支后 git add <filename> 和 git commit -m "修改注释" 这些操作都将在新分支dev上完成,与master分支没有影响。
22.通过 git checkout master 切换回master分支。(如果dev分支没有合并到master分支上,那么在master分支上是看不到dev分支所做的修改)
23.通过 git merge dev 来把dev分支的工作成果合并到当前分支上(master分支)
24.通过 git branch -d dev 来删除dev分支(上一步将dev分支合并到master分支后就可以放心的删除dev分支了)
25.通过 git merge --no-ff -m "合并注释" dev 来合并分支的话,git会生成一个新的commit,这样就不会删除所合并分支的历史了。(--on-ff 参数表示用普通模式合并,而不是快速模式;快速模式合并后会删除合并前的分支,而普通模式不会删除)(用此命令代替git mergo dev)
26.通过 git log --graph 来查看分支合并图(具体命令 gti log --graph --pretty=oneline --abrev-commit)
27.通过 git stash 来存储并隐藏现场(隐藏现场后可以创建新分支去完成其他工作,而不影响已经隐藏起来的现场;一般临时需要修改bug,而手头上又有未完成的工作是使用)
28.通过 git stash list 来查看隐藏现场的列表
29.通过 git stash pop 或 git stash apply 来恢复现场(git stash pop 恢复后删除stash的内容;而git stash apply 恢复后不会删除stash的内容,如需删除用git stash drop)(命令后面可以接参数来恢复指定stash,如git stash apply stash@{0} ,stash@{0} 通过git stash list 查看)
 
30.
工作区就是我们电脑里能看到的目录。
stage就是暂存区,通过git add <filename>就是将文件提交到暂存区。
master就是master分支,通过git commit 就是将暂存区的文件更改提交到master分支上。

Git总结笔记1-搭建和使用30条简明笔记的更多相关文章

  1. Git & Github 一页简明笔记

    由于小组工程需要使用git&github的版本控制来协作,但我对其使用并不熟悉,特此写篇一页的笔记放在手边,备随时查阅. 相信这种一页的简明笔记,对大家也是有帮助的.我的笔记总结自廖雪峰的Gi ...

  2. 虚拟机搭建Zookeeper服务器集群完整笔记

    虚拟机搭建Zookeeper服务器集群完整笔记 本笔记主要记录自己搭建Zookeeper服务器的全过程,默认已经安装部署好Centos7. 一.虚拟机下Centos无法联网解决方案 1.首先调整虚拟机 ...

  3. Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

  4. Hadoop学习笔记(10) ——搭建源码学习环境

    Hadoop学习笔记(10) ——搭建源码学习环境 上一章中,我们对整个hadoop的目录及源码目录有了一个初步的了解,接下来计划深入学习一下这头神象作品了.但是看代码用什么,难不成gedit?,单步 ...

  5. Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

    Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...

  6. Git 基本命令与服务器搭建

    Git教程 一套视频 详细教程 完全命令手册 Git常用命令 git config:配置相关信息 git clone:复制仓库 git init:初始化仓库 git add:添加更新内容到索引中 gi ...

  7. Android基础新手教程——1.5.2 Git之使用GitHub搭建远程仓库

    Android基础新手教程--1.5.2 Git之使用GitHub搭建远程仓库 标签(空格分隔): Android基础新手教程 本节引言: 在上一节中.我们学习了怎样使用Git.构建我们的本地仓库.轻 ...

  8. Git版本控制之ubuntu搭建Git服务器

    Git是一个开源的分布式版本控制系统,可以有效.高效的处理从很小到非常大的项目版本管理.使得开发者可以通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库,也可以将代码提交到Git服务 ...

  9. Hexo+Git一个小时快速搭建个人博客

    搭建本地环境:Hexo框架 Hexo为何物 Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用Markdown解析文章,并瞬间利用靓丽的主题生成静态网页.其中,Markdown是一个用于将普通 ...

随机推荐

  1. JavaScript高级程序设计---学习笔记(一)

    今天,2017.3.17开始利用课余时间仔细学习<JavaScript高级程序设计>,将需要掌握的知识点记录下来,争取把书里的所有代码敲一遍并掌握. 1.标识符命名最好是第一个字母小写,剩 ...

  2. Jmeter新建用例图示

    添加线程组   添加HTTP请求   编辑HTTP请求 添加HTTP信息头   编辑HTTP信息头 添加断言   添加查看结果树   添加聚合报告   添加响应时间   添加TPS   批量运行命令: ...

  3. Spark技术在京东智能供应链预测的应用

    1 背景 前段时间京东公开了面向第二个十二年的战略规划,表示京东将全面走向技术化,大力发展人工智能和机器人自动化技术,将过去传统方式构筑的优势全面升级.京东Y事业部顺势成立,该事业部将以服务泛零售为核 ...

  4. windows 安装Beautiful Soup(转)

    Beautiful Soup是一个Python的一个库,主要为一些短周期项目比如屏幕抓取而设计.有三个特性使得它非常强大: 1.Beautiful Soup提供了一些简单的方法和Python术语,用于 ...

  5. 运用google-protobuf的IM消息应用开发(前端篇)

    前言: 公司原本使用了第三方提供的IM消息系统,随着业务发展需要,三方的服务有限,并且出现问题也很难处理和排查,所以这次新版本迭代,我们的server同事呕心沥血做了一个新的IM消息系统,我们也因此配 ...

  6. 创建keystone的catalog时提示:‘Internal Server Error (HTTP 500)’

    在生成keystone的catalog时: [root@controller ~]# openstack service create --name keystone --description &q ...

  7. 解决修改mysql的data_dir所引发的错误

    今天,搭建新购的阿里云ECS环境(ubuntu 16.04 LTS),需要将mysql的数据保存在新挂载的磁盘上(已挂载到/mnt下),先停掉mysql服务,然后查看mysql并数据保存的位置: vi ...

  8. vuejs2.0子组件改变父组件的数据

    在vue2.0之后的版本中,不允许子组件直接改变父组件的数据,在1.0的版本中可以这样操作的,但是往往项目需求需要改变父组件的数据,2.0也是可一个,区别是,当我们把父元素的数据给子组件时,需要传一个 ...

  9. number问题

    Missing Number Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one ...

  10. [转]SecureCRT右键粘贴的设置

    1.习惯用putty的朋友,一般都习惯鼠标右键自动粘贴的功能,对于SecureCRT6.0.2 ,这个功能也已经是默认配置了. 老版本的SecureCRT其实也有这个功能,只是不是默认设置,很多人不知 ...