当前位置 博文首页 > 文章内容

    尚硅谷 Git&GitHUP视频教程

    作者: 栏目:未分类 时间:2020-09-14 11:01:06

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    clipboard

    一、git简介

    1、git结构

    clipboard

    2、git 和 代码托管中心

    代码托管中心的任务:维护远程库

    局域网环境下:

    GitLab 服务器

    外网环境下:

    GitHub

    码云

     

    3、本地库和远程库

    clipboard

    clipboard

     

    二、git 命令行操作

    1、本地库初始化

    git init

    clipboard

    .git 目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改

     

    2、设置签名

    形式

    用户名:tom

    地址 : houchen@163.com

    作用:区分不同开发人员的身份

    注意:这里设置的签名和登录远程库(代码托管中心)的账号密码没有任何关系

    命令:

    项目级别/仓库级别:仅在本地库范围内有效

    git config user.name xxx

    git config user.email xxx@xx,com

    信息保存的位置:.git/config

    clipboard

    系统用户级别:登录当前系统的用户范围

    git config --global user.name xxx

    git config --global user.email xxx@xx,com

    信息保存位置:~/.gitconfig 文件

    clipboard

    级别优先级

    就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名

    如果只有系统用户级别的签名,就以系统用户级别的签名为准

    二者都没有不允许

     

    3、基本操作

    1)状态查看操作:

    git status

    查看工作区,暂存区的内容

    2)添加操作( 工作区 --> 暂存区 )

    git add [filename]

    将工作区的“新建、修改” 添加到暂存区

    3)提交操作

    git commit -m "commit message" [file name]

    将暂存区的内容提交到本地库

    4)查看历史记录

    git log :

    显示所有提交过的版本信息

    clipboard

    空格向下翻页

    b 向上翻页

    q 退出

    git log --pretty=oneling

    clipboard

    git log --oneline

    clipboard

    git reflog :

    可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

    clipboard

    5)版本前进后退

    本质就是 HEAD指针的前进和后退

    clipboard

      ①、基于索引值操作【推荐】

      git reset --hard [版本的索引(hash值)]

      ②、使用 ^ 符号 : 只能后退

      git reset --hard HEAD^

      注:一个^表示后退一步,n 个表示后退 n 步

      ③、使用 ~ :只能后退

      git reset--hard HEAD~n

      后退n步

    6)reset 命令的三个参数对比

    soft 参数 :

    仅仅在本地库移动head指针

    mixed :

    在本地库移动head指针

    重置暂存区

    hard:

    在本地库移动head指针

    重置暂存区

    重置工作区

    7)删除文件并找回

    前提:删除前,文件存在时的状态提交到了本地库

    操作:git reset --hard [指针位置]

    删除操作已经提交到本地库:指针位置指向历史记录

    删除操作未提交到本地库:指针位置指向HEAD

     

    8、比较文件差异

    gitdiff[文件名]

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

    gitdiff[本地库中历史版本][文件名]

    将工作区中的文件和本地库历史记录比较

    不带文件名比较多个文件

     

    4、分支管理

    1)什么是分支

    在版本控制的过程中,使用多条线同时推进多个任务

    clipboard

    2)分支的好处

    同时并行推进多个功能开发,提高开发效率

    各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任 何影响。失败的分支删除重新开始即可

    3)分支的操作

    创建分支:git branch 分支名

    查看分支:git branch -v

    切换分支:git checkout 分支名

    合并分支:

    ① 切换到接受修改的分支上:git checkout 【j分支名】

    ② 执行merge 命令 : git merge 【分支名】

    解决合并分支时,产生的冲突

    冲突的表现

    clipboard

    冲突的解决:

    ① 编辑文件,删除特殊符号

    ② 把文件修改到满意的程度 保存退出

    ③ git add

    ④ git commit -m "日志信息" 【注意:此时不能带文件名】

     

    三、git 的基本原理

    1、哈希

    clipboard

    校验:文件经过网络传输后,是否改变

    clipboard

     

    2、git 保存版本的机制

    Git 把数据看作是小型文件系统的一组快照。每次提交更新时 Git 都会对当前 的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改, Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。所以 Git 的 工作方式可以称之为快照流。

     

    3、Git分支管理机制

     

    四、GitHub

    1、创建远程库

    clipboard

     

    2、创建远程库地址别名

    git remote -v :查看当前所有远程地址别名

    git remote add [别名] [远程地址]

    clipboard

     

    3、推送操作

    git push 【别名】【分支名】

     

    4、克隆操作

    git clone 【远程地址】

    此时克隆做了三个操作:

    1)完整的把远程库下载到本地

    2)创建 origin远程地址别名

    3)初始化本地库

     

    5、团队成员邀请

    clipboard

     

    6、拉取

    pull = fetch + merge

    git fetch 【远程仓库别名】【远程分支名】

    git merge 【远程仓库别名】【远程分支名】

    git pull 【远程仓库别名】【远程分支名】

     

    7、解决冲突

    如果不是基于 GitHub 远程库的最新版所做的修改,不能推送,必须先拉 取。

    拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可。

     

    8、跨团队协作

    clipboard

    1)fork

    2)clone到本地修改,然后推送到远程

    3) PullRequest

    4)审核代码

    5)合并代码

    6)将远程库修改拉取到本地

     

    五、Eclipse操作git

    1、工程初始化为本地仓库

    工程→右键→Team→ShareProject→Git

    clipboard

    设置本地库范围的用户签名

    clipboard

    一些图标的解析

    clipboard

     

    2、Eclipse中忽略git不需要进行管理的文件

    clipboard

    1)创建 Java.gitignore 文件

    # Compiled class file *.class # Log file *.log # BlueJ files *.ctxt # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files # *.jar *.war *.nar *.ear *.zip *.tar.gz *.rar # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* .classpath .project .settings target

    2)在~/.gitconfig 文件中引入上述文件

    [core]

    excludesfile=C:/Users/林汐/Java.gitignore

    clipboard

    clipboard

    3)检验配置是否起效

    clipboard

    clipboard

     

    3、推送到远程库

    clipboard

     

    4、将远程库的工程克隆到本地

    1)Import 项目 from git

    clipboard

    clipboard

     

    六、git 工作流

    1、集中式工作流

    clipboard

    2、GitFlow工作流

     

    3、Forking

    【演示】

    clipboard

    git config --global user.name xxx
    git config --global user.email xxx@xx,com