Git基础学习

Git基础学习

版本控制

  1. 什么是版本控制:指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理。
    作用:实现跨区域多人协同开发;追踪和记载一个或多个文件的历史记录;统计工作量;跟踪记录整个开发过程;减轻开发人员负担,降低人为错误。
  2. 版本控制分类
    1)本地版本控制:记录文件每次更新,可以对每个版本做一个快照,适合个人用。
    2)集中版本控制:所有版本数据都保存在服务器上。我们工作时候,必须连接*代码服务器并获取最新版本代码,进行编写或者更改代码并检查完毕后,推送到*代码服务器。该版本控制系统受网络限制比较大,服务器损坏,数据都会丢失。
    常见的工具:CVS(Concurrent Versions Control System),SVN(Subversion),VSS(Visual So urce Safe)。
    3)分布式版本控制:所有的版本信息仓库全部同步到本地的每个用户,即每个人拥有全部代码。可以在本地查看所有版本历史,也可以离线提交,只需在连网时push到相应服务器或其它用户那里。
    最常用工具:Git。
  3. Git与SVN的区别:
    1)最主要区别:Git是分布式版本控制,没有*服务器,每个人的电脑就是一个完整的版本库。SVN是集中式版本控制系统,版本库集中放在*服务器上,每次使用,首先要从*服务器得到最新版本。
    2)Git把内容按元数据方式存储,而SVN是按文件存储。
    所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因 为.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。
    3)Git分支和SVN的分支不同:SVN会发生分支遗漏的情况,而Git可以同一个工作目录下快速的在几个分支间切换,很容易发现未被合并的分支,简单而快捷的合并这些分支。
    4)GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
    5)Git的内容完整性要优于SVN:Git的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
    Git
  4. Git的历史
    Git基础学习
  5. Git常用配置命令
    1)查看全部配置:git config -l
    2)查看系统配置:git config --system --list
    3)查看用户自己的配置:git config --global --list
    4)配置用户名 git config --global user.name “username” //( "username"是自己的账户名)
    5) 配置邮箱 git config --global user.email “[email protected]” (用户名和邮箱都是下载git后必须配置的)
  6. Git基本理论
    git本地有三个工作区:工作区(workspace)、暂存区(index/stage)、本地仓库(local repository)。还有远程的git仓库(Remote repository)。
    Git基础学习
    1)Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间。
    2)WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间。
    3).git:存放Git管理信息的目录,初始化仓库的时候自动创建。(这是个隐藏文件)
    4)Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区。
    5)Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)。
    6)Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。
    工作流程:
    1)在工作目录中添加、修改文件;
    2)将需要进行版本管理的文件放入暂存区域;
    3)将暂存区域的文件提交到git仓库。
    因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)。
    Git基础学习
  7. git操作指令
    1)在当前目录新建一个Git代码库:$ git init
    2)新建一个目录,将其初始化为代码库:$ git init [project-name]
    3)克隆远程项目和整个代码历史: g i t c l o n e [ u r l ] 4 ) 查 看 文 件 状 态 : git clone [url] 4)查看文件状态: gitclone[url]4git status
    5)添加所有文件到暂存区: g i t a d d . 6 ) 同 步 到 远 程 仓 库 : git add . 6)同步到远程仓库: gitadd.6git push
    7)提交暂存区的文件到本地仓库:$ git commit -m ”消息内容“
    8)列出所有本地分支: g i t b r a n c h 9 ) 列 出 所 有 远 程 分 支 : git branch 9)列出所有远程分支: gitbranch9git branch -r
    10) 新建分支,但依然停留在当前分支: g i t b r a n c h [ b r a n c h − n a m e ] 11 ) 新 建 分 支 , 并 切 换 到 该 分 支 : g i t c h e c k o u t − b [ b r a n c h ] 12 ) 合 并 指 定 分 支 到 当 前 分 支 : git branch [branch-name] 11)新建分支,并切换到该分支:git checkout -b [branch] 12)合并指定分支到当前分支: gitbranch[branchname]11gitcheckoutb[branch]12git merge [branch]
    13) 删除分支: g i t b r a n c h − d [ b r a n c h − n a m e ] 14 ) 分 支 切 换 : git branch -d [branch-name] 14)分支切换: gitbranchd[branchname]14git checkout [branck-name]
  8. .gitgnore文件:我们做的每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。
  9. git与远程仓库的传输是通过ssh**验证是否本人上传。在git bash用 $ ssh-****** -t rsa 生成公钥,按三次回车即可。然后将用户目录下.ssh文件下的id_rsa.pub中的内容复制到远程账户的设置中如码云账号。
  10. git分支:
    所谓branch,就类似于树的枝干,有一个主干,在Git里成为master,意思也很好理解;这个是必须存在的,然后你可以分出去其他的树干(但是都不是主干)。像树的分枝都会回到主干那里一样,Git里的分支也会汇聚到master那里。一般协同开发需要创建分支,不同功能由不同开发人员在不同分支上开发运行,然后由资深开发者合并到主干master中。

git的基础学习就到这,大家可以去哔哩哔哩或者其他学习网站进一步学习Git与IDEA,Eclipse整合使用。