Git是一个分布式版本控制系统,去中心化的,目前最流行的。
Git跟踪并管理的是修改,关注点在暂存区(index)
注意本地版本库和远程版本库的区别
配置git用户信息和编辑器
组成:工作区、暂存区("版本库"/.git/index)、版本库(.git)
[root@manager ~]# git config --global user.name "hhaa"
[root@manager ~]# git config --global user.email "hhaa@164.com"
[root@manager ~]# git config --global core.editor vim
[root@manager ~]# git config --list
创建版本库:
[root@manager ~]# mkdir deveops
[root@manager ~]# git init deveops
################
初始化空的 Git 版本库于 /root/deveops/.git/
添加文件到暂存区:git add toGit.txt
查看git提交状态:git status
把暂存区的所有内容提交到版本库:git commit -m "The 1st ci"
查看暂存区的文件:git ls-files
查看git的历史更改:git log
hard方式回退上个版本:git reset --hard HEAD^
返回当前版本指定commit版本号:git reset --hard 33393b618de9223 (还没提交到远程版本库时)
查询版本号:git reflog
HEAD指针操作回退行为
工作区 <--> 暂存区 :git diff
缓存区 <--> 版本库(HEAD):git diff --cached
工作区<---> 库(HEAD):git diff HEAD -- filename
库 <--->库:git diff 243550a 24bc01b filename #较旧的id 较新的id
#########################
没有--,就变成了"切换到另一个分支"的命令
丢弃工作区的更改:git checkout -- showfile.sh
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
和GitHub远程仓库通信,先建立SSH-key
建立远程仓库和本地仓库的关联:git remote add origin1 git@github.com:andefi/JK-RE00.git
推送本地master仓库到远程仓库:git push -u origin1 master
删除关联的远程库:git remote rm origin1
克隆远程库: git clone git@github.com:andefi/gittest98k.git
创建分支并切换到该分支:git checkout -b dev
查看当前分支:git branch
创建分支:git branch test
切换分支:git checkout master 或者git switch
git merge命令用于合并指定分支到当前分支:git merge dev
删除dev分支:git branch -d dev
注意切换分支使用git checkout
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场
在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick
如果要丢弃一个没有被合并过的分支,可以通过git branch -D
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
查看分支历史图:git log --graph --pretty=oneline --abbrev-commit
给分支打标签:git tag v1.0
推送标签到远程库:git push origin v1.0
git-GUI:https://www.sourcetreeapp.com/
################
CI过程:
0.程序猿提交代码更新到软件仓库
1.CI服务器基于计划任务查询仓库,并下载代码;
2.CI服务器运行构建过程并生成软件包;
3.CI服务器进行单元和集成测试,存储测试结果;
4.向开发团队发送构建通知;
##########################