Git从入门到入土

Git介绍

Git是开发中必须用到的分布式的版本控制软件,这是其官网Gitjava

咱们能够在官网中找到其说明文档,十分的详细而且使用简单。git

下载并安装

官网说明文档已经十分详细了,里面包含了weindows、Linux、mac的安装步骤,这里就拿Windows举例:github

下载完后,一直点下一步便可,安装完毕后再桌面右击鼠标若是出现下面两个选型说明安装完毕编程

image

本地仓库

因为Git是分布式的版本控制软件,因此咱们首先要学习的就是如何将代码提交到本地,而后提交至远端代码库。ssh

版本提交

在Git中,咱们首先要作的就是对一个项目进行管理。分布式

进入项目文件夹,执行初始化命令便可由Git接管当前项目的版本控制。以下所示学习

image

而后右键,选择Git Bash Here后进入终端,让Git接管MyProject文件夹。fetch

而后输入git init (将这个目录变成Git能够管理的仓库)当命令生效后,会生成一个.git的隐藏文件夹,以下所示3d

image

而后咱们可使用git status来检测当前文件夹中被管理的文件状态。版本控制

image

此时新增的文件和修改后的文件均属于未被管理的文件,呈现红色,如上所示。

此时就须要咱们管理该文件,使用add命令,告诉git,把文件添加到仓库。

  • git add 文件夹名 # 仅仅管理一个文件
  • git add . # 表明当前目录下的全部文件

当咱们管理后再使用git status 查看状态后就变成绿色了,而后使用git commot告诉Git,把文件提交到仓库中,以下所示:

image

这里Git告诉你又异常,让你进行用户信息的配置,输入帐号密码等信息。咱们只须要按照提示配置一下我的信息便可,配置后再次提交以下所示:

image

到此咱们就完整的提交了咱们的文件到远程仓库中,可使用git log查看一下生成的版本。

咱们总结下咱们刚才用到的命令:

命令 描述
git init 初始化git,让Git接管当前文件夹
git status 查看当前文件状态,新增或修改的文件都呈现红色,而执行了add命令后会呈现绿色
git add [./filename] 将文件进行提交
git commit -m "描述消息" 生成一个版本
git log 查看版本信息。

版本回滚

  • 高版本回滚到低版本

    • 首先使用git log查看提交日志
    • 而后使用git reset --hard 版本号进行回滚

image

  • 一样的也能够从低版本回滚到高版本

    • 首先就不能使用git log而是使用git reflog查看日志
    • 而后使用git reset --hard 版本号进行回滚

image

照例咱们总结一下

命令 描述
git log 查看版本提交信息,用于高版本回滚低版本
git reflog 查看版本提交信息,用于低版本回滚高版本
git reset --hard 版本号 进行版本回滚

分区概念

在上面的操做中,咱们能够发现一个文件有多个状态:

  • 以控制状态:指该文件能够被git管理的状态,目前来说全部位于git init文件夹下的文件都是以控制状态
  • 以变更状态:当有新文件,或本来文件被修改后,使用git status呈现红色状态的文件
  • 暂存区状态:指的是执行git add命令后,红色状态文件变为绿色状态的文件
  • 版本库状态:指的是执行git commit命令后,提交至版

这些不一样的状态对应不一样的分区,因为此时咱们作的都是本地版本控制,因此这里的版本库即为本地版本库

image

使用分支

分支是Git中十分重要的一个概念,它可让你处理更多的突发状况,以及让你更好的进行协同操做开发。让你在开发中,多个分支互不影响,有正式版本,和开发版本等等,以下所示

image

这样咱们不一样的分支中所看到的已提交版本并不相同,当在某一分支中建立新的分支,该子分支将继承当前分支节点中的全部文件,默认是有一个master分支。

经常使用命令以下所示

命令 描述
git branch 查看当前项目的全部分支(分支前*表示当前处于的分支)
git branch 分支名 建立一个新的分支
git checkout 分支名 切换分支
git merge 要合并的分支 合并分支(先切换分支)
git branch -d 分支名 删除分支

