GIT的工作流程:

  • 先在工作目录中添加、修改文件

  一般是在工作目录建立你的工程文件夹,然后通过命令行进入文件夹后  git init 初始化

  • 将需要进行版本管理的文件放入缓存区  git add 文件名
  • 然后将缓存区的文件提交到Git仓库  git commit -m "提交说明"

GIT管理的文件有三种状态:

  • -已修改(modified)
  • -已缓存(staged)
  • -已提交(committed)

GIT查看工作状态和历史提交:

  • 查看状态  git status
  • git reset HEDA<filename> 把暂存区域恢复成之前的状态,也就是在你add一个文件后你可以选择reset回去。此时暂存区域文件是待提交状态,如果你这时又去修改了文件,也要先  git add <filename> 后成最新的文件,再commit. git reset HEAD~1 表示回滚到上一个版本以此类推数字表示上面几个版本
  • 当文件修改后,status会变成modified。此时可以选择 git add <filename> 来用新版本覆盖老版本,或者 git checkout -- <filename> 恢复到老的版本文件。reset命令是从reposity到stage
  • git log 显示历史提交记录
  • git reset --mixed HEAD~(这个选项默认) :-将HEAD指向上一个快照 -将HEAD移动后指向的快照回滚到暂存区域
  • git reset --soft HEAD~ :-只是将HEAD指向上一个快照
  • git reset --hard HEAD~ :-将HEAD指向上一个快照 -将HEAD移动后指向的快照回滚到暂存区域 -将暂存区域的文件还原到工作目录
  • git reset 要回滚的id 回滚到指定快照

GIT版本对比:

  • git diff 显示版本的一样的地方,---表示旧的,+++表示新的。当有:时表示当前窗口显示不完,输入命令显示更多(h获得帮助)
  • git diff 快照ID1 快照ID2 比较两个历史版本, git commit -am "说明" 一次性添加提交
  • git diff 快照ID  比较仓库快照和当前目录。  git diff HEAD~ 比较最新提交的快照和当前目录
  • git diff --cached [快照ID]  比较暂存区域和仓库快照,后面的快照ID可选,默认最新

GIT修改、删除、重命名:

  • git commit --amend  修改刚刚提交的说明
  • git rm 文件名  删除当前目录和暂存区域的文件,也就是不再跟踪,下次提交时不纳入版本管理 git rm -cached 文件名 只删除暂存区域
  • git mv 旧的文件名 新的文件名  修改文件名

GIT分支:

  • git branch feature  创建feature分支。
  • git checkout 分支名 切换分支
  • git log --decorate(这个是修饰) --all(所有的) --oneline(一行) --graph(图形界面)
  • git merge 分支名 合并分支
  • git branch -d 分支名 删除分支
  • git checkout HEAD~ 创建匿名分支,在你提交一系列东西的时候,可以使用HEAD~把指针指到想要的地方,这时间就会是一个匿名分支,你在这个匿名分支中做的任何操作都会不生效,但是你可以在这个匿名分支使用  git checkout -b 分支名 来真的创建一个分支,在你切换回master的时候还会提醒你一次用 git branch 分支名 ID号 来真的创建这个分支。这种匿名分支在你要做一些实验性的代码时还是很有作用的

checkout作用:

  1. 从仓库(或者暂存区域)拷贝一个文件到工作目录。 git checkout --文件名
  2. 切换分支
  3. 和reset的区别:都可以用来恢复指定快照的指定文件,切HEAD指针不会变,但是reset只将文件恢复到暂存区域(--mixed),checkout同时覆盖暂存区域和工作目录。checkout更安全,因为在执行前要先检查,reset会移动HEAD所在分支,checkout只移动HEAD本身

