zoukankan      html  css  js  c++  java
  • git常见操作和git原理

    一、最基本操作

    1.状态查看

    git status

    查看工作区和暂存区的状态。

    2.添加操作

    git add 文件名

    将工作区的修建或修改添加到暂存区

    3.提交操作

    git commit -m "备注信息" 文件名

    暂存区提交到本地库

    二、查看历史记录

    1.查看日志

    git log

    完整显示日志,b向上翻页,q退出

    git log --pretty=online

    每个历史记录显示一行(哈希值、提交的备注信息)这里的哈希值你可以把它当作版本号理解

    git log --online

    每个历史记录显示一行,且哈希值只显示一部分。(哈希值、提交的备注信息)

    git reflog(常用)

    显示历史记录包含退回版本所需次数。(哈希值、退回版本所需次数、提交的备注信息)

    2.版本前进后退

    本质:指针HEAD指向不同的哈希值(版本号)

    ①基于索引值操作(推荐)

    git reset --hard 局部索引值

    ②使用^符号。

    只能后退

    git reset --hard HEAD^^^

    退回多少次就有多少亦或符号上面就是退三次

    ③使用~符号

    只能后退

    git reset --hard HEAD~3

    后退三步

    reset还有其他参数,比如soft 、mixed但是用得很较少

    三、删除文件并找回

    前提:删除前文件存在时的状态提交到了本地库。

    操作:git reset --hard[指针位置]

      删除操作已经提交到本地库:指针位置指向历史记录。

      删除操作尚未提交到本地库:指针位置使用HEAD

    四、比较文件差异

    1.git diff [文件名]

    将工作区的文件和暂存区的文件进行比较。

     

    2.git diff [本地库中历史版本][文件名]

    将工作区中的文件和本地库历史记录比较

     

    3.若不带文件名比较多个文件。

     五、分支

    分支是在控制过程中,使用多条线同时推进多个任务。

    1.操作分支

    ①创建分支

    git branch [分支名字]

    ②查看分支

    git branch -v

    ③切换分支

    git checkout[分支名]

    ④合并分支

    第一步:切换到接受修改的分支(被合并,被增加新内容)上   

    git  checkout[分支名]

    第二步:执行merge命令

    git merge [有新内容的分支名]

    2.分支冲突

    ①冲突的表现

     ②冲突的解决

    第一步:编辑文件,删除特殊符号

    第二步:把文件修改到满意程度

    第三步:git add [文件名]

    第四步:git commit -m "日志信息" 

      此时的commit不能带具体文件名

    六、git基本原理

    哈希是一个系列的加密算法,各个不同的哈希算法加密程度有不同但是有以下共同点:

    ①加密结果长度固定。同一个哈希算法,输入数据不同,输出加密结果长度一样。

    ②哈希算法确定。输入数据确定,输出加密结果不变。

    ③哈希算法确定。输入数据改变,输出结果必变化,且变化很大。

    ④哈希算法不可逆。

    git底层采用SHA-1算法验证文件,以此保证数据完整。

    七、git和github交互命令

    初始化本地仓库

    git init

    增加别名

    git remote add 别名 远程库地址

    推送

    git push <远程主机名> <本地分支名>  <远程分支名>

    克隆

    git clone 远程库地址

    拉取并合并

    git pull <远程地址别名>  <远程分支名>

    pull = fetch + marge

    只拉取不合并

    git fetch <远程地址别名>  <远程分支名>

    ps:有用麻烦点个赞。

  • 相关阅读:
    2020寒假学习进度报告1
    Linux系统的安装和常用命令
    scala安装教程及简单配置
    03.大型数据库应用技术课堂测试3(java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V)
    2019暑假第三周(HDFS和HBase)
    java.io.FileNotFoundException: /usr/local/hadoop/logs/fairscheduler-statedump.log(权限不够)解决方案
    2019暑假第二周(hadoop在个人电脑上的搭建)
    Flask 入门(第一篇)
    rest framework 节流
    rest framework 权限
  • 原文地址:https://www.cnblogs.com/JunhanLin/p/12895722.html
Copyright © 2011-2022 走看看