工程化-git

目录

1.认识

a)svn的问题

b)git与svn的区别

2.安装

3.git常用命令

4.git目录

5.git工作流

6.gitlibs安装

7.git hooks


1.认识

who why when

a)svn的问题

push/pull要联网

如果服务器的硬盘坏了怎么办?

 

b)git与svn的区别

svn是集中式,统一中心管理,每个版本只记录变化的部分

git是分布式,去中心化,每个人都会一份(分布式账本概念)保证完整性,git每次更新的时候会记录全部文件,有变化的记录变化,没变化的记录引用。

分布式账本概念:每个人都有一本账本,支持本地记账,你的账目被人也可以看到,使用场景:比如我们捐的钱都是给红十字会,红十字在进行分发,我们看不到最终流向,但是如果使用了分布式账本,整个流程就透明啦

 

 

2.安装

a)官网 https://git-scm.com/

git config –-global user.name ‘xx’

git config –-global user.email ‘xx’

 

b)ssh key生成与配置

ssh-keygen -t rsa -C '123456@qq.com'

 

c)配置多个ssh key

使用场景,当你两个git仓库使用不同key时使用

# gitlab

Host gitlab.com

    HostName gitlab.com

    PreferredAuthentications publickey

    IdentityFile C:\Users\Administrator\.ssh\gitlab_id-rsa

# github

Host github.com

    HostName github.com

    PreferredAuthentications publickey

    IdentityFile C:\Users\Administrator\.ssh\github_id-rsa

 

3.git常用命令

a)git status 没事执行一项,它会告诉你当前要做什么

b)git clone git@xxx.com 从远端克隆一个工程到本地

c)把本地项目推送到远端

方式1:

git init 初始化

git remote add origin git@xxx.git 与远端建立连接

git add .

git commit -m 'init data'

git push -u origin master 推送

方式2:

git clone git@xxx.git 从远端导入

再把工程拷贝进去,执行add,commit,push等操作

 

d)版本回滚

git reset --hard { 要回滚的那个commitId}  本地版本回滚

git push -f origin master 强制推送

e) add/commit fetch/pull/push   

git本地仓库执行逻辑流程

创建一个文件后文件是处于工作目录,当add之后,文件就处于工作区(工作区不是目录,是说你在进行一个操作后,文件处于哪个地方),commit之后文件就正式进入git目录

 

 

f)checkout

切换新分支git checkout -b dev;git checkout master

撤销更改 checkout . 恢复所有(有点号)

撤销单个文件更改 checkout fileName

g)merge/rebase

merge 分支合并概念

rebase 一条线概念 v3先把v4抓取下来,然后再合并生成v34~(流程上是一条线,比较清爽)

 

 

h)tag

操作方式,一般从git操作界面上新建tag

 

i)alias 别名,可是设置组合键,提高效率

git config --global alias.ac '!git add -A && git commit -m'   //add与commit合并

 

j)其他

git config --list 查看配置

git 命令 --help 查看命令帮助

 

4.git目录

hooks:执行某个操作时预处理

log:操作记录

refs:有变化文件的记录变化,没变化的记录引用

HEAD:当前分支指向

 

 

5.git工作流

dev分支:所有的改动都在开发分支,开发完在对应合并到对应的分支,10个人开发不同功能则10个分支

test分支:该分支给开发与测试人员测试用,并且预防有人误操作分支,使用push -f强制覆盖更新

release分支:测试完毕后,合并到release分支进行最终测试,为什么不用test分支呢,因为test分支比较乱,测试完合并到master上线

mater:该分支不允许修改,只允许合并进来,合并之前记录tag

使用场景:多人团队开发可用,如团队人数较少可精简

 

 

6.gitlibs安装

https://bitnami.com/stack/gitlab/virtual-machine

开源地址 https://github.com/gitlabhq/gitlabhq

下载地址 https://about.gitlab.com/downloads/#centos7

 

硬件要求:安装gitlibs的服务器建议需要4g内存

 

a)安装命令

sudo yum install curl openssh-server

sudo systemctl enable sshd

sudo systemctl start sshd

sudo firewall-cmd --permanent --add-service=http

sudo systemctl reload firewalld

 

b)postfix安装,如果没有邮件可以先不安装

sudo yum install postfix

sudo systemctl enable postfix

sudo systemctl start postfix

 

c)install

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

sudo yum install gitlab-ce

sudo gitlab-ctl reconfigure

 

d)其他

访问:直接访问安装服务器的ip即可,遇到502的时候不着急,再等一会,出现登录页面的时候代表成功

重启: sudo gitlab-ctl restart

 

7.git hooks

Client side 客户端,比如在commit前做一些检查,冲突检查等

Server side 服务端,比如在提交的时候自动触发jekins,发布项目

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值