本文只是一个个人学习Git的笔记,如有错误的地方,还望指出,谢谢!参考资料如下:

  《Git教程--廖雪峰的官方网站

   bootstrap里面的--git_guide

Git安装

  在网上搜索git下载安装即可。成功后,右击会出现Git Bash,说明安装成功了。

Git配置

  Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。

1、置Git的user name和email:        

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

2、生成SSH密钥

  1)、查看是否已经有了ssh密钥:cd ~/.ssh
      如果没有密钥则不会有此文件夹,有则备份删除
  2)、生存密钥:      

$ ssh-keygen -t rsa -C "email@example.com"

  按3个回车,密码为空。

  最后得到了两个文件:id_rsa和id_rsa.pub。  

3、在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥。

  打开https://github.com/ ,登陆,然后添加ssh。

Git上传代码

  使用git,要会使用git status 查看提交状态,遇到问题,都会给出命令提示,然后根据提示,完成所需要的操作。>_>

   

1、提交完整流程

  先与git上仓库进行一个绑定    git  remote  add  origin git仓库

   git  add  <file>            添加需要上传的文件<file>(可重复使用该命令添加多个文件)    //告诉Git,把文件添加到暂存区
   或者 git  add  -A            添加所有代码

   添加成功的话,没有任何显示

   git  commit  -m  "commit"     把暂存区的所有内容提交到当前分支                //告诉Git,把文件提交到本地版本库

   git  push  origin  master(第一次提交时,使用git  push  -u  origin  master)     推送已经和远程版本库内容合并的本地版本库至远程库

2、工作区有内容修改(工作未完成)的时候,需要对master分支修改bug,或者拉取远程仓代码

  git  stash        将所有工作区的内容暂存

  git  pull           以远程库的内容为基准  将其内容拉至本地版本库 

  取出暂存的内容    

  git  stash  list                查看暂存的内容       

  1)git  stash  pop            将暂存的文件取出来,同时将暂存区内容删除

  2)git stash apply  stash@{n}   恢复后,stash内容并不删除,你需要用git stash drop来删除;          

3、代码撤销

  1)、代码没有放入暂存区

    git  checkout  --  <file>    撤销对<file>文件的修改

  2)、添加到暂存区后,又作了修改;撤销修改就回到添加到暂存区后的状态。

    git reset HEAD <file>   可以把暂存区的修改撤销掉(unstage),重新放回工作区

4、代码冲突(没测出来,莫名奇妙的解决了)

  有时候你提交的时候,他人在你之前对这个文件做过了修改并提交到Git,那么你提交的时候会出现代码冲突。

  Git用<<<<<<<=======>>>>>>>标记出不同分支的内容,我们修改后保存。然后“重复1”的内容

5、版本回退      

  当有一天,客户对你提出了一大堆的需求,你辛辛苦苦的完成了客户的需求,却又被告之他现在想要最初的版本,相信每个人都会是崩溃的;又或者你将代码提交到远程库的时候,后悔了。别担心,Git可以实现版本回退。

    git  log 或者 git log --pretty=oneline     查看提交日志

    git  reset  --hard  HEAD^         回到上一个版本

    git  reset  --hard  HEAD^^          回到上上个版本

    git  reset  --hard  HEAD~n        回到上n个版本

  版本回退-逆转未来

  当你回到前面的版本后,再想回到“未来”。

    git  reflog              记录你的每一次命令                        

    git  reset  --hard commit_id    回到commit_id这个版本

  回退某一个文件

    git  reset  commit_id  <file>       仅将<file>回退到commit_id版本(本地文件没有修改,直接回退)

6、master|REBASE m/n

  出现标题这样的情况时,先将代码提交到远程版本库。

    git  rebase  --abort    回到主分支master上,此时会提醒你主干会落后1commits

    git  pull         将远程拉回本地

7、其他部分命令

  git checkout     其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

  git reset      命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

8、忽视文件 .gitignore

  有时候,你必须把某些不想提交的文件也放到Git工作目录中,那么如何提交时忽视他们呢?只需在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

  

# 以'#'开始的行,被视为注释.
# 忽略掉所有文件名是 foo.txt的文件.
foo.txt
# 忽略所有生成的 html文件,
*.html
# foo.html是手工维护的,所以例外.
!foo.html
# 忽略所有.o和 .a文件.
*.[oa]
#只忽略dbg文件,不忽略dbg目录
dbg
!dbg/

  规则写法:斜杠“/”开头表示目录;

       星号“*”通配多个字符;

       问号“?”通配单个字符;

       方括号“[]”包含单个字符的匹配列表;

       叹号“!”表示不忽略(跟踪)匹配到的文件或目录

注意:
不要误解了 .gitignore 文件的用途,该文件只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。如果文件曾经被 Git 记录过,那么.gitignore 就对它们完全无效。

9、本地库绑定新的 git 仓库

如果有一天,由于某些原因,比如远程仓空间不够等情况,你需要把本地文件传入一个新的 git 远程仓库,但此时你的本地仓库已经绑定过一个远程仓库了,此时可以用以下命令,来绑定新的仓库

    git  remote  -v              查看绑定的仓库信息

    git  remote  remove  origin         与此时绑定的远程仓库解绑

    git  remote  add  origin 新的仓库       绑定新的远程仓库

    git  remote  -v              查看绑定的仓库信息,确定是否已绑定新的仓库  

