1.介绍
1.1什么是git
Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 [Linus Torvalds](林纳斯·本纳第克特·托瓦兹_百度百科 Torvalds/9336769) 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
1.2什么是github
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名GitHub。
1.3.gitlab是什么
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。安装方法是参考GitLab在GitHub上的Wiki页面。
GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
1.4.Git,GitHub与GitLab的区别
Git是一种版本控制系统,是一种工具,用于代码的存储和版本控制。
GitHub是一个基于Git实现的在线代码仓库,是目前全球最大的代码托管平台,可以帮助程序员之间互相交流和学习。
GitLab是一个基于Git实现的在线代码仓库软件,你可以用GitLab自己搭建一个类似于GitHub一样的仓库,但是GitLab有完善的管理界面和权限控制,一般用于在企业、学校等内部网络搭建Git私服。
GitHub和GiLlab两个都是基于Web的Git远程仓库,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。从代码的私有性上来看,GitLab 是一个更好的选择。但是对于开源项目而言,GitHub 依然是代码托管的首选。
1.5.什么是版本控制系统?
版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理。是一种文件存储系统。
1.6.集中式与分布式版本控制系统
分布式相比集中式有以下好处:
集中式,如果服务器宕机,无法进行代码代码提交、版本管理。
分布式,可以在本地进行版本管理,你可以选择合适的时候将本地版本推送到远程服务器。
分布式比集中式数据安全性高,例如集中式,服务器故障数据丢失风险大
2.安装和使用
2.1.使用yum安装Git
yum install git
2.2Windows安装
下载地址:https://git-scm.com/downloads
2.3.创建仓库
为方面开发者交换数据,分布式版本控制系统一般会准备一台服务器充当“中央服务器”,开发者怎么与这台服务器通信呢。
一般借助SSH实现通信。
添加一个用户,用于SSH连接认证:useradd git
passwd git
新建一个项目仓库:su - git
mkdir demo.git
/home/git/demo.gitgit init --bare
在开发者电脑就可以使用git命令拉取这个项目仓库代码了
git clone git@10.0.70.238:/home/git/demo.git
有时提交代码频率挺高,每次输入密码挺麻烦,可以配置SSH密钥对实现免交互认证。
1、生成密钥对: ssh-keygen
2、将id_rsa.pub公钥内容添加到服务器git账号mkdir /home/git/.ssh/authorized_keys
3、git携带id_rsa私钥进行SSH认证
方法二、cat id_rsa.pub公钥信息,将信息添加到/home/git/.ssh/authorized_keys
远程机的ssh公钥复制到git机器上,即可实现免交付
执行ssh-copy-id git@10.0.70.239将239机器上的id_rsa.pub公钥移过去,
2.4git配置使用者
2.4.1.配置使用者信息:
添加使用者名字:git config --global user.name xiaofeifei
添加使用者邮箱:git config --global user.email 190707@qq.com
2.4.2.查询使用者信息:
git config --list
2.4.3.删除使用者信息:
git config --global --unset user.name
git config --global --unset user.email
2.4.4将暂存区提交到本地版本库
git commit -m 'hello'
2.4.5将本地库推送到远程仓库
git push origin master
2.4.6查看git的信息
cat .git/config
core.quotepath=false:这可能是设置路径名称是否被引号包围,具体影响可能依赖于你的具体使用环境。
user.name=xiaofeifei 和 user.email=1907079083@qq.com:这是你的Git用户名和电子邮件地址,它们在提交时会被使用。
core.repositoryformatversion=0:这可能是设置Git仓库的格式版本,这个值通常应该为0。
core.filemode=true:这可能是设置文件模式(执行,文本等)是否被跟踪,对于Unix和Linux环境,这个值通常应该为true。
core.bare=false:一个bare仓库是不包含工作树的仓库,这个设置是用来决定仓库是否为bare仓库。
core.logallrefupdates=true:这个设置可能会让Git在任何引用更新(比如commit或者push)的时候都记录日志。
remote.origin.url=git@10.18.93.152:/home/git/demo.git:这是你的远程仓库的URL。
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*:这是你从远程仓库拉取的引用。
branch.master.remote=origin 和 branch.master.merge=refs/heads/master:这设置了master分支的远程和合并设置。
2.4.7提交到缓存区
git add hello.py
查看git的状态,可用看到刚刚提交到缓存区的文件
git status
2.4.8提交到本地仓库
git commit -m hello.py
表示在Git仓库中进行了某些更改。具体来说,
'master(根提交) dedbec5'表示当前在master分支上,且这个分支的最新提交是dedbec5。
'hello.py'是该提交引入或修改的文件。
'1 file changed, 1 insertion(+)'表示有一个文件被修改,并且有1行插入。
'create mode 100644 hello.py'表示创建了一个新文件,名为hello.py,
并且这个文件的权限是644(在Unix系统中,6表示所有者有读写权限,4表示组用户和其他用户只有读权限)。
2.4.9查看git日志
git log
提交的哈希值为dedbec5dba3bb5e0961b360e0d60639ca38faf76,
它是由xiaofeifei在2023年10月9日14:22:52提交的
2.4.10再次查看git状态
git status
2.4.11推送到远程仓库
git push origin master
'Counting objects: 3, done.'表明Git正在计算需要上传的对象数量,
这里的对象是Git用来存储版本历史记录的文件。
'Writing objects: 100% (3/3), 229 bytes | 0 bytes/s, done.'
表明Git正在将这三个对象写入到本地暂存区,并已经完成。'Total 3 (delta 0), reused 0 (delta 0)'表明总共三个对象被引用或上传,并且没有重复或共享任何delta(差异)。
'To git@10.18.93.152:/home/git/demo.git'表明您正在将更改推送到远程仓库的路径。'*
[new branch] master -> master'表明您正在将master分支的更改推送到远程仓库的master分支。
2.4.12在其他开发机拉取项目,可用看到新提交的内容
git pull
3.Git的工作区
4.常用命令与开发流程
4.1.Git常用命令
4.2Git工作流程
master分支属于主分支,用于发布上线
其他分支用于开发新的代码
提交项目到缓存区
git add .
git add 文件名
提交到本地仓库 -m是说明
git log查看所有提交的记录
git log 文件 查看指定文件的提交的记录
查看变更的内容,可用与工作区、暂存区、仓库
git diff 文件名
工作区
之前是123
暂存区
仓库
提交远程仓库的dev分支
拉取远程仓库dev分支
git clone -b dev git@192.168.94.249:/home/git/demo.git
4.3、Git分支管理与上线发布流程
.Git分支介绍与公司分支开发流
4.4.Git分支介绍与公司分支开发流
4.5.git分支管理命令
创建分支
git branch 分支名
查看本机分支
git branch
查看所有分支
git branch -a
删除分支
git branch -D 分支名
切换分支
git checkout 分支名
添加到分支
git push origin feature-v1
合并分支
文章来源:https://www.toymoban.com/news/detail-816506.html
文章来源地址https://www.toymoban.com/news/detail-816506.html
到了这里,关于git入门(全网最详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!