zoukankan      html  css  js  c++  java
  • Git学习使用

    Git

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

    Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

    Git 与 SVN 区别

    Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

    Git 与 SVN 区别点:

    • 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
    • 2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
    • 3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
    • 4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
    • 5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

    安装配置

    官网下载安装即可。

    Git Bash:Unix与Linux风格的命令行,最推荐使用。

    Git CMD:Windows风格的命令行。

    Git GUI:图形界面的Git。

    # 设置提交代码时的用户信息
    $ git config --global user.name "[name]"
    $ git config --global user.email "[email address]"
    
    # 显示当前的Git配置
    $ git config --list
    
    # 添加当前目录的所有文件到暂存区
    $ git add .
    
    # 提交暂存区到仓库区
    $ git commit -m "[message]"
    
    git push origin master
    
    #密钥
    ssh-keygen -t rsa -C "这里换上你的邮箱"
    
    #历史记录
    history
    
    #配置信息
    git config -l
    git config --global --list  #用户配置
    git config --system --list  #系统配置
    

    系统配置文件在:安装目录Git/etc/gitconfig

    用户配置文件在:C盘,当前用户,.gitconfig

    基本理论

    Git本地有三个工作区域,工作目录,暂存区,资源库(本地仓库),如果加上远程的git仓库,就可以分为四个工作区域。

    工作目录----git add----暂存区----git commit----本地仓库----git push----远程仓库。

    远程仓库----git pull----本地仓库----git reset----暂存区----git checkout----工作目录。

    git init:创建全新的仓库。

    git clone 地址:从远程仓库克隆到本地。

    Git文件操作

    文件的四种状态:

    • Untracked:未跟踪,此文件在文件夹中,但并没有加到git库,不参与版本控制,通过git add . 状态变为Staged。
    • Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中的完全一致,这种类型的文件有两种去处,如果它被修改就变为modefied,如果它被git rm,移除版本库,则成为Untracked文件。
    • Modefied:文件已修改,但没有其它的操作,这个文件也有两个去处,通过git add . 进入暂存staged状态,使用git checkout,则丢弃修改,返回unmodify,这个git checkout即从库中取出文件,覆盖当前修改。
    • Staged:暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地的文件变为一致,文件为Unmodify状态,执行git reset HEAD filename取消暂存,文件状态为Modified。

    git status:查看文件状态

    忽略文件:有时候我们不想将某些文件纳入版本控制中,比如数据库文件,临时文件等。

    在主目录下建立 .gitignore 文件,此文件有以下的规则:

    1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
    2. 可以使用Linux的通配符,例如:星号(*)代表任意多个字符,问号代表一个字符,方括号[ ]代表可选字符范围,大括号()代表可选的字符串等等。
    3. 如果名称的最前面有一个!号,代表例外规则,将不被忽略。
    4. 如果名称的最前面是一个路径分隔符(/),表示忽略的文件在此目录下,而子目录中的文件不忽略。
    5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
    *.txt   #忽略所有的.txt结尾的文件
    !lib.txt  #lib.txt除外
    /temp   #仅忽略项目根目录下的TODO文件,不包括其它目录temp
    build/   #忽略build下的所有文件
    doc/*.txt  #忽略 doc/notes.txt但不包括doc/server/arch.txt
    

    使用码云

    1. 注册登录码云

    2. 设置本机绑定SSH公钥,实现免密登录。(C/user/adminnistrator/.ssh)

      ssh-keygen -t rsa -C "邮箱":生成公钥

    3. 将公钥信息添加到码云SSH中。

    4. 使用码云创建一个仓库。

    IDEA集成Git

    1. 新建项目。(将远程下载的项目拷贝到新建的项目中,拷贝的颜色变红)

    2. 修改文件,使用IDEA操作git。

      • 添加到暂存区
      • commit提交
      • git push到远程仓库
    3. 提交。

    Git分支

    Git分支中常用的命令

    #列出所有的本地分支
    git branch
    
    #列出所有的远程分支
    git branch -r
    
    #新建一个分支,但依然停留在当前分支
    git branch [branch-name]
    
    #新建一个分支,并切换到该分支
    git checkout -b [branch]
    
    #合并指定分支到当前分支
    git marge [branch]
    
    #删除分支
    git branch -d [branch-name]
    
    #删除远程分支
    git push origin --delete [branch-name]
    git branch -dr [remote/branch]
    

    如果同一个文件在合并分支时都被修改了则会引起冲突,解决的办法就是修改冲突文件后重新提交。选择要保留哪一个。

    master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作。工作一般会在新建的dev分支上工作,工作完后,比如要发布,或者dev分支代码稳定后可以合并到主分支master上。

  • 相关阅读:
    css属性操作2(外边距与内边距<盒子模型>)
    css的属性操作1
    css伪类
    属性选择器二
    属性选择器1
    03_MySQL重置root密码
    02_Mysql用户管理之Navicat下载及安装
    18.扩散模型
    17.广播模型
    16.友谊悖论
  • 原文地址:https://www.cnblogs.com/zhou-zr/p/14698411.html
Copyright © 2011-2022 走看看