常见版本控制器

SVN
  • 集中式的版本控制系统,只有一个中央数据仓库,如果中央数据仓库挂了或者无法访问,所有的使用者无法使用SVN,无法进行提交或备份操作

    GIT
  • 在分布式的版本控制系统中,在每个电脑上都有一个完整的数据仓库,没有网络依然可以使用git。当然为了习惯团队协作,会将本地数据同步到Git服务器或者github代码仓库

image.png

  • git初始化

    1. # 安装git
    2. yum install git
    3. # 配置git用户、邮箱等
    4. git config
    5. git config --global user.name "zj"
    6. git config --global user.email "zj@qq.com"
    7. git config --global color.ui true
    8. git config --list
    9. # 查看git初始化配置
    10. cat .gitconfig
    11. # 初始化仓库,把一个目录初始化为版本仓库(可以是空的目录也可以是带内容的目录)
    12. git init
    13. # 查看当前仓库的状态
    14. git status
    15. # 隐藏文件介绍
    16. branches # 分支目录
    17. config # 定义项目特有的配置选项
    18. description # 仅供git web程序使用
    19. HEAD # 指示当前的分支
    20. hooks # 包含git钩子文件
    21. info # 包含一个全局排除文件
    22. objects # 本地仓库,存放所有的数据内容,有info和pack两个文件夹
    23. refs # 存放指向数据(分支)的提交对象的指针
    24. index # 保存暂存信息,在执行git init的时候,这个文件还没有

    Git的常规使用

  • git add .或者git add *是将全部改动过的文件添加到暂存区域

  • 删除文件
    • 从暂存区撤出 git rm —cached FILE
    • 同时删除暂存区和工作区git rm -f FILE
  • git commit是将暂存区域的文件提交至本地仓库
  • 修改文件名
    • mv a a.txt git rm —cached a.txt git add a.txt
    • git mv a a.txt,将工作区域和暂存区域的文件名同时修改
  • git diff,默认比对工作目录和暂存区域有什么不同
    • git diff —cached,比对暂存区域和本地仓库有什么不同
  • git commit -am “”,对于已经被仓库托管的文件,直接进行一条命令提交即可
  • git log,查看历史提交过的信息
    • git log —oneline,仅仅显示一行提交信息
    • git log —oneline —decorate,显示指针指向的位置
    • git log -p,显示具体内容发生的改变
    • git log -1 -p,显示最近一条改动内容
  • git reset —hard [哈希值] ,回滚数据到某一个提交的版本
  • git reflog,可以查看所有历史操作

image.png

Git分支

分支就是平行空间,假设你在某个手机系统研发拍照功能,代码已经完成了80%,但 如果将这不完整的代码直接提交到git仓库中,又有可能影响到其他人的工作,此时我们便可以在该软件的项目之上创建一个名叫拍照给哦那个你的分支,这种分支只会属于你自己,而其他人看不到,等代码编写完成后再与原来的项目主分支合并即可,这样既能保证代码不丢失,又不影响其他人工作。 一般在实际的项目开发中,尽量保持master分支是非常稳定的,仅用于发布新版本,平时不要随便直接修改里面的数据文件,而工作的时候则可以新建不同的工作分支,等到工作完成后再合并到master分支上面,所以团队的合作分支看起来会像很多树枝一样。

# 查看分支,*显示在哪个位置就是在哪个分支下
git branch
# 新建分支
git branch [分支名]
# 切换分支
git checkout [分支名]
# 新建并切换分支
# git checkout -b [分支名]
# 合并分支,这个操作必须是在主分支上进行的
git merge [分支名]

image.png

标签使用

标签也是指向了一次commit提交,是一个里程碑式的标签,回滚打标签直接加标签号,不需要加唯一字符串。

# 给当前状态打标签
git tag -a v1.0 -m " version 1.0" 
# 指定某次状态打标签
git tag -a v2.0 [哈希值] -m "version 2.0"
# 查看所有标签信息
git tag
# 查看指定标签信息
git show v1.0
# 删除标签
git tag -d v1.0
# 以标签回滚
git reset --hard v2.0

github使用

GitHub故名思义是一个git版本库的托管服务,是目前全球最大的软件仓库,拥有成千上百万的开发者用户,也是软件开发和寻找资源的最佳途径,GitHub不仅可以托管各种git版本库,还拥有更美观的web界面,你的代码可以被任何人克隆,使得开发者为开源贡献代码变得更加容易,当然也可以付费够没私有库,这样高性价比的私有库真的是帮助到了很多企业。

  1. 注册用户
  2. 配置ssh-key

image.png

  1. 创建项目image.png
  2. 添加远程仓库

git remote add origin git@github.com:bbj1030/testing.git

  1. 推送新代码到GitHub

git push -u origin master

  1. 克隆项目到本地

git clone git@github.com:bbj1030/testing.git

Gitlab使用

# 安装依赖关系
yum install -y curl openssh-server policycoreutils-python
systemctl enable sshd  
systemctl start sshd  
firewall‐cmd ‐‐permanent ‐‐add‐service=http
systemctl reload firewalld
# 下载gialab安装包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
rpm -ivh [包名]
# 修改配置文件并重启

image.png
image.png
image.png

  1. root登录gitlab
  2. 创建test组
  3. 创建test项目
  4. 添加ssh密钥
  5. 添加新用户
  6. 将新用户添加到组里
  7. 新用户登录就可以拥有项目代码