一、概念

1.软件开发的生命周期(简约版)
  • 项⽬⽴项–>需求调研–>需求拆解–>交给不同的开发进⾏开发–>测试环境测试–>部署⽣产环
    境。
    个人笔记git、jenkins实践(一)_linux
2.环境的概念
  • 开发环境:开发电脑所使用的环境。一般看是什么工程师(java、go、python)
  • 测试环境:一般由测试人员自己来部署,然后在该环境经行测试。((必不可少 -->系
    统、软件、版本等,都和⽣产环境⼀致。)
  • 预⽣产环境:测试到⽣产环境的⼀个过渡。 ( 连接的是⽣产库。 与⽣产的域名不同。
    test.jd.com) ,保证产品的质量。
  • ⽣产环境:即线上环境,⽤户使⽤的环境,⼀般是运维在维护,其他⼈员⼏乎⽆权限。
3.环境和环境之间的代码是如何部署的
  • 手动:效率低、⼲扰因素多、不安全
    1. rz的方式
    1. scp、xftp的方式等等
    1. 登录到代码托管平台,svn pull、git pull。
  • 缺陷:
    1. 全程运维参与,占用大量时间。
    1. 如果节点多,上线速度慢。
    1. 认为失误多,目录管理混乱。
    1. 回滚不及时,或者难以回退。
  • 自动:效率高、干扰较为少、安全
    1. 持续集成(简单⼯作、产品能快速迭代、保证⾼质量的产品。)
      个人笔记git、jenkins实践(一)_vim_02
    1. 持续交付
      个人笔记git、jenkins实践(一)_运维_03
  • 持续部署
    个人笔记git、jenkins实践(一)_vim_04
  • 完整代码发布流程
    个人笔记git、jenkins实践(一)_git_05

二、git分布式版本控制软件

个人笔记git、jenkins实践(一)_linux_06

第一阶段:单兵作战

#你是谁,你的邮箱是,配置颜⾊
[root@git dy]# git config --global user.email "552408925@qq.com"
[root@git dy]# git config --global user.name "oldxu"
[root@git dy]# git config --global color.ui true


[root@git ~]# mkdir dy
[root@git ~]# cd dy/
[root@git dy]# git init 			#将⽬录初始化为git的仓库
[root@git dy]# vim index.html
[root@git dy]# git add .
[root@git dy]# git commit -m "描述信息"
[root@git dy]# git log 				#查看提交的历史记录

个人笔记git、jenkins实践(一)_git_07

第二阶段:开发新功能

[root@git dy]# vim index.html
[root@git dy]#
[root@git dy]# git add .
[root@git dy]# git commit -m "直播功能上线"
[master 7285d97] 直播功能上线
1 file changed, 1 insertion(+)

第三阶段:再次上线新功能

[root@git dy]# vim index.html
[root@git dy]# git add .
[root@git dy]# git commit -m "约饭功能上线."
[master a901f68] 约饭功能上线.
1 file changed, 1 insertion(+)
回退功能或者重新上线
[root@git dy]# git log

#回到直播功能
[root@git dy]# git reset --hard 7285d97a63fe259a2fdcda7ef5bc91d5e400dc15
HEAD 现在位于 7285d97 直播功能上线

[root@git dy]# cat index.html
#
1.完成抖⾳短视频功能
2.完成直播功能


##重新上线约饭功能
[root@git dy]# git reflog
7285d97 HEAD@{0}: reset: moving to 7285d97a63fe259a2fdcda7ef5bc91d5e400dc15
a901f68 HEAD@{1}: commit: 约饭功能上线.
7285d97 HEAD@{2}: commit: 直播功能上线
0838f2b HEAD@{3}: commit: adasdas
83d2495 HEAD@{4}: commit (initial): 短视频功能开发完毕
[root@git dy]#
[root@git dy]#
[root@git dy]# git reset --hard a901f68
HEAD 现在位于 a901f68 约饭功能上线.
[root@git dy]# cat index.html
#
1.完成抖⾳短视频功能
2.完成直播功能
3.约饭功能完成

总结

git init 					#初始化⼀个⽬录为git版本库
git add . 					#将没有被管理的⽂件,加⼊git管理,添加到暂存区
git commit -m "描述" 		#将暂存区的⽂件提交到版本库中,进⾏版本的管理
git log 					#查看提交的历史记录
git reflog 					#查看git提交的所有历史记录
git status 					#查看当前的⽂件管理状态(已提交|未提交)
git reset --hard commitID 	#回退到指定的提交版本记录

个人笔记git、jenkins实践(一)_html_08

第四阶段:游戏功能&bug修复

分支:
个人笔记git、jenkins实践(一)_linux_09

[root@git dy]# git branch game
[root@git dy]# git branch
 game
* master
[root@git dy]# git checkout game
切换到分⽀ 'game'
[root@git dy]# cat index.html
#
1.完成抖⾳短视频功能
2.完成直播功能
3.约饭功能完成
[root@git dy]# vim index.html
[root@git dy]# git add .
[root@git dy]# git commit -m "游戏完成20%-c3"
[game e2f86a8] 游戏完成20%-c3
1 file changed, 2 insertions(+)
[root@git dy]# vim index.html
[root@git dy]# git add .
[root@git dy]# git commit -m "游戏完成50%-c4"
[game 3b3f2fc] 游戏完成50%-c4
1 file changed, 1 insertion(+)
修复bug
 [root@git dy]# git branch bug
[root@git dy]# git checkout bug
切换到分⽀ 'bug'
[root@git dy]# vim index.html
[root@git dy]# git add .
[root@git dy]# git commit -m "约bug修复-c5"
[bug 0861ff4] 约bug修复-c5
1 file changed, 1 insertion(+), 1 deletion(-)
[root@git dy]# git checkout master
切换到分⽀ 'master'
[root@git dy]# git merge bug #站在master分⽀合并bug分⽀已提交
的最新代码
更新 a901f68..0861ff4
Fast-forward
 index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
 [root@git dy]# git checkout game
切换到分⽀ 'game'
[root@git dy]# vim index.html
[root@git dy]# git add .
[root@git dy]# git commit -m "游戏完成100%"
[game d0790cc] 游戏完成100%
1 file changed, 1 insertion(+)
[root@git dy]# git merge master
[root@git dy]# vim index.html
[root@git dy]# git add .
[root@git dy]# git commit -m "bug修复-游戏-c8"
[game a9d322f] bug修复-游戏-c8
[root@git dy]# git checkout master
[root@git dy]# git merge game
更新 0861ff4..a9d322f
Fast-forward
 index.html | 4 ++++
1 file changed, 4 insertions(+)

第五阶段:进军三里屯

#1.准备中⼼服务器
 # gitee ( 开源的,注册即可使⽤ )

 ( Linux 模拟 家)
 ( MacOS | Windows-git-bash客户端 模拟三⾥屯 )


1.安装windows的git客户端
2,注册⼀个gitee的账户,并登陆
第一天上班前在家上传代码(Linux)

个人笔记git、jenkins实践(一)_html_10
个人笔记git、jenkins实践(一)_vim_11

1. 给远程仓库起别名
 git remote add origin 远程仓库地址
2. 向远程推送代码
 git push -u origin 分⽀
初次在公司新电脑下载代码(MacOS|Windows)
xudeMacBook-Pro:douyin xuliangwei$ git clone
https://gitee.com/oldboy_oldxu/douyin.git
xudeMacBook-Pro:douyin xuliangwei$ #编辑index⽂件
xudeMacBook-Pro:douyin xuliangwei$ git add .
xudeMacBook-Pro:douyin xuliangwei$ git commit -m ""
xudeMacBook-Pro:douyin xuliangwei$ git push origin master
下班回家继续写代码(Linux)
[root@git dy]# git pull origin master
如何推送其他分支代码
[root@git dy]# git checkout game
[root@git dy]# vim index.html
[root@git dy]# git add .
[root@git dy]# git commit -m "game⼤改动"
[root@git dy]# git push origin game
知识补充和总结
git pull origin master| dev | game #拉取代码,合并代码
等价于
git fetch origin dev #拉取代码
git merge origin/dev #合并代码

个人笔记git、jenkins实践(一)_git_12
小总结:

添加远程连接(别名)
 git remote add origin 地址
git remote -v
git remote remove origin #删除当前origin这个别名 (相当于本地版本库与中⼼版本库取消关联)

 推送代码
git push origin 分⽀名称

下载代码
 git pull origin 分⽀名称

相当于
git fetch origin 分⽀名称
git merge origin/分⽀名称

第六阶段:其他知识补充

  • 1.tag标签(commitID的别名而已)
[root@git dy]# git tag -a v1.1 -m "周年活动" #基于当前最新的commitid打标签
[root@git dy]# git tag
v1.1
[root@git dy]# git push origin v1.1
Username for 'https://gitee.com': 552408925@qq.com
Password for 'https://552408925@qq.com@gitee.com':
[root@git dy]# git tag -a v0.5 c67f593 -m "游戏完成百分之百,做⼀个标签记录"
[root@git dy]# git push origin v0.5
  • 2.免密登录
  1. url中体现
原来的地址:https://gitee.com/oldxu/treenb.git
修改的地址:https://⽤户名:密码@gitee.com/oldxu/treenb.git
git remote add origin https://⽤户名:密码@github.com/oldxu/treenb.git
git push origin master
  1. ssh中实现
    个人笔记git、jenkins实践(一)_html_13
    个人笔记git、jenkins实践(一)_linux_14
将我们的公钥添加到gitee上,就可以实现免密登陆。
[root@git dy]# git remote -v
origin https://gitee.com/oldboy_oldxu/douyin.git (fetch)
origin https://gitee.com/oldboy_oldxu/douyin.git (push)
[
[root@git dy]# git remote remove origin
[root@git dy]# git remote -v
[root@git dy]# git remote add origin
git@gitee.com:oldboy_oldxu/douyin.git
[root@git dy]# git remote -v
origin git@gitee.com:oldboy_oldxu/douyin.git (fetch)
origin git@gitee.com:oldboy_oldxu/douyin.git (push)
[root@git dy]# git push origin master #⽆需密码
  • 3.git中的.gitgnore文件
#忽略⼀些⽂件,
[root@git dy]# cat .gitignore
*.pyc


https://github.com/github/gitignore