git是一个分布式的版本管理系统

通过廖雪峰的官方网站(maybe2017)来学习的,比较详实跟着操作就行,记录基本的一些命令还有学习是遇到的一些问题和收获,方便下次查阅。

  1. git的安装

    -. window系统安装github后就自动有了一个git bash命令行工具,看起来是github集成了git。也不知道是不是一样的?反正现阶段水平是感觉不到的。
    -. mac系统安装Xcode,Xcode集成了git

  2. 创建版本库

    1. 创建在哪儿? 这个就需要基本的命令行的知识

      1. pwd 显示当前目录
      2. mkdir learngit 创建文件learngit。
      3. cd leaarngit 进入文件learngit
        4. git init 在当前目录下创建.git文件,此文件就包括了暂存区和本地的版本库,可以跟踪和管理版本。
    2. 创建好.git之后就可以在这个目录下创建项目了,手动新建一个learn.txt。
      1. git add 把文件改变提交到暂存库表示一个文件,比如刚才的learn.txt
      2. git commit -m"描述一下改变内容的意义,我添加了第一个文件" 这个命令把暂存库中的变化添加到仓库
        3 git add learn.txt learn2.txt 可以一次性提交数个文件到暂存库下·
  3. 版本管理

    1. 查看

      1. git status 把所有改变了的文件显示,是否已经把改变添加到暂存区、上传到版本库有不同的提示
      2. git diff 会显示你直接对文档做的修改,比如你修改了的工作区目录下的readme.txt的内容,如果已经通过$git add reademe.txt操作来把改变添加到了暂存区,那么就不会显示。
      3. git log显示从最近到最远的提交日志,只能向后查看
        git log --pretty=oneline让日志信息在一行显示
      4. git reflog查看版本的命令历史,可以查看版本号,可以向前查看,版本回退后,向前的版本使用log是看不到的。
      5. cat 查看文档内容
    2. git reset --hard HEAD^回到上一个仓库里面版本,上面的commit会把变化写进版本,生成新的版本和对应的版本号。HEAD^^,往上数第两个版本,
      git reset --hard 3628164切换到版本号对应的版本,3628164 并不是全部的版本号,前面几位即可完成查询
  4. 撤销

    1. git checkout -- 撤销那些只是在工作区的更改,回到上一次暂存区存储的状态。
    2. git reset HEAD 撤销在已经存放在暂存区上的更改,回到上一次版本库的状态。此处的HEAD也可以表示更早的版本。
  5. 删除文件

    rm 删除文件,效果同手动删除

  6. 远程仓库,

    注意一些常用词repository表示项目的版本仓库。

    1. ssh-keygen -t rsa -C "youremail@example.com"如果用户目录下没有.ssh,使用此命令创建一个.ssh。需要输入自己的邮箱哦
    2. .ssh目录下的公钥。id_rsa.pub文件中的内容复制下来,到github的官网设置页面添加SHHkey。
    3. git remote add origin git@github.com:muyude/learngit.git 本地仓库关联github上的仓库,git@github.com:muyude/learngit.git是你在git'hub上建立的仓库的ssh密钥,注意换成自己的账号名字和仓库名称
    4. git push 本地仓库的内容推送到远程,
      git push -u origin master 第一次推送的时候把本地的分支和远程的master分支关联起来,在使用的时候出现了报错,注意让你选择的时候输入yes在回车。后面使用的时候仍然会报错,原因未知,可以使用
    5. $ git clone git@github.com:michaelliao/gitskills.git 把michaelliao的仓库gitskills克隆到本地。clone不仅仅支持shh协议,也支持http协议,
  7. 分支

    1. git branch dev 创建分支dev
    2. git checkout dev 进入分支dev
    3. git checkout -b dev 创建并且进入分支dev
    4. git merge dev 把分支dev上的改变,合并到当前的分支上。
    5. $ git merge --no-ff -m "merge with no-ff" dev不适用快速模式合并分支
    6. git branch -b dev 删除分支dev
    7. $ git log --graph --pretty=oneline --abbrev-commit查看历史分支
  8. bug管理

    1. git stash存储当前的工作,方便尽心其他临时紧急工作
    2. git stash apply恢复内容
    3. git stash drop删除存储的内容
    4. git stash pop恢复同时删除内容
    5. git stash listc查看工作保存的内容
  9. 标签管理

    1. git tag v 1.0给当前分支打一个标签v1.0
    2. git tag v0.9 6224937 给当前分支id为6224937 的版本添加标签v0.9
    3. git tag 查看标签
    4. git show v0.9查看标签信息
    5. git tag -d v0.1删除标签
    6. git push origin v1.0把标签推送到远程
    7. git push origin --tags把所有的本地标签推送到远程
    8. git push origin :refs/tags/v0.9删除远程标签,之前必须删除本地标签
  10. 1 $ git config --global alias.st status 配置别名 用st代替status

