由于之前一直用svn 用git也是用图形化的工具 还是要了解一下git指令

因为都是版本控制工具 有很多相似之处 所以理解起来也比较轻松

  • 仓库: github上面的项目
  • 工作目录下面的所有文件都不外乎这两种状态:++1. 已跟踪 2. 未跟踪++
  • git 有一个暂存区(staged area), 即跟踪区。 在暂存区的文件都是被跟踪状态的,所有准备好要提交的文件才放到暂存区 提交的时候不是直接从本地提交 而是把暂存区的文件全部提交上去
  • 初始化新仓库

    $ git init

  • 从现有仓库中克隆

    $ git clone [url]

  • 检查当前文件状态

    $ git status

    例子1:

    $ git status
    On branch master
    nothing to commit, working directory clean
    • clean : 所有已跟踪文件在上次提交后都未被更改过

    • 当前目录下没有出现任何处于未跟踪的新文件,否则 Git 会在这里列出来

    • master : 当前所在的分支名称

    • 如果在当前目录下新建一个文件 会在 Untracked files 下面显示 表明此为未跟踪文件

      $ vim README
      $ git status
      On branch master
      Untracked files: <!--未跟踪文件-->
      (use "git add <file>..." to include in what will be committed) README nothing added to commit but untracked files present (use "git add" to track)
  • 跟踪文件

    • 跟踪新文件

      $ git add 新建的文件
    • 跟踪原有的修改的文件

      $ git status
      On branch master
      Changes to be committed:
      (use "git reset HEAD <file>..." to unstage) <!--git reset HEAD <file>:撤销add--> new file: README Changes not staged for commit: <!--本地有之前追踪的文件修改了 没有放到暂存区-->
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory) <!--git checkout -- <file>:回到修改之前的版本--> modified: benchmarks.rb

      Changes not staged for commit: 说明已跟踪文件的内容发生了变化,但还没有放到暂存区。要暂存这次更新,需要运行 git add benchmarks.rb 命令

      git reset HEAD : 撤销add 撤销追踪状态

      git checkout -- : 撤销修改 回到修改之前的版本。这条命令有些危险,所有对文件的修改都没有了,因为我们刚刚把之前版本的文件复制过来重写了此文件。所以在用这条命令前,请务必确定真的不再需要保留刚才的修改。如果只是想回退版本,同时保留刚才的修改以便将来继续工作,可以用下章介绍的 stashing 和分支来处理

      把修改的部分假如到暂存区 准备提交

      $ git add benchmarks.rb
      $ git status
      On branch master
      Changes to be committed: <!--此时本地文件已经全部在暂存区 已经准备好可以提交了-->
      (use "git reset HEAD <file>..." to unstage) new file: README
      modified: benchmarks.rb

      Changes to be committed:全部在暂存区 已经准备好可以提交了

      如果再次 vim ++二次修改++,然后再看看 status:

      $ vim benchmarks.rb
      $ git status
      On branch master
      Changes to be committed: <!--commit 只会提交这部分文件-->
      (use "git reset HEAD <file>..." to unstage) new file: README
      modified: benchmarks.rb <!--第一次修改已经加到缓存区的文件--> Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory) modified: benchmarks.rb <!--二次修改没有加到缓存区的文件-->

      如果此时提交的话 提交的是上面的第一次修改的文件 二次修改的文件不会被提交 想要二次修改的被提交要再次执行add指令

      ++所以 全部文件修改了之后才去 add, 尽量避免 add 过 文件之后又再修改文件了++

  • 要忽略掉的文件

    始终都不要追踪的文件 创建 .gitignore 文件

    # 此为注释 – 将被 Git 忽略
    *.a # 忽略所有 .a 结尾的文件
    !lib.a # 但 lib.a 除外
    /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    build/ # 忽略 build/ 目录下的所有文件
    doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
    doc/**/*.txt # 忽略 doc/ 目录下所有扩展名为 txt 的文件

暂时记录到这里 有时间再继续整理

参考:

官网

