zoukankan      html  css  js  c++  java
  • 对git的理解及常用指令

    以前总听说git【分布式版本控制系统】自己愣是搞不懂它到底要干哈~什么叫版本控制系统根本理解不了。现在工作需要必须要用到,结果好像就突然懂了git是干什么滴。

    所以!原理这个东西的理解是要建立在大量的练习使用的基础上的!

    版本库即仓库,英文名repository,里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

    初始化一个本地版本库: git init     (我们一般会创建一个文件夹,进入该文件夹后执行该指令,执行该指令后,该文件夹就成为了工作区

    一般我们平时使用的大多是:(顺序也大致如下)(在master分支下)

    git pull  ——>  先将远程版本库中的其他修改pull到本机

    git status  ——>  查询master分支下本机的代码状态(会显示有修改的文件名、新添加的文件名)

    git diff  ——>  显示你具体修改了哪些部分

    git add filename1 filename2...  ——>  将修改后的代码添加到版本库的index中

    git commit -m "XXXXX"  ——>  将index中的代码全部提交到master中,commit后,index被清空

    git push  ——>  提交到远程仓库

    【提交过程结束】

    当你init后,会生成一个.git文件夹,事实上这个.git就是版本库。这里面存着很多信息,最重要的就是:index暂存区、git为我们创建的第一个分支master、指向master的一个指针HEAD

    add ——> index, commit ——> master, push ——> 远程

    在分支下提交代码的过程:

    git pull

    git branch nyn  ——>  创建分支nyn

    git checkout nyn  ——>  切换到分支nyn

    git status

    git add filename1 filename2...

    git commit -m "XXX" 

    git push origin nyn  ——>  提交该分支下的全部修改到远程(不能使用git push哦~)

    Git把每次提交修改串成一条时间线,这条时间线就是一个分支。HEAD严格来说不是指向提交,而是指向当前分支,因为我们最初没有添加新的分支,一直提交到master中,因此,我们说HEAD指向master。当我们创建了分支dev,即Git新建了一个指针叫dev,此时dev指向master相同的提交,现在切换指针指向把HEAD指向dev,就表示当前分支在dev上,创建分支后仅仅是改变了HEAD指向,工作区的文件没有任何更改。

    那么我们后续对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:

    将dev合并到master:

     

     

    删除分支dev:

    与上述流程相关的分支指令:

    git branch  ——>  查看当前的分支

    git branch nyn

    git checkout nyn  ——>  切换到分支nyn(即HEAD指向了nyn)

    git chechout master  ——>  切换回master(即HEAD指向了master)

    git merge nyn  ——>  将分支nyn与当前分支master合并(即HEAD指向了master)

    git branch -d nyn  ——>  删除分支nyn(即HEAD指向了master)

    最近还用到的一些指令:

    git log  ——>  可查看提交历史

    git reflog  ——>  可查看输入的命令历史

    (以下这两个还没有仔细研究,还有待继续学习,后期再补~)

    git reset --hard commitID  ——>  版本间穿梭

    git checkout -- filename  ——>  丢弃修改

    git还有很多东西需要学,学了新东西再补笔记咯~笔记中的示意图全部来自于http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000。有兴趣从头学的小伙伴移步链接啦~

  • 相关阅读:
    The network bridge on device VMnet0 is not running
    QuickContactBadge去掉三角
    在Android Studio中调用so中的方法
    Android Studio动态调试smali代码
    用AndroidStudio创建so
    Android逆向 破解第一个Android程序
    Java配置----JDK开发环境搭建及环境变量配置
    AndroidKiller报.smali文件丢失问题解决(关闭Android Studio的Instant Run)
    Android逆向 Android平台虚拟机
    Android逆向 APK文件组成
  • 原文地址:https://www.cnblogs.com/ningyn0712/p/6094233.html
Copyright © 2011-2022 走看看