常用的git学习与命令使用,多看廖雪峰的官方网站--Git教程就可以了,剩下的就是工作和平时的多敲,碰到问题再多找资料就行了。

      

前端学习之路——Git篇的更多相关文章

  1. 前端学习之路——scss篇

    一.什么是SASS SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 二.安装和使用 Sass依赖于ruby环境,所以装sass之前先 ...

  2. 前端学习之路——gulp篇

    一.构建gulp环境 1.下载nodejs gulp基于node.js,要通过nodejs的npm安装gulp,所以要先安装node.js环境.(英文官网/中文官网链接). 通过cmd命令窗口确定安装 ...

  3. jQuery延迟加载(懒加载)插件 – jquery.lazyload.js-Web前端(W3Cways.com) - Web前端学习之路

    Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预 ...

  4. 前端学习之路-CSS介绍,Html介绍,JavaScript介绍

    CSS介绍 学前端必备掌握CSS样式,css为层叠样式表,用来定义页面的显示效果,加强用户的体验乐趣,那么如何用css到html中呢? style属性方式 利用标签中的style属性来改变显示样式 & ...

  5. STM32学习之路入门篇之指令集及cortex——m3的存储系统

    STM32学习之路入门篇之指令集及cortex——m3的存储系统 一.汇编语言基础 一).汇编语言:基本语法 1.汇编指令最典型的书写模式: 标号 操作码        操作数1, 操作数2,... ...

  6. 我的web前端自学之路-心得篇:我为什么要学习web前端?

    时光如流水,转眼间,自己已经是大三的学长了,看着一个个学弟学妹,心中有种莫名的感觉,很怀念大学的前两年时光,但也很憧憬着自己的未来,自己将要去经历很多从未经历的事.我是我们学校信科院的一名学生,在编程 ...

  7. Vue学习之路第一篇(学习准备)

    1.开发工具的选择 这个和个人的开发习惯有关,并不做强求,厉害的话用记事本也可以.但是我还是建议用人气比较高的编辑工具,毕竟功能比较全面,开发起来效率比较高. 我之前写前端一直用的是sublimete ...

  8. Salesforce学习之路-developer篇(一)利用VS Code结合Git开发Salesforce

    Part 1: 从Git中克隆代码到本地 git clone https://github.com/git/git Part 2: 在VS Code中安装Salesforce和Git插件 在VS Co ...

  9. Day1前端学习之路——概述

    终于下定决心要好好学习前端知识了,以后会把学习过程中的一些随笔记录在这里.HTML.CSS.JavaScript这三大前端语言在大三的时候就有所接触,但是学习的不够深入,这一次希望能够坚持下去. 学习 ...

随机推荐

  1. js闭包概念

    含义:闭包是一个概念,它描述了函数执行完毕内存释放后,依然内存驻留的一个现象,只要把握这个核心概念,闭包就不难理解了 function a(){      var i=0;      function ...

  2. ABBYY迎国庆·庆中秋限时折扣狂潮,再来一波

    继ABBYY 早秋限时活动之后,ABBYY官方为迎国庆,庆中秋,折扣狂潮,又来一波.上次活动由于时间短,任务急,数量少,使得不少小伙伴抱憾而止,选择默默等待良机.现在,良机来了,即便没有上次的打折力度 ...

  3. C# 基础复习 四 ADO

    调用存储过程,并接收多个表的查询结果 一个表用一个DataTable,DataSet可以存储多个DataTable DataSet需要SqlDataAdapter来填充数据 SqlConnection ...

  4. Vue学习之路第二篇:插值表达式

    要开始写Vue的功能了,是不是很激动呢!开始吧! 1.首先建立一个html页面,导入Vue js包 <script type="text/javascript" src=&q ...

  5. js异步队列之理解

    起因 最近看到一篇关于js异步执行顺序的解答,觉得有所收获,遂记录下来. marcotask和microtask js中异步队列可以分为两类,marcotask队列和microtask队列, marc ...

  6. HDU 2669 Romantic( 拓欧水 )

    链接:传送门 题意:求解方程 X * a + Y * b = 1 的一组最小非负 X 的解,如果无解输出 "sorry" 思路:裸 exgcd /***************** ...

  7. [spoj] HIGH - Highways (生成树计数)

    传送门 输入格式: 第一行一个整数T,表示测试数据的个数 每个测试数据第一行给出 n,m 分别表示点数与边数 接下来 m 行,每行给出两个数 a,b ,表示 a,b 之间有一条无向边 输出格式: 每个 ...

  8. web前端项目规范

    项目目录规范 . ├─ css ├─ component ├─ img ├─ js ├─ page ├─ test ├─ package.json ├─ README.md css 存放样式类文件,且 ...

  9. tp框架引入第三方sdk的经验总结

    tp框架开发常用到第三方的接口,这时候需要引入第三方的sdk.例如:微信扫码支付sdk,阿里大于的淘宝sdk等等 首先到官网上下载对应php的sdk文件,通常会有至少一个实例代码. 1 新建一个控制器 ...

  10. 【hdu 6321】Dynamic Graph Matching

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] DP 设f[i][j]表示前i个操作,已经匹配了的点的状态集合为j的方案数 对于+操作 有两种情况. 1.这条边作为匹配的边 2.这 ...