把代码在github上托管

  1. 在github上注册账户->建立仓库
  2. 在本地安装GIT(下载地址:https://git-scm.com/download/)
  3. 在git bash中注册用户名和邮箱  git config –global user.name “用户名”   git config –global user.email “邮箱”
  4. 然后配置你的ssh  ssh-keygen –t rsa –C “邮箱地址”  然后一直回车得到一个你本地的文件
  5. 在本地存放ssh的文件夹下找到id_rsa.pub文件,用记事本打开全部复制里面的内容
  6. 进入的github网站,在setting里面找到ssh设置,添加你的SSH keys。名字随便取
  7. 然后在你本地先验证一下设置是不是成功 ssh –T git@github.com 会提示你,输入yes就是了
  8. 然后在你本地建立文件夹先进行代码管理初始化 git init
  9. 添加你对github上仓库的管理: git remote add origin git@github.com:用户名/仓库名.git
  10. 本地同步一下网上的仓库:  git pull git@github.com:用户名/仓库名.git
  11. 然后对你本地项目进行add 和 commit等操作
  12. 最后再把本地的同步回网上: git push git@github.com:用户名/仓库名.git

git常见的操作错误:

提示出错信息:fatal: remote origin already exists.

  1. 先输入 git remote rm origin    是删除已经存在的origin
  2. 再输入 git remote add origin git@github.com:名称/仓库名  这个是添加一个对远程仓库的管理
  3. 如果输入 git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 则要对config文件进行操作
  4. 找到你的github的安装路径
  5. 找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!

提示错误::Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github

  1. 先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。
  2. 如果还是不行的话,输入ssh-add ~/.ssh/id_key 命令后出现报错Could not open a connection to your authentication agent.解决方法是key用Git Gui的ssh工具生成,这样生成的时候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行来做。
  3. 最好检查一下在你复制id_rsa.pub文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。

提示错误:error:failed to push som refs to .......

  1. 先输入$ git pull origin master //先把远程服务器github上面的文件拉下来
  2. 再输入$ git push origin master
  3. 如果出现报错 fatal: Couldn't find remote ref master或者fatal: 'origin' does not appear to be a git repository以及fatal: Could not read from remote repository.
  4. 则需要重新输入$ git remote add origingit@github.com:用户名/仓库名

GIT教程笔记的更多相关文章

  1. 阅读廖雪峰老师git教程笔记

    1.首先git是目前世界上最先进的分布式版本控制系统之一.所谓版本控制是针对工作中一些普遍的现象的. 比如,你写一份文档,期间,不断的改善,每次修改都会进行备份,久而久之,会有很多版本的同一份文档,但 ...

  2. git教程笔记(二)

    1.首先进入自己的项目文件 在GitHub上申请一个自己的账户信息.创建一个Repository.然后复制仓库的地址在gitbush中进行clone gitbush中进行远程clone 2.gitbu ...

  3. 根据学习廖雪峰老师的git教程做的笔记

    根据学习廖雪峰老师的git教程做的笔记 安装git 进行git的配置 配置您的用户名和邮箱地址,使用--global 这个参数表明了在此台机器上的所有仓库都会使用该配置 $ git config -- ...

  4. Git学习笔记与IntelliJ IDEA整合

    Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...

  5. 【Git】笔记1

    学习廖雪峰Git教程的笔记 Git是什么: Git是目前世界上最先进的分布式版本控制系统 Git与Github的关系:github是一个用git做版本控制的项目托管平台,它为开源项目免费提供Git存储 ...

  6. 使用Git简单笔记

    这里只是作为简单的笔记整理,第一次使用的推荐先看一下廖大的教程,内容很多很细,可以边看边练.看不懂的地方先记着.争取七七八八看下来. ================================= ...

  7. git入门笔记汇总——(廖雪峰博客git入门)

    本文内容是对廖雪峰老师Git教程做的笔记,外加一些自己的学习心得,还抱着学以致用的心态来实践一番 如有显示错误 请移步本人github:git教程小结 Git学习笔记 Git简介 安装Git 创建版本 ...

  8. Git学习笔记 --第一章

    本系列学习笔记参考廖雪峰Git教程 安装Git Linux平台 Ubuntu/Debian命令:sudo apt-get install git 其他版本  Git官网下载源码,然后解压,依次输入:. ...

  9. 《廖雪峰 . Git 教程》学习总结

    基本上,Git就是以下面的命令顺序学习的.文中笔记是从廖雪峰老师的 Git教程 中总结出来的,方面查阅命令. 1.基础 git config --global user.name "Your ...

随机推荐

  1. 安装MySQL出现1045错误,卸载不干净

    安装MySQL出现1045错误 一.运行环境 MySQL mysql-5.1.26-rc-win32 操作系统:Windows 7 X64 二.问题描述 安装MySQL过程中会涉及对root密码的设置 ...

  2. Ubuntu 与 Windows 共享文件夹

    1. Ubuntu关机后 编辑虚拟机设置->option->共享文件夹->添加->确定 完成! 2.共享文件夹后在/mnt/hgfs/文件夹下无法看到共享的文件夹: 解决方法: ...

  3. 探索ElasticSearch(一)

    1.    什么是ElasticSearch: ElasticSearch是基于lucene采用java语言开发的一个服务产品,旨在方便全文检索.分担web服务及数据库服务压力.可以理解为文件系列类型 ...

  4. java线程并发工具类CyclicBarrier、CountDownLatch及Semaphore

    一.CyclicBarrier   (原文链接:http://www.studyshare.cn/blog-front/blog/index ) 1.定义 CyclicBarrier是线程并发工具类之 ...

  5. Redis源码分析-底层数据结构盘点

    前段时间翻看了Redis的源代码(C语言版本,Git地址:https://github.com/antirez/redis), 过了一遍Redis数据结构,包括SDS.ADList.dict.ints ...

  6. 如何给自己的开源项目选择和添加 License

    License 的作用:开源 == 为所欲为? 开源并不等于为所欲为! 代码的用途,修改之后的代码有什么要求,开源程序对于原作者的权利和责任等等,都是需要明确的. 开源协议 License 就是这么一 ...

  7. [Django笔记] Apache + mod-wsgi 环境部署所遇到的各种问题总结

    在一台CentOS7机器上配置Django+apache运行环境 Django安装 python2 or python3 ? 一般情况下Linux系统都有自带python2,本机CentOS7上的是p ...

  8. Spark TaskScheduler 概述

    TaskScheduler 原理: 1. DAGScheduler 在提交Taskset给底层调度器的时候是面向接口TaskScheduler的, 这符合面向对象中依赖抽象原则,带来底层资源调度器的可 ...

  9. PostGIS安装 pgis3.4.2 postgresql 10.1

    https://yq.aliyun.com/articles/228258http://download.osgeo.org/postgis/source/http://blog.51cto.com/ ...

  10. emmet高级技巧

    编写好HTML和CSS代码时,我们也需要修改或添加一些内容,Emmet提供了很多非常独特的工具,可以大大提高编辑体验,下面我们挑选几个常用的功能来介绍. 萨龙龙发现在sublime text中安装的E ...