初识git(17/8/21)的更多相关文章

  1. git 入门教程之初识git

    初识 git git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 背景 我们都知道,Linus 在1991年创建了开源的linux系统,随着不断发展壮大,目前已发展成为最大 ...

  2. NOIP模拟17.9.21

    NOIP模拟17.9.21 3 58 145 201 161.5 样例输出21.6 数据规模及约定对于40% 的数据,N <= 20对于60% 的数据,N <= 1000对于100% 的数 ...

  3. Java语法基础常见疑惑解答8,16,17,21图片补充

    8. 16. 17. 21

  4. C#高级编程笔记(17至21章节)线程/任务

    17 Visual Studio 2013 控制台用Ctrl+F5可以显示窗口,不用加Console.ReadLine(); F5用于断点调式 程式应该使用发布,因为发布的程序在发布时会进行优化, 2 ...

  5. 初识git版本控制系统

    当下git分布式版本控制系统越来越火,掌握git也是必须的一个技能.因此,对git做了如下学习. Git初级指南 1. 先安装git.(ps:在select cmponents处要勾选Git Bash ...

  6. 在春意盎然的季节里初识GIT

    Git 与 SVN 区别 GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等. 如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征. ...

  7. 初识Git

    Git是目前世界上最先进的分布式版本控制系统.在Git诞生之前,我们一直使用的是集中式版本控制系统(如CVS.SVN等),那么两者有什么不同呢?分布式的优势又在哪里呢? 分布式vs集中式 集中式版本控 ...

  8. 【使用git】初识git

    0. 版本控制 版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修改情况的系统(vcs). svn等是集中式版本控制,即服务器在单一机器上,每次checkout变化的文件,若机器故障,则有可能 ...

  9. 构建之法--初识Git

    该作业来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 GitHub地址:https://github.com/GVic ...

随机推荐

  1. HBase学习笔记1 - 如何编写高性能的客户端Java代码

    转载请标注原链接:http://www.cnblogs.com/xczyd/p/5577124.html 客户在使用HBase的时候,经常会抱怨说写入太慢,并发上不去等等.从前我遇到这种情况,一般都二 ...

  2. sort_gff.py

    import sys infile = sys.argv[1]outfile = sys.argv[2] gff_list = []fh = open(infile)for x in fh:    i ...

  3. 常见Soc平台图形内存管理学习笔记

    硬件编解码.硬件图像scale等过程,是在专有的硬件单元里进行,其使用的内存也是专有的内存,这种内存多是SoC中图形内存.如此方便与硬件加速图形渲染.图像显示.硬件图像加速处理等功能相交互. 上述过程 ...

  4. 本博客不再更新和维护,后续文章会在掘金和GitHub发布,感兴趣的小伙伴可以掘金搜索王振宇,谢谢

    本博客不再更新和维护,后续文章会在掘金和GitHub发布,感兴趣的小伙伴可以掘金搜索王振宇,谢谢

  5. 2082 : Only choose one

    题目描述 A想玩个游戏,游戏规则是,有n个人,编号从1-n,一字排开,站在奇数位置的人淘汰,剩下的人再一字排开,站在奇数位置的人淘汰,以此重复几次,最后只剩最后一个人,问最后一个人的编号是多少? 输入 ...

  6. ewfwefwefe

    qwdefwef fwefwef

  7. HTTPS和HTTP(加密知识)

    什么是HTTPS? 基于安全套接字层的超文本传输协议(HTTP over SSL),一个Netscape开发的Web协议.HTTPS在HTTP应用层的基础上使用安全套接字层(或者升级版传输层安全,Tr ...

  8. Java for-each循环解惑

    Java for-each循环解惑 2014/04/24 | 分类: 技术之外 | 0 条评论 | 标签: JAVA 分享到:21 本文由 ImportNew - liqing 翻译自 javarev ...

  9. 渗透测试学习 九、 MSsql注入上

    MSsql注入漏洞详解 (Asp.Aspx站,常见于棋牌网站.考试网站.大学网站.政府网站.游戏网站.OA办公系统) 大纲:msSQL数据库调用分析 msSQL注入原理 msSQL注入另类玩法 msS ...

  10. 解决win7无法运行bat批处理文件的方法

    在win7系统中我们可以将一些命令制作为bat批处理文件,只需双击打开即可运行命令,方便使用. 那么,要怎么运行bat批处理呢?最近有用户反馈,遇到无法运行bat批处理的现象,该怎么办呢? 修复方法一 ...