使用Git版本控制工具管理GitHu

  1. Git是一个分步式的管理系统:只要上传操作得当,所有的都可以相当于是中央服务器,成员代码共享,A写的代码B也有,一般把一个人当做主机,其他人通过该主机拼装代码并克隆到自己的电脑上;

    这样即使是主机凉了,其他人也都会有各自的本地代码,都不会凉;

  2. Svn是一个集中式的管理系统:所有人将各自的模块代码上传到中央服务器中进行拼装,当服务器凉了所有没有本地代码的人就都凉了;


一.配置Git

  • 下一步下一步,注意可以设置为notepad修改;

  • 安装完成后,先去电脑中查看是否有SSH秘钥,这个秘钥拥有互联网唯一性

    • 进入C:\User\lyuweigh\.ssh中查看,有没有"id_rsa",和"id_rsa_pub"

    • 如果没有,则需要创建秘钥:

      ssh-keygen -t rsa -C "email@email.com","email@email.com"
    • 然后在输入:

      //文件保存在本地.git/config中
      $ git config --global user.name "Your Name"
      $ git config --global user.email "email@example.com"

二.设置GitHub

  • 创建一个账号,进入设置

  • 然后选择New SSH Key 将本地User/lyuweigh/.ssh/id_rsa_pub 内容复制进去,加一个标题 保存
  • 然后在git中就可以进行pull 和 push 操作了

三.基本操作命令

  1. 提交被修改过的文件的方法到.git仓库

    git add xxxx.xxx //提交指定文件
    git add.//提交所有文件
  2. 提交是不行的,还需要对这次 提交|修改 进行说明

    git commit -m 'xxxxxxx'
    // -m 后面输入的是提醒备注的文本,最好详细
  3. 查看仓库状态命令

    git status
    //如果有的文件提交到本地仓库,则会显示为红色,如果没有对提交的文件进行签名,会显示为绿色
    //如果显示为红色,自行提交, 如果显示为绿色,对操作进行签名
  4. 版本回退

    • 使用git log 命令进行查看提交的版本迭代信息

      git log
      //如果输出的信息太多,加上--pretty=oneline ,会将显示信息减少,增加可读性
    • 使用回退代码

      //根据每次commit代码时的签名来指定git本地仓库回退到的具体版本
      git reset --hard^
      //这里的'^'符号代表跳过的次数,出现一次就是跳回到上一个版本

      当从v3.0退回到v2.0的时候,原来版本的代码还在,只是使用git log是无法显示出v3.0的签名的

      使用 git reflog

       git reflog
      //用来显示历史所有成功执行的命令每一次的命令 //以下是显示代码, 第一条是最近的代码,我回退了版本1, 剩下的是提交过的签名 $ git reflog
      ed3bf60 (HEAD -> master) HEAD@{}: reset: moving to HEAD^
      2afd461 (origin/master, origin/HEAD) HEAD@{}: commit: 免罪目录
      ed3bf60 (HEAD -> master) HEAD@{}: commit: add xmind uml
      451af7b HEAD@{}: commit: 修改了
      b9188e0 HEAD@{}: commit: 修改签名
      9f9d110 HEAD@{}: clone: from https://github.com/lyuweigh/First.git
      //既然知道了上衣次版本号'免罪目录'的hash值是 "2afd461", 那么就可以通过版本回退命令来修改版本
      git reset 2afd461
      //这里的 "哈希值" 可以简略写, 只写前面几个

      git的版本控制是指针设计方式


四.Git原理

最外围的区域是工作区

.git 文件夹中有暂存区 (Stage)主分支区(Header)

  1. java Git add xxx 命令将文件提交到stage(暂存区)中;

  2. Git commit -m xxx 命令将文件提交到 Header(主分支)中

  3. 不管是访问他人内容 , 还是自己的内容被访问, 所请求的资源都是Header中的资源


五.撤回工作区的修改:

git checkout -- file
//file是想要被改回的文件名
//丢弃工作区的修改, 回到当前版本库的状态
  1. 撤回暂存区的修改
git reset hard <file>
//file是想要被改回的文件名
//丢弃暂存区的修改
  1. 只要没有提交到远程库中,那就是可以修改的, 就算提交到了远程库中,大不了pull下载改一下在push上去,因为有 版本库 指针的存在 所以非特殊情况不会造成代码丢失

  2. 删除文件

    • 删除当当前版本库中的内容:

      git rm <file>
      //由于是属于修改了当前工作区的文件,操作树就不为空了,需要手动提交该操作的签名
      git commit -m '删除了xxxx'

六.分支区(Header)

