github git使用总结

本文介绍了Git的常用命令,如查询提交状态、文件差异、历史记录、版本回退等,还阐述了版本回退原理、工作区和暂存区的概念,以及文件存入版本库的步骤。此外,还涉及了Git进阶的其他命令和忽略文件的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用命令

  • 查询提交状态

    $ git status       显示提交的状态:已经添加,等待提交事务的文件(绿色字体表示);已经改变但是没有添加(not staged)的文件(红色字体表示);
    
  • 查询该文件和git仓库中的文件的区别,即做了什么修改

    $ git diff <文件全称>      如果已经add了,就打印不出有什么修改了,这一步骤应该在add之前,即添加之前可以用来看看做了什么修改。
    
  • 打印历史记录

    $ git log
    Commit xxx              commit id 版本号
    Author:xxx<xxx@xxx.com> 提交人和邮箱
    Date:xxx                提交的时间
        XXXXXXXXXXXXXX      提交的信息(所以说,提交信息很重要!!!)
    $ cat <文件全名称>      显示整个文件的内容
    
  • 版本回退

    $ git reset --hard head^
    在Git中,HEAD表示当前版本,就是最新提交的版本,即使用git log打印出来的位于第一位的版本,上一个版本就是HEAD^,上上个版本就是HEAD^^,  
    当前向上100个可以写成HEAD~100。当然,还有一种方式就是直接使用commit id来代替HEAD^,比如版本号是cadab353589f3eef075817b890dafe8b722d802b,  
    那么就可以直接使用命令:  
    $ git reset --hard cadab353589f            使用前几位表示即可,git会自动查找  
    注:版本回退以后,使用git log打印的历史记录都是回退版本之前的数据,之后的都没有了,不过放心,git总有后悔药可以吃哒~  
    1.如果命令行窗口没有关闭,直接去前面找commit id即可;  
    2.如果命令行窗口关闭了,或者第二天后悔了,可以进入到该目录下,使用git reflog命令来查看以前的每一次命令,可以获得每次提交的commit id,  
    就可以版本回退了。  
    $ git reflog                           可以查看命令历史,包含提交的commit id  
    
  • 版本回退原理

    简单讲,就是说只要进行了代码提交,git内部都会按照时间节点进行记录,每条记录都有commit id作为唯一标识(就像是链表每个节点都有唯一的地址一样),HEAD总是指向当前版本(就像指针一样)。所谓的版本回退,仅仅是讲Head从当前版本指向了指定的版本,然后将工作区的文件也修改了。

  • 工作区和暂存区
    Git和其他版本控制系统的一个不同之处就是有暂存区的概念。、
    工作区
    就是电脑里能看到的目录
    版本库
    工作区中有一个隐藏目录.git,就是Git的版本库,版本库里存放了很多的东西,其中最重要的就是state(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
    前面讲到,将文件存入到Git版本库里,分两步执行:
    第一步:用git add命令将工作区的修改文件添加到暂存区; (多次操作)
    第二步:用git commit命令将暂存区的所有修改内容提交到当前分支。(事务提交,包含第一步多次操作,注意,不在暂存区的修改不会被commit)
    一旦事务提交之后,如果对工作区没有做什么修改,那么工作区就是干净的。
    因为创建Git版本库的时候,Git自动创建了一个master分支,所以现在git commit 就是往master分支上提交事务。

git进阶

  • 其他命令

    git remote –v   显示远程分支的名称和url
    
  • 忽略文件

    有一些文件并不能上传到git上。
    1.Android Studio自动生成配置文件:不能上传到git上,否则的话,如果你的同事下载下来,但是它的	  studio(gradle)版本和你的不一样,  或者其他配置的各种路径不一样,就需要重建项目,严重的话,根本无法重建项目,一片爆红!网上的方法也解决不了。
    2.保存了数据库密码或者什么不能上传的文件;
    ......
    所以需要在项目的根目录下创建一个名称为.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。  
    不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。
    
    忽略文件的原则是:
    1.忽略操作系统自动生成的文件,比如缩略图等;
    2.忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,  
    比如Java编译产生的.class文件;
    3.忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
    
    想知道忽略那些文件吗,很简单,找个大神的github,看看他的项目中怎么写的,就ok了!!!
    例如,下面是我从张鸿祥哪里copy的,仅做参考:
    /captures
    
    # Built application files
    *.apk
    *.ap_
    
    # Generated files
    bin/
    gen/
    
    # Gradle files
    .gradle/
    /build
    /*/build/
    
    # Local configuration file (sdk path, etc)
    local.properties
    
    # Proguard folder generated by Eclipse
    proguard/
    
    # Log Files
    *.log
    
    # Eclipse project files
    .classpath
    .project
    .settings/
    
    # Intellij project files
    *.iml
    *.ipr
    *.iws
    .idea/
    
    # System files
    .DS_Store
    

文章内容截取自 Git使用总结(包含Git Bash和Git GUI的使用)(转自CSDN)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值