zoukankan      html  css  js  c++  java
  • git

    Infi-chu:

    http://www.cnblogs.com/Infi-chu/

    代码管理工具:
    1.代码管理工具作用:
        *防止代码丢失,做备份
        *代码版本的管理,可以进行多个节点的备份,在多个版本之间跳跃
        *可以方便的将代码在多人之间进行共享传输
        *多人开发时有各种模式可以方便代码管理

    2.什么是git:
        git是一个开源的分布式版本控制系统,可用于高效的管理大小项目

    3.分布式与集中式:
        分布式:
            每个节点都保存完整的代码,没有明确的中央服务器,节点之间项目推送下载代码,完成代码共享
        集中式:
            代码集中管理,每次完成的代码上传到中央管理器,然后再统一从中央管理器下载代码使用

    4.git特点:
        *git可以管理各种文件,特别是代码项目,多数情况下在Linux/Unix系统中使用
        *分布式管理,不同于集中式,这是git和svn的核心区别
        *git可以更好的支持分布式,方便多人协同工作
        *git分布式代码更加安全,方便多人协同工作,有全球唯一的commit版本号
        *git是开源的系统
        *使用git可以脱网工作,并且数据传输速度较快

    5.安装git:
        Linux/MacOS(Ubuntu系列):
            sudo apt-get install git
        Windows:
            找适当的版本
            msysgit.github.io(Windows下操作GitHub的工具)

    6.git配置:
        配置级别:
            1.系统中所有用户都可以使用该配置
                命令:
                    git config --system
                配置文件:
                    /etc/gitconfig
            2.当前用户可以使用该配置
                命令:
                    git config --global
                配置文件:
                    ~/.gitconfig
            3.当前项目可以使用该配置
                命令:
                    git config
        配置文件:
            项目文件/.git/config
            【注】再有冲突重复的情况下,优先使用范围小的配置

    7.git配置内容:
        1.配置用户名:
            sudo git config --system user.name 用户名
            创建密码
        2.配置邮箱:
            sudo git config --global user.email 邮箱
            【注】优先使用范围小的配置

    8.git操作:
        1.初始化仓库:
            git init
            在某个目录下初始化仓库后会自动产生.git目录。该目录下工作的所有文档都可以使用git进行管理。
        2.配置编译器:
            cd 项目目录
            git config core.editor sublime
        3.查看当前项目的配置信息:
            git config --list
        4.查看分支状态:
            git status
            默认工作分支是主分支master,可通过创建新的分支切换
            eg.
                echo "This is a git test file" > Readme.txt
        4.提交文件(工作区-->暂存区):
            git add 文件名1 文件名2
            git add *
            git add 目录名
            git rm --cached 文件名1    #取消暂存
        5.同步文件(暂存区-->本地仓库):
            git commit -m "说明性、描述性文字"
        6.修改文件:
            eg.
                echo "Add a test line!" >> Readme.txt
                git add Readme.txt
                git commit -m "update Readme.txt file"
        7.查看commit日志:
            git log    # 查看所有日志
            前七位是刚刚提交的码(ID),整体是全球唯一ID
            git log --pretty=oneline    #查看单行日志
        8.工作区文件与本地仓库的差异:
            git diff Readme.txt
        9.误删工作区文件,恢复该文件:
            eg.
                rm -rf Readme.txt
                git chechout Readme.txt
            【注】此时恢复的是在本地仓库备份的那个文件,之前在工作区改动的文件无法恢复。
        10.本地文件的移动和删除:
            与mv、rm命令的用法相同,区别就在于在开头处写一个git
            【注】无需add,直接提交
        11.丢弃工作区修改:
            git chechout -- Readme.txt
        12.版本控制:
            回到之前版本:
                git reset --hard HEAD^    #有几个上箭头(^)就回到上几个版本
                git reset --hard 七位ID    #回到这个7位ID的版本(指定版本)
            用最新的版本:
                查看所有历史版本号:
                    git reflog
                git reset --hard 七位ID    #commit操作中大括号数值最小的({})就为最新版本
                【注】HEAD可以理解为指针

    9.标签管理:
        定义:
            在当前位置添加快照,保存工作状态,一般用于项目版本的迭代。默认是在最新的commit-id处打标签。
        创建新的标签:
            git tag v1.0    #打标签
            git tag -d v1.0    #删除标签
            git tag v1.0 -m "version 1.0"    #打标签并附加信息
            git tag v0.9 七位ID    #在指定版本添加标签
            git show v1.0    #查看标签的基本信息(内容、基本操作等)
            git reset --hard v1.0    #恢复到某一指定标签的版本下

    10.临时工作区:
        定义:
            再有突发任务时,且当前工作不想提交时,可以创建临时工作区。或者在同一个项目中,有好几种想法,不知道哪一个更合适,可以创建临时工作区。
        操作:
            git stash    #保存工作目录
            git stash list # 查看保存工作目录列表
            git stash apply stash@{1}    #恢复到指定工作区(应用某一个工作区)
            git stash pop    #在最新的临时工作区,恢复到上一个临时工作区并删除
            git stash drop stash@{3}    #删除某一个工作区
            git stash clear    #删除所有的临时工作区
            【注】{0}为最新的临时工作区,数值越大越旧

    11.分支操作:
        什么是分支:
            分支是每个人获取原有代码,在此基础上创建自己的工作环境,单独开发,不会影响其他分支的操作,开发完成后在统一合并到主线分支中。
        分支的好处:
            *安全
            *不影响他人工作
            *自己控制进度
        查看当前分支:
            git branch    #前面有*的表示当前正在工作的区域
        创建分支:
            git branch miaomiao    #创建了喵喵分支
        切换分支:
            git chechout miamiao    #切换到喵喵分支
        提交分支:
            同之前
        同步分支:
            同之前
        合并至主分支:
            git chechout master    #切换至主要分支
            git merge miaomiao    # 将喵喵分支与主分支合并
            【注】
                1.合并过程中,如果没有冲突,则直接合并,合并之后,当前分支即为干净的分支
                2.如果产生冲突,则需要人为的选择在进行add、commit等操作
                3.在创建分支前,尽量保证当前分支是干净点,以减少冲突的发生
        删除分支:
            git branch -d miaomiao    #删除喵喵分支(合并后可用-d删除)
            git branch -D miaomiao    #没有合并的分支需要用-D删除(-D强制删除没有合并的分支)

    12.远程仓库:
        什么是远程仓库:
            远程主机上的仓库。实际上git是分布式的,每一台主机的git结构都是相似的,只是把其他主机的git仓库叫远程仓库
        创建共享仓库:
            1.创建目录
                mkdir gitrepo
            2.设置目录属主
                chown tarena:tarena gitrepo
            3.将该目录设置为共享的git仓库
                cd gitrepo
                git init --bare [项目名称].git
            4.设置本地仓库属主
                chown -R Infi_chu:Infi_chu [项目名称].git
        上传至共享仓库:
            git remote add origin 用户名@目标IP地址:/路径/xxx.git    #连接添加远程仓库
            git push -u origin master    #将主分支推至远程仓库(第一次推送需要-u)
            git remote rm [origin]    #删除远程主机名
            【注】
                1.origin是远程仓库默认的名称
                2.默认的协议是ssh协议
        获取远程仓库的项目:
            git clone 用户名@目标IP地址:/路径/xxx.git
        从远程仓库拉取分支或代码:
            直接拉取远程分支和当前工作区分支合并:
                git pull origin 分支名称
            拉取远程分支到本地,不合并:
                git pull origin 远程分支名:本地分支名
        代码退出和拉取:
            将本地代码推送至远程仓库:
                git push
                git push --force origin    #当本地版本比远程仓库版本旧时,用本地旧版本覆盖远程仓库的新版本
            从远程仓库更新代码:
                git pull
                git fetch    #如果有新的分支拉取到本地,不会和本地的分支合并

  • 相关阅读:
    让我们一起Go(二)
    通过Html5 Canvas画柱状图
    Node.js爬虫网页请求模块
    Javascript 面向对象编程
    菜单悬浮
    ie6支持的png格式图片的实现方法。
    兼容IE6 的:hover 鼠标经过效果
    VMware Workstation 8/9安装时出现脚本错误
    接上篇,Apache虚拟主机配置
    【Linux笔记】CentOS下找不到eth0设备的解决方法
  • 原文地址:https://www.cnblogs.com/Infi-chu/p/12066302.html
Copyright © 2011-2022 走看看