合并冲突

因为分支冲突,可能会出现多条分支修改同一处代码的状况,这个时候就出现了合并冲突的问题,因为Git并不知道听谁的,因此就所有将其保留,由你进行手动修改。

远程推送

上面讲的很热闹,可是都是基于本地仓库的,真正在使用的时候,是要和其余人进行协同操做的,这也是Git的一大优点。

Git是一款分布式的版本控制软件,能够选择的远程版本库不少,这里就介绍咱们最经常使用的GItHub。

首先就是注册一个用户,这里就不演示了。

建立仓库

当咱们登陆GitHub后,首先要作的就是常见一个远程仓库。首先现打开仓库页面,

image

而后点击NEW新建一个仓库,以下所示

image

建立完成后将会看到下面的页面

image

到此为止咱们的仓库就建立完毕了,后面就可使用了

推送代码

按照上面的提示咱们开始推送代码到GitHub

git remote add origin https://https://github.com/iszhonghu/Test.git
git push -u origin master

而后就能够看到咱们的文件成功上传了

image

这里只是上传的master分支,若是要是想上传dev分支,则仍是须要输入push命令

git push -u origin dev

总结:

命令 描述
git remote add 别名 仓库地址 给仓库取一个别名
git push -u origin 分支名 将分支推送到远程仓库

须要注意的是:

推送代码时,须要一个一个分支进行推送

拉取代码

既然能够推送代码也就能够拉取代码,以方便实现协同办公。

首先要建立一个文件夹来保存代码,而后直接拉取便可,

命令 描述
git clone 远程仓库地址 克隆远程仓库全部代码(仅第一次使用)
git pull origin 分支名 增量更新某一分支中的代码

分区概念

因为涉及到了远程仓库,因此又多了一个分区,以下所示

image

其中使用增量更新的pull实际上能够拆分为两条命令

  • git fetch origin 分支 将远程版本库中的分支代码拉到本地版本库中
  • git marge origin 分支 将本地版本库中代码合并到本地分支中

其余操做

配置文件

Git的配置文件有三个部分:

  • 仓库级的配置文件:在仓库的 .git/.gitconfig,该配置文件只对所在的仓库有效。

    • local
  • 全局配置文件:Mac系统在 ~/.gitconfig,Windows系统在 C:\Users<用户名>.gitconfig。

    • global
  • 系统级的配置文件:在Git的安装目录(Mac系统下安装目录在 /usr/local/git)的 etc 文件夹中的 gitconfig。

    • system

SSH

使用SSH能够实现代码的推送和拉取

  • 生成公钥和秘钥

    • ssh-keygen
      • 默认放在/.ssh目录下,其中id_rsa.pub为公钥,id_rsa为私钥

总结

下面是一些在本文章中有的命令:

命令 描述
git init 初始化
git status 查看状态
git add 管理指定文件
git commit -m "描述" 生成版本
git log 查看版本记录(以前)
git reflog 查看版本记录(以后)
git reset --hard 版本号 版本回滚
git branch 查看全部分支
git branch 分支名 建立新分支
git checkout 分支名 切换分支
git merge 分支合并
git branch -d 分支名 删除分支
git remote add 别名 地址 远程仓库取别名
git push -u 别名 分支 推送某分支到远程仓库
git clone 地址 克隆远程仓库代码
git pull 别名 分支 拉取远程仓库中某一分支代码,增量更新
git rebase -i HEAD~条数 版本合并

最后

  • 若是以为看完有收获,但愿能关注一下,顺便给我点个赞,这将会是我更新的最大动力,感谢各位的支持
  • 欢迎各位关注个人公众号【java冢狐】,专一于java和计算机基础知识,保证让你看完有所收获,不信你打我
  • 求一键三连:点赞、转发、在看。
  • 若是看完有不一样的意见或者建议,欢迎多多评论一块儿交流。感谢各位的支持以及厚爱。

——我是冢狐,和你同样热爱编程。

image

欢迎关注公众号“Java冢狐”获取最新消息