git代码仓库

简介: git:分布式版本控制系统,是当前最流行的版本控制软件。

DevOps: Development和Operations的组合

   可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集

   减少变更范围

   加强发布协调

   自动化

   更小、更频繁的变更──意味着更少的风险

   让开发人员更多地控制生产环境

   更多地以应用程序为中心来理解基础设施

   定义简洁明了的流程

   尽可能地自动化

   促成开发与运营的协作


git:分布式版本控制系统,是当前最流行的版本控制软件。

   林纳斯.拖瓦兹    



公开的代码仓库:

       github.com    国外

       gitee.com    国内--码云        


版本控制系统分类:

   集中式:代码集中存储在中央服务器,开发者的客户端只有部分自己的代码,假如中央服务器出问题,会出现数据丢失。

           传统的版本控制系统:CVS SVN

   分布式:每台服务器都拥有所有代码,任意一台服务器崩溃,从其他服务器复制过来就好。

           git

         

###########################################################


声明自己的名字和邮箱

git config --global user.name "lhy"

git config --global user.email "1793594332@qq.com"


创建版本库目录

mkdir /data

cd  /data

git init    #初始化当前目录为版本库

自动生成.git目录:

   branches  分支目录

   config    定义目录特有的配置选项

   description 仅供git web使用

   HEAD       指定当前的分支

   hooks      git钩子文件

   info       包含一个全局排除文件(exclude)

   objects      存放所有的数据内容

   refs      指针文件

   index     暂存区文件

 

#########################################################


上传代码步骤

vim readme.txt  #创建文件,模拟代码


1、上传到暂存区

git add readme.txt          #单个文件上传

git add .                    #当前目录所有文件上传

git status                    #查看暂存区

git rm --cached readme.txt    #把文件从暂存区撤销

git checkout -- readme.txt  #已经提交到暂存区,之后再修改内容出错,想回到上次暂存区版本


2、上传到版本库

git commit -m "add readme.txt file"



3.修改readme.txt内容,使用diff命令查看异同

git diff readme.txt

如果想要提交:git add ... ; git commit ...


4.查看版本状态,比对工作区和版本库的异同,并提示

git status


5.查看历史记录

git log  #显示详细信息

git log --oneline  #显示摘要信息


6.版本回滚

git reset --hard HEAD^  #回滚到上个版本,HEAD^^上上版本,HEAD~10回滚到上10个版本

git reset --hard 2a42a3d  #通告git log 的版本号码回滚,仅写前7位就可

注意:版本回滚前,尽量备份一下当前文件


7.回滚动作命令日志

git reflog


8.git config 常用配置选项

   git config -e 编辑配置文件

       git config --local -e 编辑仓库级别配置文件

       git config --global -e 编辑用户级别配置文件

       git config --system -e 编辑系统级别配置文件

   git config 添加配置项目

       git config --global user.email “you@example.com”

       git config --global user.name “Your Name”

   git config 添加别名

       git config --global -e

       添加:    

       [alias]

       st = status

       co = checkout

       br = branch

       mg = merge

       ci = commit

       md = commit --amend

       dt = difftool

       mt = mergetool

       last = log -1 HEAD

       cf = config

       line = log --oneline

     

###########################################################


分支:

   区别于主代码库,创建出来用于新增功能或模块的分支库,仅用户自己有权访问,

   修改后合并,一般用于更新版本或添加补丁。


1.查看分支

git branch


2.创建分支

git branch ops

 切换分支

git checkout ops


创建并切换到新的分支

git checkout -b dev


3.切换到主分支

git checkout master


4.合并分支

(1)先切回master

git checkout master

(2)合并分支

git merge dev


5.删除分支

git branch -d dev

6.分支合并冲突

制造冲突:先在分支修改文件,提交;然后回到master,再修改文件相应内容,提交;最后,合并分支,出现冲突。

删除冲突文件内容:带>>>>>>>>>    ================= 行,保留想要的内容,再commit


注:为了避免合并冲突,尽量不要在master分支修改代码


============================================


gitlab:

   Gitlab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过

Web 界面进行访问公开的或者私人的项目


官方网站:https://about.gitlab.com


安装:

1.安装前提软件

yum install curl policycoreutils openssh-server openssh-clients postfix -y


2.下载清华gitlab安装包

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm


3.复制rpm包到虚拟机,yum安装

rpm -ivh  gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm


4.修改配置文件,指定ip地址

vim /etc/gitlab/gitlab.rb

修改:

external_url 'http://192.168.8.10'

保存退出


5.配置启动 gitlab

gitlab-ctl reconfigure


 查看状态

gitlab-ctl status


6.gitlab服务管理命令(开启/关闭/重启)

gitlab-ctl start/stop/restart


7.登录gitlab

http://192.168.8.10

管理员:root

密码:初始配置新密码,最少8位


8.取消注册功能

登录gitlab--admin area(顶部菜单栏小扳手图标)--左侧面板settings--Sign-up Restrictions--去除勾选sign-up enabled

--下拉选save保存


9.修改登录欢迎界面

登录gitlab--admin area--Appearance--填写管理员联系方式和logo--save


10.项目创建流程

(1)创建group

登录gitlab--admin area--new group


(2)创建用户

登录gitlab--admin area--new user--添加用户名、邮箱--create--edit--修改密码


(3)创建项目

登录gitlab--admin area--new project--注意选择组


11.Gitlab用户在组中有五种权限:

Guest:可以创建issue、发表评论,不能读写版本库

Reporter:可以克隆代码,不能提交,测试、产品经理可以赋予这个权限

