架构学习之路(五)-- Git版本控制和Jenkins自动化部署

前言

我所接触到的版本控制分为两大类型

·Team Foundation 版本控制 (集中式)

一般而言,小组成员只能在每个档案的版本在他们的开发电脑上的。 只在服务器上维护代码。 意思就是说,跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交。

·Git

一、git的常用命令,及常见情况下的解决办法

git在新公司这里平时工作中经常会用到,对于我这种从.net转过来,已经被TFS可视化版本控制惯怪了的懒人来说,有必要特地再学习一下。

· git status

以下有一个场景:我为了一个涉及全局的功能而改了三四个文件,有公共类有私有类,有新增有修改,我还把一个我之前提交的冗余文件从我本地删掉了,大中午的我去吃饭了,回来以后我要提交代码,提交完了我趴着休息会。睡起来以后打开电脑,奋战一上午,乌七八糟,我忘了具体改哪个了。又或者,git pull半天拉不下最新代码,不知道是怎么回事了。
使用 git status 命令来查看相关文件的状态

git status

然后对于这些,比如config-local文件,我只是在本地修改做调试用
可以用 git checkout -- <文件名> 命令放弃在工作目录中的修改
然后用 git add <文件名>命令把需要提交改动的文件进行存储

git commit

对于这种未被跟踪,也就是你新建的文件,他在最后也提示了,可以用git add或者用 git commit -a来直接进行提交。

· git add

上面说了对于文件增删改的暂存,也就是说你放在需要提交的List里了。这个时候使用了git status命令查看暂存列表里文件的状态。

git status

· git reset HEAD

比如说发现了一个放暂存列表里,有个添加错了的。我不想提交了但我原来改的东西还想留在本地继续编辑,就可以用git reset HEAD <文件名>来取消相关文件的暂存。

· git checkout -- <文件名>

有时候比如手贱改了点东西,但是忘了之前什么样了,或者比如说我把文件带着到windows下面转了一圈,LF都变成CRLF了,然后我拿回服务器里发现我居然还给覆盖了,这个时候可以用git checkout命令。

git checkout

· git commit -a -m "提交说明"

git commit -a 只对 状态为M,也就是修改的文件有用,而对新增而为添加的问题是不起作用的,因为我们新添加的文件NewCreateFile仍然处于 Untracked 状态中。可以使用 git add 命令对 NewCreateFile 文件进行暂存,使用 git commit 命令对暂存的内容进行提交。提交后,我们查看状态时看到一个提示, 大概是说你的分支已经领先远端的主分支2个提交,可以使用 git commit 操作来发布你本地的提交。

· git push

我本地是配了github的ssh-key的,不过之前clone的时候使用的是https的方式,需要在第一次PUSH的时候都要求输入用户名和密码。每次都输入用户名和密码挺麻烦的稍后我们将使用git的其他命令将其解决掉。

· git diff

可以使用git diff来查看未暂存文件的修改情况。下方是使用 git diff 对修改但未暂存的文件的查看。如果你的文件使用了 git add 命令将其添加到了暂存区存储起来了,那么git diff就看不到已经被暂存起来的文件的修改内容了。


git diff
· git tag

打标签其实就是给特定的commit做个标记。在版本管理中,我们可以为每个版本打个标签,或者在每次发版时打个标签,便于后期的查找。

展示所有标签

可以使用 git tag 来查看所有的标签。下方是查看了Masonry仓库中所打的标签,具体输出如下所示。可以使用 git tag -l 'v0.6.*' 来查看0.6相关的tag。

创建标签

创建的标签包括“轻量标签”(lightweight)和 “辅助标签”(annotated)。轻量标签之所以轻量是因为它只是一个特定commit的引用。而“附注标签”是存储在git数据库中的一个完整对象。可以使用git tag -a 版本号 -m 'tag 信息'来创建“轻量标签”。下方命令就创建了一个轻量标签,并且使用git tag进行展示。
可以使用 git show v1.0.0 来查看v1.0.0处的相关信息。


create tag
给之前的commit创建tag

如果你想给之前的某个commit打一个tag, 那么只需要将commit号追加到打标签的命令后方即可,如:git tag -a vx.x.x -m 'message' commit-hash。
在下方截图中我们使用了git log令查看的所有提交。在下方信息中,我们可以看到之前的所有的tag号以及所对应的commit号。现在我们要在某个commit上创建一个tag, 并命名相关的tag号为 v0.9.9。

git log

通过下方的git tag命令就可以给相应的commit补一个tag, 然后我们可以再次使用git log相关命令来查看一下这个后补的tag。
补tag

将标签push到远端

上面创建的标签都是在本地所做的,可以通过 push 命令来将创建好的某些tag或者所有的tag使用push命令进行共享。下方是关于push相关tag的一系列操作:

·首先我们使用 git remote show 来查看所有的远端,如下所示为origin。
·然后我们可通过 git push origin v1.0.1 的命令格式将 tag 号为 v1.0.1 的标签push到远端origin。
·push成功后,会提示在相应的远端创建了一个新的标签。
push tag

-------------------还在更新

二、Jenkins的使用方法

Jenkins对于我来说是个新鲜事物,因为微软那套东西都是用的IIS,然后现在微软为了支持跨平台也配合现在的主流生产环境,从.net core开始变到nginx上了,不过我是没赶上好时候。

1、git的常用命令

三、Jenkins如何结合git进行前后端分离项目的版本控

你可能感兴趣的:(架构学习之路(五)-- Git版本控制和Jenkins自动化部署)