Git使用-基础篇总结

作者: FoolishFlyFox | 来源:发表于2017-06-14 00:04 被阅读0次

    3个概念

    • 工作区
    • 暂存区
    • 仓库
    Git的3个区

    git获取帮助

    命令格式:git help <verb>

    例如,通过 git help commit 可以获得与提交相关的帮助;

    git的配置

    git config

    配置3种参数代表的作用域

    • git config --system : 全系统配置,对所有用户的所有仓库有效,配置信息写在etc/gitconfig中;

    • git config --global : 单用户配置,对当前用户的所有仓库有效,配置信息写在~/.gitconfig中;

    • git config --local : 默认配置方式,--local 可省略,表示本仓库适用,配置信息写在./.git/config中;

    配置内容

    • git config user.name xxx : 设置用户名;

    • git config user.email xxx@xx.com : 设置电子邮件;

    以上两条必须配置,每次commit时需要;

    • git config core.editor vim : 设置git默认使用的文本编辑器;

    • git config merge.tool kdiff3 : 设置归并发生冲突时,默认使用kdiff3编辑并解决冲突;

    查看配置内容

    • git config <key> : 查看指定项目的内容,如git config user.name 查看配置的user.name

    • git config --list : 查看所有的配置信息;

    Git 得到一个仓库

    初始化一个空的仓库

    • git init : 将当前目录初始化为一个仓库;

    • git init [目录名] : 将指定目录初始化为一个仓库;

    从现有仓库中克隆

    • git clone <url> : 从指定的 url 仓库克隆到本地;

    Git 文件操作

    常用命令

    命令 含义
    git status 查看仓库文件状态
    git add <文件名> 将指定文件加入暂存区, 文件名为 . 时表示当前目录都加入
    git commit -m '提交说明' 将暂存区内容提交到仓库
    git commit -a -m '提交说明' 直接将工作区的所有修改提交到仓库,不经过暂存区
    git rm <文件名> 删除文件,并提交至暂存区
    git rm --cache <文件名> 将文件从跟踪名单中删除,而不真的删除文件
    git mv file_from file_to 将文件进行重命名并提交至暂存区
    git reset HEAD <文件名> 将指定文件从暂存区放回工作区,与git add作用相反
    git checkout -- <文件名> 取消指定文件在工作区的修改(不可恢复)
    git commit --amend -m '新提交说明' 提交暂存区文件到最近一次提交,并修改该次提交的说明
    git commit --amend 提交暂存区文件到最近一次提交,不修改提交说明

    设置忽略的文件

    在仓库目录下创建.gitignore 文件,其编写方式为:

    # 忽略所有 .a 结尾的文件
    *.a
    # 不忽略文件 lib.a
    !lib.a
    # 忽略 build/ 目录下的所有文件
    build/
    

    说明:

    • # 在.gitconfig中表示注释;
    • 可以使用glob匹配(简化版正则表达)
    • 以反斜杠结尾表示匹配一个目录
    • 要忽略指定模式以外的文件或目录,可以在模式前加上 ! 取反。
    • .gitignore对状态为untracked的文件或目录有效,已经通过git add加入跟踪列表的保持跟踪,除非使用 git rm 进行删除,否则保持跟踪;
    • .gitignore 中若存在两行是冲突的,以后者的定义为主,例如:
    # 不忽略文本1.txt
    !1.txt
    # 忽略所有后缀为txt的文件
    *.txt
    

    则若目录下有一个文件名为 1.txt 的文件,git将会忽略该文件;

    要养成一开始就设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件

    glob语法

    符号 意义
    * 匹配0个或多个任意字符
    ? 匹配0个或1个任意字符
    [ ] 匹配中括号中的任意一个字符
    [abc]表示匹配a或b或c
    [起始符号-终止符号] 例如[0-9]表示匹配0、1、...、9任意一个字符

    查看提交历史

    • git log : 查看项目提交的历史,将会列出每次提交详细的SHA-1值,用户,邮件号,提交信息;

    • git log --pretty=oneline : 以单行形式显示项目历史,包含SHA-1值和提交信息;

    • git log --graph : 通过ASCII字符串表示简单图形,显示仓库的分化、衍合,不过比较丑,建议使用下一条命令;

    • gitk : 图形化显示仓库分化衍合,比较美观,能用这个就别将就用git log --graph

    总结

    所有之前提到的命令汇总如下,供回忆:

    • git help <verb>
    • git config user.name <用户名>
    • git config user.email <电子邮件>
    • git config core.editor <编辑器>
    • git config merge.tool <合并工具>
    • git config <项目名>
    • git config --list
    • git init
    • git init [目录名]
    • git clone <url>
    • git status
    • git add <文件名>
    • git commit -m ‘提交说明’
    • git commit -a -m '提交说明'
    • git rm <文件名>
    • git rm --cache <文件名>
    • git mv file_from file_to
    • git reset HEAD <文件名>
    • git checkout -- <文件名>
    • git commit --amend -m '新提交说明'
    • git commit --amend
    • git log
    • git log --pretty=oneline
    • git log --graph
    • gitk

    相关文章

      网友评论

        本文标题:Git使用-基础篇总结

        本文链接:https://www.haomeiwen.com/subject/xkgjqxtx.html