Developer:可以克隆代码、开发、提交、push,开发人员可以赋予这个权限

Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限

Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限


Gitlab中的组和项目有三种访问权限:

Private:只有组成员才能看到

Internal:只要登录的用户就能看到

Public:所有人都能看到


12.管理员上传ssh-key

本地用户创建秘钥:ssh-keygen -t rsa

复制公钥内容:cat /root/.ssh/id_rsa.pub

黏贴到web界面:右上角--用户--settings--SSH Keys


13.管理员克隆下载项目

git clone git@192.168.8.10:dev/web.git


14.管理员修改文件内容,再推送上传代码(管理员身份)

cd web/

echo 123456 > new.txt

git add .

git commit -m "add new.txt"

git push -u origin master


15.在客户机,普通开发人员更新代码流程

(1)上传ssh秘钥

本地用户创建秘钥:ssh-keygen -t rsa

复制公钥内容:cat /root/.ssh/id_rsa.pub

zhangsan登录:右上角--用户--settings--SSH Keys


(2)关联远程仓库

mkdir /data

git init


git remote add origin git@192.168.8.10:dev/web.git


(3)下载同步代码

git pull origin master


(4)创建分支,修改代码

git config --global user.email "zhangsan@qq.com"

git config --global user.name "zhangsan"

git checkout -b ops

echo 6666666 > new111.txt

git add .

git commit -m "add new111.txt"


(5)推送dev分支(普通用户无权推送master)

git push -u origin ops


(6)zhangsan在web界面创建merge请求

   点中项目--左侧merge request--create merge request


(7)切换到管理员登录,进入项目,同意merge请求

   左侧面板--merge requests--merge



16.常用的git命令

git remote add [remote] [url] #添加(关联)远程库

git remote set-url [remote] [url] #修改远程仓

git clone [url] #克隆远程仓库项目

git remote #查看指定远程仓库命名简写

git remote –v #查看远程仓库详细信息以及名称对应URL

git push -u remote master #第一次推送master分支的所有内容

git fetch remote [branch/tag] #下载远程仓库的所有变动

git pull remote [branch/tag] #拉取主分支最新版本(可以拉取其他分支)

git push remote [branch/tag] --force #强行推送当前分支至远程分支,及时冲突

git push remote [branch/tag] --all #推送所有分支到远程仓库

git remote rename [oldname] [newname] #修改远程仓库名称

git remote remove [name] #删除远程仓库名称以及URL地址

-------------------------------------------


新建项目帮助命令:

Git global setup

git config --global user.name "Administrator"

git config --global user.email "admin@example.com"


Create a new repository

git clone http://192.168.8.10/dev/web.git

cd web

touch README.md

git add README.md

git commit -m "add README"

git push -u origin master


mkdir /data

cd /data

git init

git remote add origin http://192.168.8.10/dev/web.git

git add .

git commit -m "Initial commit"

git push -u origin master


Existing Git repository

cd existing_repo

git remote rename origin old-origin

git remote add origin http://192.168.8.10/dev/web.git

git push -u origin --all

git push -u origin --tags


-----------------------------------------------------


相关文章
|
4月前
|
IDE 网络安全 开发工具
【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
|
1月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
58 2
|
2月前
|
Shell 开发工具 git
git学习三:git使用:删除仓库,删除仓库内文件
通过GitHub的设置页面删除仓库,以及如何使用Git命令行删除仓库中的文件或文件夹。
186 1
git学习三:git使用:删除仓库,删除仓库内文件
|
2月前
|
开发工具 git
git如何修改提交代码时的名字和邮箱?
git如何修改提交代码时的名字和邮箱?
224 4
|
2月前
|
开发工具 git 索引
git上面中新建gitignore文件,并且去除已经在仓库版本管理中的文件夹
git上面中新建gitignore文件,并且去除已经在仓库版本管理中的文件夹
100 4
|
2月前
|
Java Linux 开发工具
IDEA中git提交前如何关闭code analysis以及开启格式化代码
【10月更文挑战第12天】本文介绍了在 IntelliJ IDEA 中关闭代码分析和开启代码格式化的步骤。关闭代码分析可通过取消默认启用检查或针对特定规则进行调整实现,同时可通过设置 VCS 静默模式在提交时跳过检查。开启代码格式化则需在 `Settings` 中配置 `Code Style` 规则,并通过创建 Git 钩子实现提交前自动格式化。
730 3
|
2月前
|
存储 开发工具 git
Git 远程仓库地址管理:添加、修改和验证
Git 远程仓库地址管理:添加、修改和验证
127 4
|
2月前
|
编译器 开发工具 数据安全/隐私保护
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
本文提供了一个关于如何在Gitee上进行多人协作和版本控制的详细教程,包括新建和初始化仓库、克隆仓库、邀请好友共同管理仓库以及注意事项,旨在帮助用户顺利进行代码协作开发。
389 0
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
|
3月前
|
开发工具 git
IDEA更改远程git仓库地址
【9月更文挑战第27天】本文介绍了两种在IntelliJ IDEA中更改远程Git仓库地址的方法:一是通过图形界面,在VCS设置中直接修改;二是通过IDEA内置的命令行工具使用`git`命令进行更改。具体步骤包括从版本控制菜单进入项目设置、修改远程仓库URL,以及使用`git remote set-url`命令更新仓库地址,并验证修改结果。这些方法适用于项目迁移或更换仓库地址的情况。
772 6
|
3月前
|
Linux 开发工具 git
linux自建仓库git之钩子不生效
linux自建仓库git之钩子不生效