git 详解

愿文连接git

git详解

1,git结构

  • 1.1 工做区
    工做区就是写代码的地方,若是有新增修改删除文件都是在工做区发生变化。
    工做区的文件能够经过git add 命令将文件提交到暂存区。
  • 1.2 暂存区
    暂存区就是用来临时存储代码的一片区域,是已经修改了可是尚未提交,未来能够提交到本地库也能够撤回来。
    经过git commit 命令能够将暂存区的文件提交到本地仓库。
  • 1.3 本地库
    本地库就是存储的实实在在的历史版本
    能够经过git push命令来将本地库的文件推送到服务器。

2,git命令

  • 2.1 本地仓库初始化
    命令:git init
    做用:能够进行本地仓库的初始化,初始化事后会在本地生成一个.git的隐藏文件夹里面的内容以下。
  • 2.2 设置签名
    形式:github

    用户名:lc
        email:test@163.com

    做用:缓存

    区分不一样开发人员的身份

    命令:服务器

    项目级别/仓库级别,仅在当前本地仓库范围内有效。
        git config user.name lc
        git config user.email test@163.com
        
        系统级别:登录当前操做系统的范围有效。
        git config --global user.name lc
        git config --global user.email test@qq.com
  • 2.3 状态查看操做
    命令:
    git status
    做用:
    查看工做区和暂存区的内容
  • 2.4 添加到暂存区操做
    命令:
    git add [file name]
    做用:
    将工做区的“新建/修改”提交到暂存区
  • 2.5 提交操做
    命令:
    git commit -m "msg"
    做用:
    将暂存取的文件提交到本地仓库
    加上额外参数的做用
    -a
    git commit -a -m "msg" :加上-a参数能够直接将工做区的内容提交到本地仓库,不用走暂存区,减小添加操做。
  • 2.5 查看本地仓库版本记录
    基本参数
    命令:git log
    做用:显示最完整的日志信息
    基本参数
    命令:git reflog
    做用:显示比较简洁的git记录,而且显示HEAD次数
    加参数 --oneline
    命令: git log --oneline
    做用:将全部的日志信息显示在一行
    加参数 --pretty=oneline
    命令: git log --oneline
    做用:将全部的日志信息显示在一行
  • 2.6 版本前进后退
    基于索引值操做:能前进能后退
    git reset --hrad [索引值]
    git reset --hard 63b6a76
    使用^符号操做:只能后退
    git reset --hard HEAD^
    这里有几个^号就是后退几步
    使用~符号操做:只能后退
    git rest --hard HEAD~3
    这里波浪线后面的数值就是后退的步数
  • 2.7 reset的三个参数对比
    一,--soft参数
    仅在本地仓库移动HEAD指针

    二,--mixed参数
    在本地仓库移动HEAD指针
    重置缓存区fetch

    三,--hard参数
    在本地仓库移动HEAD指针
    重置缓存区
    重置工做区spa

  • 2.8 删除文件并找回
    git reset --hard [指针位置]
    指针位置:历史版本记录或者当前
  • 2.9 比较文件差别
    git diff [文件名]操作系统

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

    git diff [版本记录] [文件名]指针

    将指定文件和版本记录里面的文件进行比较
  • 3.0 建立远程库
    在github上面能够建立一个远程库
  • 2.3.1 建立本地远程库别名
    git remote add [远程库别名] [远程库地址]
    能够给远程库在本地取一个别名,可是推送代码到远程库的时候远程库的别名会采用origin
  • 2.3.2 查看远程库
    使用
    git remote -v
    能够查看远程库
  • 2.3.3 推送文件到远程库
    git push [远程库别名] [远程库分支]
    能够将文件提交到远程库
  • 2.3.4 git 克隆远程库
    git clone [远程库地址]
    能够将文件从远程库拉取下来,
    拉下来有3个效果:
    1,自动初始化本地库
    2,获取完整代码
    3,获取远程库别名信息
  • 2.3.5 git 远程仓库拉取文件
    git pull = fetch + merge
    拉取:git fetch [远程库] [远程分支名]
    合并:git merge [远程库/远程分支名]
  • 2.3.6 git 远程分支关联
    使用git在本地新建一个分支后,须要作远程分支关联。若是没有关联,git会在下面的操做中提示你显示的添加关联。

    关联目的是在执行git pull, git push操做时就不须要指定对应的远程分支,你只要没有显示指定,git pull的时候,就会提示你。rest

    解决方法就是按照提示添加:日志

    git branch --set-upstream-to=origin/remote_branch your_branch

    其中,origin/remote_branch是你本地分支对应的远程分支;your_branch是你当前的本地分支。

  • 2.4.0 建立分支
    git branch [分支名]
  • 2.4.1 查看分支
    git barnch -v
    git branch -a 查看全部分支
  • 2.4.2 切换分支
    git checkout [分支名]
  • 2.4.3 合并分支
    第一步:须要切换到想要合并代码的分支上面
    第二步:使用git merge [分支名]来合并

    例如:当前所在分支是dev,如今dev上面作了修改,master分支想要合并dev上面的代码,就要切换到master分支上面进 行merge操做 git merge dev

3,git工做流

  • git 集中式开发
    集中式开发就是全部人都在同一个分支上面开发,而后将代码提交到同一个远程分支上面
  • git flow 工做模式
    开发中使用的最多的也是这种
    有一个主干分支,有一个线上分支,还有一些不一样功能的分支,好比专门改bug的分支
    主干分支主要用来合并代码。
    线上分支合并从主干分支的代码。
  • git Forking 工做模式在git flow的基础上,能够接受不受信任和保护的代码。至关于就是跨团队开发了。
相关文章
相关标签/搜索