zoukankan      html  css  js  c++  java
  • Git常用命令使用介绍

    上一篇文章已经介绍了如何在不同系统上安装Git,接下来详细介绍Git中常用的命令

    获取仓库

    获取仓库的方式有两种:第一种是新建了一个项目,并初始化为Git仓库;第二种是获取已有的Git仓库,比如从GitHub上克隆一份某项目的镜像仓库

    初始化新仓库

    初始化一个新仓库的方法很简单,在项目文件夹下打开Git Bash,执行$ git init命令,文件夹中会多出一个.git文件夹,这是新仓库就创建成功了

    克隆已有仓库

    克隆仓库也很简单,比如要克隆Vuejs的仓库,需要$ git clone命令

    $ git clone https://github.com/vuejs/vue.git
    

    记录更新

    在新初始化的仓库中,新增a.txtb.txt两个文件,随便写点东西

    内容添加完成后,使用$ git add命令跟踪这两个文件的变化

    # 需要跟踪的文件
    $ git add a.txt b.txt
    
    # 或者跟踪所有文件
    $ git add .
    

    指定完需要跟踪的文件后,使用$ git commit命令暂存已修改的文件。文件暂存的目的是为了以后可以随时回到这次的修改

    $ git commit -m "初始化"
    

    文件暂存后,如果又修改了文件内容,只需要再次执行$ git add$ git commit命令,或者执行$ git commit -am命令,它是前两个命令的合成版

    查看修改信息

    $ git status命令可以查看状态的变化信息,$ git diff可以查看具体发生了哪些变化

    忽略某些文件

    在添加追踪文件时,通常使用$ git add .,这种方式会追踪文件夹下的所有文件,但有的时候需要忽略某些文件,这个时候可以配置.gitignore文件

    在项目目录下新建一个.gitignore文件,可以自定义不需要跟踪的文件,文件格式规范如下:

    1、所有的空行,或者以注释符号 # 开头的行都会被 Git 忽略

    2、可以使用标准的glob模式匹配

    3、匹配模式最后跟反斜杠(/)说明要忽略的是目录

    4、要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反

    glob模式是指shell所使用的简化了的正则表达式,星号*匹配零个或多个任意字符;[abc]匹配任何一个列在方括号中的字符;问号?只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9]表示匹配所有0到9的数字)

    # 忽略所有 .md 结尾的文件
    *.md
    
    # NOTE.md 不会忽略
    !NOTE.md
    
    # 仅仅忽略项目根目录下的 dist 文件,不包括 subdir/dist
    /dist
    
    # 忽略 build/ 目录下的所有文件
    build/
    
    # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
    doc/*.txt
    
    # 忽略 doc 文件夹下的所有txt文件,包括子目录
    doc/**/*.txt
    

    如果修改.gitignore后发现无效,先执行git rm -r --cached .清除缓存

    查看更新记录

    $ git log命令可以查看commit记录

    修改提交

    当一个功能开发完毕,我们会执行commit操作。commit完成后,突然发现了一些小问题需要立即修改,但是这些修改不值得单独执行一次commit,这时就可以使用修改提交

    $ git commit -am  "完成支付功能"
    # 修改一些问题,再次提交
    $ git add .
    $ git commit --amend
    

    撤销提交

    如果你不小心把用户名和密码提交到了远程,可以通过$ git reset --soft HEAD~1命令撤销最近一次提交,这种方式会保留你的修改,只是删除了一次提交记录。然后把私有信息删除后再提交到远程就行了

    $ git reset --soft HEAD~1
    

    提交回滚

    有时候可能需要回退到某个历史提交,查看之前提交的代码,这时候可以使用$ git reset --hard <hash:7>命令

    # 查看提交记录
    $ git log --oneline
    
    # 回退得到指定版本
    $ git reset --hard fab66f8
    

    回滚后如果需要在回滚回去,可以这么做

    # 查看之前提交记录,找到hash值
    $ git reflog
    
    # 回退得到指定版本
    $ git reset --hard c747387
    
    # 注意: 提交到远程时,由于本地是落后的分支,直接push是不行的
    # 可以使用 `git push -u origin develop -f`强制推送,但是如果说别人已经修改了代码,会被覆盖掉
    

  • 相关阅读:
    主席树模板之区间问题
    简易版第k大(权值线段树+动态开点模板)
    Irrigation
    Petya and Array
    H. Pavel's Party(权值线段树)
    权值线段树入门
    位数差(二分)
    ZYB's Premutation(树状数组+二分)
    单调队列入门
    javaBean为什么要implements Serializable?
  • 原文地址:https://www.cnblogs.com/yesyes/p/15375794.html
Copyright © 2011-2022 走看看