zoukankan      html  css  js  c++  java
  • 笔记--学习git命令(基本命令版)

      好像是之前看到过一篇推送,大概意思是说,学习一门语言最快的方法,就是参加这个语言的开源项目

      各大公司的招聘要求中,渐渐地也加入了一条要求:有github开源项目者优先

      所以,我的爬坡之路从参加开源项目开始,这篇文章将会记录我对git命令的学习

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      强烈推荐廖雪峰的 git教程 ,在动手之前,我是详细地看了一遍 ,算是对git有了一个整体上的认识,对于用svn的小伙伴儿们来说,

    这是很有必要的呦;git的安装及详细内容,我就不再赘述了,这里总结一下git常用命令,当做一个备忘

      1、创建版本库:git init

         创建版本库就是在本地找一个放代码的文件夹,然后让git帮你管理这些代码,这里的版本库是本地的哦

                 

        如果出来上面的画面,就说明你已经创建成功啦,这时候,你的文件夹下面,就会多出一个.git文件夹,是git用来做文件管理的,不可删不可改;

           2、添加文件到暂存区:git add 文件名 (git add test.txt)

        git跟svn有一个很大的区别,就是git有一个暂存区的概念,字面意思理解,就是“临时存储”区域;代码只有先被提交到暂存区,然后才能被提交到本地库;

        

        如果你一次编辑or新增了很多文件,当然不能一个一个add到暂存区啦,大家可以试下,如果只输入git add,不输入文件名,会提示什么?

        

        既然他都提示了,那就试下看  git add .   是什么效果喽;

        

        执行后,当前文件夹下的所有文件就都被提交到暂存区啦;

        看到这里,习惯使用svn的小伙伴会觉得,git  add操作好像并不太顺畅,我都不知道我提交了什么,也不知道提交成功没,所以第三个命令登场:

              3、查看工作区状态:git status

         这个命令可以显示出你当前工作区的状态是什么,哪些是新增,哪些有修改,哪些在暂存区需要提交到本地库等

        

             4、提交到版本库 git commit

        如果直接输命令git commit 显示如下

        

        因为git提交,是必须写message的,这里写了message后,先按Esc,在下面输入:wq,然后回车,你的message就会被提交了

        如果出现了 E45: 'readonly' option is set (add ! to override)  是因为你没有权限,把输入命令改为:wq! ,然后回车,强行提交即可

        

        执行带message的commit: git commit -m "你要提交的message"

        

        这里有个概念要讲下,git commit 命令提交的文件,是通过git add命令添加到暂存区的文件,没有先被提交到暂存区的文件,不会被commit

        如果想强行提交所有修改,则要给命令加一个参数

        即:git commit -a

        执行后,本地的所有修改,无论有没有提交到暂存区,都会被提交到本地库

        

        这里就很清晰地看出,为什么说git是记录每一次修改了;同一个文件,先增加一行,然后add,再增加一行,diff命令查看,就有两次修改;

         以上步骤,你就完成了代码托管(关联git)---> 工作区提交到暂存区 ---> 暂存区提交到本地库 的操作,下面我们再看看这个工作流程中的异常流

         5、查看修改:git diff

        这个不解释,就是查看本地开发版本与暂存区版本的区别

       6、撤销add:git reset filename

        如果你在commit之前,想把之前add到暂存区的文件撤回来不提交,就可以用这个命令

      

     7、用最新的提交覆盖本地修改过的文件:git checkout (git checkout -- filename);

      如果本地修改了文件,然后这时候产品需求变了,不要这个功能了,那我们可以用这个命令,把本地代码还原到最新一次提交的状态。

      也就是丢弃本地的更改。当然,你也可以手动更改,但是用命令会感觉牛逼很多,有种一键还原的感觉,哈哈

      

    8、删除文件 git rm filename

      通常情况下,我们习惯用图形界面删除文件,但是对于代码托管来说,这时候你删除的,是你本地

      的文件,在版本库里,这个文件,还是存在的。如果是svn,本地commit一下,代码库里的这个文件就被删掉了

      那我们就试试看,用svn的套路,在本地用鼠标删除了文件,然后再commit一下,是什么状态

      

      看来对于git来讲,删除是一个比较敏感的操作,所以需要特定的命令去单独操作,下面有请git rm登场

           

      注意:git rm命令,是删除文件在代码库的存在关系,还需要执行git commit 命令,才能真正删掉代码库中的这个文件

      总结:

        git rm 会将条目从暂存区中移除。这与 git reset HEAD 将条目取消暂存是有区别的。

        "取消暂存"的意思就是将暂存区恢复为我们做出修改之前的样子。

           默认情况下,git rm filename 会将文件从暂存区和本地删除。如果你要在本地留着该文件,可以使用 git rm --cached

    9、版本回退 git reset --hard commitId

      版本回退是一个不常用但是却很重要的命令,往往伴随着大bug和大问题出现。。。。(随便发发牢骚,勿喷)

      git的版本回退很快,因为她只是改变了当前工作区的指针而已,详情还是请参考廖雪峰老师的详细git教程,通俗易懂。

      这里就直接截图记录:

        

    ps:最近需求变多,没什么时间整理记录,等有空闲了,再研究多人协同工作相关命令

        

      

      

                 

       

  • 相关阅读:
    linux打开window文件出现乱码 修正
    深入理解计算机系统 第2章 信息的表示和处理
    算法导论 第六章 堆排序 习题6.58 k路合并排序
    python 的二进制、八进制、十六进制数表示
    算法导论 第二章 合并排序-分治算法
    在Emacs中用ibus输入法切换输入法问题
    python round(x[, n])函数
    算法导论 第六章 堆排序
    普林斯顿算法课第四周作业_8Puzzle
    webshell 提权思路
  • 原文地址:https://www.cnblogs.com/solaZhan/p/7069772.html
Copyright © 2011-2022 走看看