每一个本地库都是一个分支(.git),将代码先commit到自己的当前分支上,随时都可以添加,并且速度快(本地传输),
敲一天代码,这一天内可以随意的将代码添加到本地分支中,并且有版本库的存在不用担心提交;
本地代码弄好后,将本地分支代码提交到远程仓库中,(为了防止冲突问题,要先将服务器中的代码pull(拉回)到本
分支上,再将本分支push(推出)到远程服务器中)

观自廖雪峰

 

使用Git版本控制工具管理GitHub的更多相关文章

  1. Git版本控制工具(三)----远程仓库GitHub的使用

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  2. Git版本控制工具(一)----git的安装及创建版本库

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  3. 学习使用Git 版本控制 代码管理

    title: 学习使用Git 版本控制 代码管理 notebook: 经验累积 tags:Git --- Git 版本控制 学习教程 Git版本控制器,可以作为程序员.计算机科学和软件工程的研究人员在 ...

  4. git版本控制工具(二)----本地版本库的常用操作

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  5. Git 版本控制工具(学习笔记)

    GIT(分布式) 一.Git 初始版本控制工具 1. 安装Git Ubuntu系统下,打开shell界面,输入: sudo apt-get install git-core  之后回车输入密码,即可完 ...

  6. Git 版本控制工具使用介绍------Windows系统下使用

    Git 是用于 Linux内核开发的版本控制工具.与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什 ...

  7. git版本控制工具基本用法讲解(转)

    一.安装Git 在linux系统使用非常方便,只需要打开shell界面,并输入: ? 1 sudo apt-get install git-core 按下回车后输入密码,即可完成Git的安装.但我们可 ...

  8. Git版本控制工具学习

    Git代码管理工具学习 分布式管理工具:git 相比较svn它更加的方便,基本上我们的操作都是在本地进行的. Git文件的三种状态:已提交,已修改,以暂存. 已提交:表示文件已经被保存到本地数据库. ...

  9. git版本控制工具的使用

    目录 git版本管理工具使用 一丶Git的下载与安装 1.windows下的git的下载与安装 2.linux下的git安装 二丶常用命令 三丶Git仓库 1.配置仓库信息 2.仓库的创建于管理 四丶 ...

随机推荐

  1. hashMap的线程不安全

    hashMap是非线程安全的,表现在两种情况下: 1 扩容: t1线程对map进行扩容,此时t2线程来读取数据,原本要读取位置为2的元素,扩容后此元素位置未必是2,则出现读取错误数据. 2 hash碰 ...

  2. MVC+Ext.net零基础学习记录(一)

    由于最近开发一个项目,决定使用MVC+EXT.NET,决定将学习的这个过程记录下来 本人和很多菜鸟一样,之前既没有使用过MVC开发,也没有接触过EXT.NET,所以这将是一个大家共同学习的过程,文章中 ...

  3. C# 计时器 以“天时分秒毫秒”形式动态增加显示

    参考:http://zhidao.baidu.com/link?url=j-jxQJenrO54BSKJ_IkXWbhdDqbVLUyyenjjSGs8G0xdisgBZ0EMhzyWgARSFct6 ...

  4. js中得~~是什么意思/JS按位非(~)运算符与~~运算符的理解分析

    其实是一种利用符号进行的类型转换,转换成数字类型 ~~true == 1 ~~false == 0 ~~"" == 0 ~~[] == 0 ~~undefined ==0 ~~!u ...

  5. [干货]兼容HTML5的Placeholder属性-更新版v0.10102013

    HTML5对Web Form做了许多增强,比如input新增的type类型.Form Validation等.Placeholder是HTML5新增的另一个属性,当input或者textarea设置了 ...

  6. HTML5响应式模版Mocha

    HTML5响应式模版Mocha,经典,html5,蓝色,扁平,HTML5响应式模版Mocha是一款宽屏大气的HTML5网站展示模板. http://www.huiyi8.com/moban/

  7. listen 76

    Flavors Fluctuate With Temperature Does an ice-cold drink actually taste better than the same bevera ...

  8. listen 66

    Frog Species Found in Big Apple Scientists discover new species all the time—on the order of 15,000 ...

  9. Spring笔记04(DI(给属性赋值),自动装配(autowire))

    给不同数据类型注入值: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h ...

  10. BZOJ4307: Maishroom & Class

    感觉有一点题面没有说得特别明确,就是一个人代替了其他人之后,另一个可以被他代替的人就不能让他来代替自己了. 每个人向自己可以代替的人连边,额外增加一个源点$r$向所有助教连边.第一问答案是$r$不能到 ...