git 指令记录的更多相关文章

  1. 常用git指令记录

    Generating an SSH key Checking for existing SSH keys Generating a new SSH key and adding it to the s ...

  2. 工作中常用Git指令操作

    常用Git指令总结 前阵子有几天好不顺,可谓是喝水都呛着,更何况被Git给呛着了,还不轻,哈哈.所以打算总结一下自己在工作使用到Git相关的东西以及和大家探讨使用GIt的心得体会.于是,关于Git的的 ...

  3. Git学习记录 力做全网最强入门教程

    目录 Git学习记录 力做全网最强入门教程 什么是GitHub? 什么是Git? Git的配置 Git的安装(只介绍windos操作系统下) Git的配置 至此我们的入门教程到此结束,更新中级教程要等 ...

  4. git指令-未完待更新

    git指令 1. $ git config --global user.name "Your Name" $ git config --global user.email &quo ...

  5. git 学习记录—— git 中的仓库、文件状态、修改和提交操作等

    最近开始学习使用版本控制工具  git .学习方式主要通过阅读 git 网站上的 Pro git 和动手实践,使用的系统为 Ubuntu16.04LTS,以及 Windows 8.1. 本文主要关注 ...

  6. git 指令笔记

    狂躁,太狂躁!!赶上过年,赶上自己的懒癌,12月底就学完的教程直到今天才整理笔记,中途沉默在游戏中..... 只给出Windows下git指令操作,推荐大家去廖雪峰前辈那里学习(百度搜索:廖雪峰的官方 ...

  7. git指令-版本回退

    git指令-版本回退 回顾: 1. 修改文件 2. 添加到暂存区并提交 回顾对readme共三次修改: 1. 版本1:wrote a readme file Git is a version cont ...

  8. 日常学习用到的Git指令

    Git 常用Git指令 (本地) git init - 将文件夹初始化为Git仓库 git add - 将工作区的指定文件放入暂存区 git status - 查看工作区和暂存区的状态 git com ...

  9. linux下history命令显示历史指令记录的使用方法

    Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中.默认保存1000条,你也可以更改这个值 ...

随机推荐

  1. Leetcode:单调数列

    题目 如果数组是单调递增或单调递减的,那么它是单调的. 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的. 如果对于所有 i <= j,A[i]> ...

  2. CC12:链式A+B

    题目 有两个用链表表示的整数,每个结点包含一个数位.这些数位是反向存放的,也就是个位排在链表的首部.编写函数对这两个整数求和,并用链表形式返回结果. 给定两个链表ListNode* A,ListNod ...

  3. NET Core的分布式批处理框架

    NET Core的分布式批处理框架 Swift是什么 从文章的标题可知:此Swift非Apple那个Swift,只是考虑这个词的含义比较适合. Swift是一个基于.NET Core的分布式批处理框架 ...

  4. Spark Mllib里决策树回归分析使用.rootMeanSquaredError方法计算出以RMSE来评估模型的准确率(图文详解)

    不多说,直接上干货! Spark Mllib里决策树二元分类使用.areaUnderROC方法计算出以AUC来评估模型的准确率和决策树多元分类使用.precision方法以precision来评估模型 ...

  5. Kaggle八门神器(一):竞赛神器之XGBoost介绍

    Xgboost为一个十分有效的机器学习模型,在各种竞赛中均可以看到它的身影,同时Xgboost在工业届也有着广泛的应用,本文以Titanic数据集为研究对象,简单地探究Xgboost模型建模过程,同时 ...

  6. This file's format is not supported or you don't specify a correct format. 解决办法

    string path = @"c:\请假统计表.xlsx"; Workbook workBook = new Workbook(); workBook.Open(path); A ...

  7. Fleet-运行一个高可用的服务

    运行一个高可用的服务 使用CoreOS最大的好处就是你可以以高可用的方式来运行你的服务.接下来我们将部署两个一样的Apache web server容器.然后,我们将通过让一台机器出现故障,fleet ...

  8. 3.Freshman阶段学习内容的确定

    我刷知乎.在知乎上答题的程序员,不是很牛逼就是更牛逼,说起各种系统.各种系统的各种版本.各种语言.数据库.算法.IT届的各种圣战都有板有眼.信手拈来.头头是道,不得不服.这导致了一些非常严重的问题:我 ...

  9. log4j.properties配置详情

    log4j: log for java 是Apache的一个开源项目! 00.将我们的日志信息,输出到指定的位置(控制台   文件中) 01.我们可以控制每一条日志的输出格式 02.我们设置日志信息的 ...

  10. java中循环的不同终止方式

    1.break:直接强行跳出当前循环,不再执行剩余代码.但在多重循环的情况下,若break在内层循环中,则仅仅终止了内层循环,外循环照常执行. 2.continue:仅仅终止此次循环. 3.retur ...