zoukankan      html  css  js  c++  java
  • Git基础介绍和使用

    GIT介绍  

    Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。Git 是根据GNU通用公共许可证版本2的条款分发的自由/免费软件,安装参见:http://git-scm.com/

    GitHub是一个基于Git的远程文件托管平台(同GitCafe、BitBucket和GitLab等)。

    Git本身完全可以做到版本控制,但其所有内容以及版本记录只能保存在本机,如果想要将文件内容以及版本记录同时保存在远程,则需要结合GitHub来使用。使用场景:

    • 无GitHub:在本地 .git 文件夹内维护历时文件
    • 有GitHub:在本地 .git 文件夹内维护历时文件,同时也将历时文件托管在远程仓库

    其他:

        集中式:远程服务器保存所有版本,用户客户端有某个版本
        分布式:远程服务器保存所有版本,用户客户端有所有版本

    git工作原理

    git的工作原理还是比较简单的,当我们创建了本地代码仓库后,会在本地代码仓库的根目录中生成一个.git的隐藏文件。

    .git为一个文件目录,又叫做版本库。在本地代码仓库文件夹中,除.git目录之外的所有与.git同级的目录及其子目录都叫做工作区。

    工作区(Working Directory):仓库文件夹里出.git目录以外的内容

    版本库(Repository):.git目录,用于存储记录版本信息

    暂缓区(stage),分支(master):git自动创建的第一个分支

    HEAD指针:用户指向当前分支

    git add和git commit的原理

    git add:把文件修改或者新添加的的文件添加到暂存区

    git commit:把暂存区的所有内容提交到当前分支

    下图就可以解释git add 和 git commit的原理:

    git常用的命令

    git init 初始化
     
    git add filename.txt  添加要往远程传的文件到一个临时列表
     
    git commit -m "xxx"  # 说明为啥上传
     
    git push origin master  # 上传
     
    git clone https://github.com/triaquae/Weibo  # 克隆远程的项目
     
    git status  查看修改结果
     
    git log  查看修改过几次
     
    git reflog  查看修改过后所有历史操作
     
    git log --pretty=oneline  查看修改过的所有版本
     
    git reset --hard 加版本  回滚到哪个版本
     
    git reset --hard head^  回滚到上个版本
     
    git reset --hard head^^  回滚到上上(回滚到上两个)个版本
     
    git reset HEAD filename.txt  撤回提交到暂存区的操作
     
    git checkout --filename.txt  撤销工作区操作(可以多个文件)
     
    git rm filename.txt  删除暂存区
     
    git checkout -b "dev"  创建分支(引号里是分支名)
     
    git push origin xxx  提交到分支库(xxx表示分支名)
     
    git branch  查看分支
     
    git checkout dev  切换到分支库
     
    git merge dev  合并分支库到主库(dev表示分支库)
     
    git pull  拉远程库的文件
     
    git stash  缓存工作区的内容
     
    git stash list  查看暂存区的内容
     
    git stash apply  把暂存区的内容恢复到工作区
     
    git stash pop  把暂存区的内容恢复到工作区并且把暂存区的删除
     
    版本回退:
    git reset --hard HEAD : 回退到当前的版本
    git reset --hard HEAD^ :  回退到上一个版本
    git reset --hard HEAD^^ : 回退到上上个版本
    git reset --hard HEAD~100 : 回退到前100版本
    git reset --hard 版本号(前5位)
    我们修改或者新添加的文件起初是处于工作区,通过git add命令可以把工作区的文件移动到版本库中的暂缓区(stage)。
    
    处在暂缓区(stage)的代码可以通过git commit -m “提交的注释” 提交到版本库中的分支(master)。
    
    处在分支(master)中的代码可以通过git push命令push到共享版本库。
    
    注意:只有分支中的文件才可以push到共享版本库。
    

      

  • 相关阅读:
    Linux网络编程必看书籍推荐
    SpringMVC DispatcherServlet初始化过程
    freemarker写select组件(五)
    hdu 1009 FatMouse' Trade
    新IOS编程语言 Swift 新编译器Xcode6
    NoSQL数据库:数据的一致性
    POJ 3041 Asteroids
    POJ 3342 Party at Hali-Bula (树形dp 树的最大独立集 判多解 好题)
    __repr__与__str__
    HDU 4950 Monster(公式)
  • 原文地址:https://www.cnblogs.com/Vee-Wang/p/7543868.html
Copyright © 2011-2022 走看看