IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git入门与实践 -> 正文阅读

[开发工具]Git入门与实践

前言

??从开始编程就听人说过git用于项目编程能提高项目开发效率,这里总结了一下,涉及到一些入门知识与实践。
git
??Git属于分散型版本管理系统(version control system,VCS),是为版本管理而设计的软件。这里需要解释一下什么是版本管理——管理更新的历史记录。它为我们软件开发过程中提供帮助,例如记录一款软件增加、删除或更改源代码的过程,回滚到特定阶段,恢复误删的文件等。
??上述提到的版本管理系统可分为集中型和分散型两种。集中型版本管理系统最具代表性的是Subversion(SVN)
svn
vcs

将仓库集中存放在服务器中,因此只存在一个仓库,所有的数据集中存放在一起,便于集中管理。但一旦开发者因为所处环境连接不上服务器,就无法获得最新的源代码,开发也就无法继续下去。服务器宕机也是同样的情况,如果服务器宕机导致数据丢失,开发者恐怕再也无法找到最新的代码了。
??分散型版本管理系统以Git为代表。git
git
Git将某个指定的仓库复制给开发者一份,复制到开发者的账户下。复制出来的仓库和原仓库是两个独立的仓库,因此开发者可以随意编辑复制而来的仓库。开发者本地就有仓库,因此不需要链接原仓库就可以进行开发。所有的仓库之间都可以pull或push操作,拉取资源和上传资源。但如果不加以制定开发方案,容易造成原仓库资源混乱,搞不清代码是否最新,容易让软件开发失去控制。
??两种版本管理的方式各有优缺点,但是Git还是用的比较多,只要实现规范开发,就可以提高开发效率,让大家一起完成一个大项目。

一、Git安装

macOS和Linux大都已经预装了Git,直接使用即可。
WIndows用户可以官网下载安装包:
Git for Windows:https://gitforwindows.org/

二、Github注册及界面使用

github
??GitHub是为开发者提供Git仓库的托管服务,这是一个让开发者与朋友、同事以及陌生人共享代码的场所。

Github注册及页面使用

三、Git、GitHub、GitLab、Gitee几者的区别

??Git是一种版本控制系统,是一种cmd命令行工具。
??GitHub是一个基于git实现在线代码托管的仓库,向互联网开放,拥有超过 900 万的开发者用户,目前仍然是最火的开源项目托管平台,个人免费、企业版收费
??GitLab类似GitHub,一般用于在企业内搭建git私服要自己搭环境。GitLab-ce是社区版,GitLab-ee是收费企业版。
??Gitee即码云,是开源中国(OSChina)免费给企业用的,不用自己搭建环境,可以建立自己的私有仓库,可以理解为国内的GitHub。
??可以依据个人喜好,使用不同的平台

如何选择?
??GitHub和Gitee(码云)虽然是免费的,而且不用自己搭环境,个人使用还好但是企业中把项目放在别人的服务器上,始终没有安全感。因此,衍生出了gitlab,就是用于企业搭私服,而且还是在自己的服务器上。GitLab 让开发团队对他们的代码仓库拥有更多的控制,相比较 GitHub和Gitee , 它有不少特色:
(1) 允许免费设置仓库权限;
(2) 允许用户选择分享一个 project 的部分代码;
(3) 允许用户设置 project 的获取权限,进一步提升安全性;
(4) 可以设置获取到团队整体的改进进度;
(5) 通过 innersourcing 让不在权限范围内的人访问不到该资源

四、Git实践

你可以通过以下命令查看所有的配置以及它们所在的文件:

git config --list --show-origin

4.1 设置用户名和邮箱

??安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,提交中,每一次提交都会显示一次用户名和邮箱,因此需要注意隐私。

git config --global user.name "xxxxxx"
git config --global user.email xxxxxx@xx.com

注意: git config --global 参数,有了这个参数表示你这台机器上所有的git仓库都会使用这个配置,当然你也可以对某个仓库指定不同的用户名和邮箱

4.2 新建一个项目

??初始化成功后,git init的命令目录下就会生成.git目录,这里用来存储着管理当前目录内容所需的仓库数据。

mkdir test #新建一个文件夹(仓库),test为仓库名
cd test    #进入文件夹
git init   #初始化

添加文件

#添加一个Markdown语言写的README.md文件,用来对仓库进行说明。因此每次创建新项目的时候,都默认创建README.md文件。当然你可以创建其他的文件...
git add README.md 
# 写一个仓库的历史记录,也可以理解为做个说明
git commit -m "first commit"
#添加远程仓库 http链接写的是你远程仓库的url
git remote add origin https://......
#提交,这里会要你输入用户名和密码。密码是不可见的,当你输入对了后,就会自动提交。
git push -u orgin master
#显示某个远程仓库的信息:
git remote show https://...
#显示所有远程仓库:
git remote -v
#其他相关命令:
git remote rm name  # 删除远程仓库
git remote rename old_name new_name  # 修改仓库名

4.3 克隆一次项目,并且更新一次(GitLab为例)

4.3.1命令行操作

复制所需要项目的链接,当然你可以点击下载按钮直接下载文件再解压缩。
git
输入命令行代码:仓库地址就是链接

git clone 仓库地址

项目已经下载下来
ddd
编辑完成后,
请添加图片描述
拉取更新:使用一下命令,更新一下项目,避免遗漏更新的源代码

git pull

附加所有的项目,准备push

git add .

撰写每一次上传的项目说明,保存每一次上传的历史记录

git commit -m "要说明的话"

上传到仓库

git push

查看状态

git status

4.3.2 IntelliJ IDEA 的Git操作

打开IDEA,点击Get from VCS (版本管理系统 version control system,VCS)
IDEA
复制仓库链接,填写完成后点击下面的Clone 拉取项目
idea
可能需要 “信任”项目,点击Trust Project
idea
等待项目克隆成功后就可以开发代码了…
idea
Git控件三个按钮,从左到右依次是,Update Project… Commit… Push…

更新项目,如果项目是多人开发的,就需要不定时Update Project… 让源代码保持最新的版本,点击按钮后会弹窗,第一个选项是:将改变合并到当前分支中。用来将开发的部分保存为一个节点,团队中的不同开发者将自己的开发部分保存为一个节点,最后统一合并成一个整体。第二个选项是将此时的开发统一合并成未来分支的基础。以后的开发版本都是从现在这个版本再进行分支。总的来说,新手用merge,老手用rebase。
idea

Commit… 根据自己需要填写,重点就是写一下说明
idea
请添加图片描述
Push… 弹窗显示了,一些commit的信息:某人在哪天什么时候,更改了那些文件,此版本号是多少,更改后做出了什么说明。 一切正常就可以点击 Push
idea
Push成功
idea

4.3.3 上传查看

当所有的项目上传完成后,你可以在GitHub或者GitLab的Web端查看项目的更新情况。比如:GitLab可以看到文件最后的更新时间:
gitlab
也可以点击提交分支等按钮查看详细信息
请添加图片描述

五、可能遇到问题

5.1 git 执行 git reset HEAD 报 Unstaged changes after reset

# 解决的办法如下2种办法:
# 第一种
git add .
git reset --hard
#第二种
git stash
git stash drop

5.2 git 放弃本地修改,远程分支强制覆盖本地

git fetch --all    //只是下载代码到本地,不进行合并操作

git reset --hard origin/分支名如master    //把HEAD指向最新下载的版本

git pull //可以省略
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 23:24:56  更:2022-04-06 23:27:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:57:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码