网站建设一般报价,上线了小程序制作平台,榆林市建设局网站,佛山网页设计师培训1.Git简介 Git是一开源的分布式版本控制系统#xff0c;提供了存储代码、管理版本历史、分支和合并等功能。 版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理#xff0c;是软件配置管理的核心思想之一。它的主要目的是跟踪和记录软件开发过程…1.Git简介 Git是一开源的分布式版本控制系统提供了存储代码、管理版本历史、分支和合并等功能。 版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理是软件配置管理的核心思想之一。它的主要目的是跟踪和记录软件开发过程中的每个版本记录每个版本的修改历史、版本号和发布日期等信息以便更好地管理代码和文档并帮助开发人员更好地协作和开发软件。 通过版本控制开发人员可以随时回滚到之前的稳定版本恢复错误或进行分支开发等操作以便更好地管理软件开发过程中的变化和风险。 版本控制通常与版本控制系统Version Control SystemVCS相关联如Git、SVN等。这些系统提供了存储代码、管理版本历史、分支和合并等功能帮助开发人员更好地协作和管理软件开发过程中的版本变化。
2.版本控制的发展历史
早期的版本控制系统是本地化管理的采用某种简单的数据库记录文件的历次更新差异。但随着合作开发和协调工作的需要集中式的版本控制系统CVCS出现了。
不同的开发人员通过客户端连接到集中管理的服务器上提交或读取最新的文件比如常用的SVN就是这种工作模式。
2.1 集中化的版本控制系统
集中化版本控制系统是通过一个集中管理的中央服务器来保存所有文件修改的历史版本而协同开发者通过客户端连接到这台服务器从服务器上同步更新或上传自己的修改。 在集中式的版本控制系统中管理员可以轻松管控每个开发者的权限并且维护成本低。 但是这种架构下集中式服务器存在明显的单点故障如果版本控制服务器宕机则无法提供服务。 如果服务器数据丢失并且无法恢复那么整个项目的数据和变更历史也随之丢失。
2.2 分布式版本控制系统
为解决以上问题出现了分布式版本控制系统DVCS其基本设计理念是客户端不仅仅提取最新版本的快照而是把代码仓库完整的镜像下来相当于在本地有一份完整的数据拷贝。这样当CVS服务器故障时通过任何一个本地的镜像仓库就可以恢复数据。同时还可以和不同的远端代码仓库进行交互设置不同的协作流程。 用户在本地就可以查看所有的历史版本信息当用户进行修改提交文件的时候需要进行远程更新或提交。 用户即使离线时页可以进行本地提交push推送到远程服务器才需要联网。 每个用户都保存了历史版本所以只要有一个用户设备没问题就可以恢复数据。
3.Git的相关概念
3.1 工作区域
工作区域说明Workspace用户电脑本地看到的文件和目录在Git的版本控制下构成了工作区。Index/Stage暂存区一般存放在 .git目录下即.git/index,它又叫待提交更新区用于临时存放未提交的改动。比如执行git add这些改动就添加到这个区域。Repository本地仓库是一个存放在本地的版本库。Remote远程仓库就是远程数据交换的仓库。比如github码云等代码托管平台所提供的仓库。
Git的工作流程如下
1从远程仓库中克隆代码到本地仓库
2从本地仓库中checkout代码然后进行代码修改
3在提交前先将代码添加到暂存区
4将暂存区的代码提交到本地仓库本地仓库中保存修改的各个历史版本
5修改完成后需要和团队成员共享代码时将代码push到远程仓库 4.Git下载与安装
Git - Downloadshttps://git-scm.com/download
5.环境配置
当安装Git后首先要做的事情是设置用户名称和email地址每次Git提交都会使用该用户信息。
5.1 设置用户信息 git config --global user.name han git config --global user.email hanwoniu.com 5.2 查看配置信息 git config --list git config user.name 通过上面的命令设置的信息会保存在~/.gitconfig文件中
6.初始化仓库
要使用Git对我们的代码进行版本控制首先需要获得Git仓库获取Git仓库通常有两种方式 在本地初始化一个Git仓库 从远程仓库克隆
6.1 在本地初始化一个Git仓库 git init 6.2 从远程仓库克隆 可以通过Git提供的命令从远程仓库进行克隆将远程仓库克隆到本地。 命令形式为git clone 远程Git仓库地址 git clone https://gitee.com/project.git 切换进入远程仓库的账号 git config --system --unset credential.helper 7. 本地仓库的操作 首先我们在工作区新建一个Hello.java文件。
7.1 加入暂存区 git add Hello.java 7.2 查看文件的状态 git status git status -s #输出简介信息 Git中文件有4种状态
根据一个文件是否已加入版本控制可以把文件状态分为 Tracked已跟踪被纳入版本控制而tracked(已跟踪)又包括三种工作状态 Unmodified 未修改状态 Modified 已修改状态 Staged 已暂存状态 Untracked未跟踪未被纳入版本控制
7.3 移除暂存区 git reset Hello.java # 将暂存区的文件取消暂存 7.4 提交到本地仓库
在提交到本地仓库之前要先将文件添加到暂存区然后在commit提交到本地仓库 。 git commit -m 初始化提交Hello.java hello.java # 将暂存区的文件提交到本地仓库 7.5 直接提交到本地仓库 注意commit -am 只对修改和删除有效对于新增的文件还是先要执行add操作。 git commit -am 提交修改 # 不经过暂存区直接提交本地仓库 7.6 删除文件 git rm Hello.java # 删除文件 7.7 提交删除 git commit -m delete commit # 将删除的文件提交本地仓库 7.8 忽略列表 一般我们总会有些文件无需纳入Git 的管理也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件比如日志文件或者编译过程中创建的临时文件等。 在这种情况下我们可以在工作目录中创建一个名为 .gitignore 的文件文件名称固定列出要忽略的文件模式。下面是一个示例
# no .a files
*.a
# but do track lib.a, even though youre ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
7.9 查看日志 git log 当commit提交比较多git log 的内容在一页显示不完整满屏放不下的时候就会显示冒号。 回车往下滚一行、空格往下滚一页可以继续查看剩余内容。 退出英文状态下 按 q 可以退出git log 状态。
7.10 回滚操作 git log //查看提交历史找出要回滚到的commit-id git reset --hard commit-id //回滚到commit-id git reset --hard HEAD~1 //将最近1次的提交回滚 8.远程仓库的操作
8.1 从远程仓库克隆 如果你想获得一份已经存在了的 Git 仓库的拷贝这时就要用到 git clone 命令。 Git 克隆的是该 Git 仓库服务器上的几乎所有数据包括日志信息、历史记录等而不仅仅是复制工作所需要的文件。 当你执行 git clone 命令的时候默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。 git clone https://gitee.com/woniuxy2021/myproject.git # 从远程仓库克隆到本地仓库 8.2 添加远程仓库 运行 git remote add 添加一个新的远程 Git 仓库同时指定一个可以引用的简写。 git remote add origin https://gitee.com/p.git # 将本地仓添加一个新的远程Git仓库关联 8.3 查看远程仓库 如果想查看已经配置的远程仓库服务器可以运行 git remote 命令。 它会列出指定的每一个远程服务器的简写。 如果已经克隆了远程仓库那么至少应该能看到 origin 这是 Git 克隆的仓库服务器的默认名字。
git remote # 查看远程仓库
git remote show origin # 查看远程仓库输出更详细的信息
8.4 推送到远程仓库 推送代码到远程仓库的分支 git push origin master # 将本地仓库的代码推送到远程仓库 8.5 拉取 git pull 是从远程仓库获取最新版本并merge到本地仓库。 git pull origin master # 从远程仓库中拉取代码自动合并 注意如果当前本地仓库不是从远程仓库克隆而是本地创建的仓库并且仓库中存在文件此时再从远程仓库拉取文件的时候会报错fatal: refusing to merge unrelated histories 解决此问题可以在git pull命令后加入参数—allow-unrelated-histories git pull origin master --allow-unrelated-histories //加上后面这个选项允许不相关历史提交 8.6 移除远程仓库 如果因为一些原因想要移除一个远程仓库 可以使用 git remote rm命令 git remote rm origin # 将本地仓库跟远程仓库的关联移除 注意此命令只是从本地移除远程仓库的记录并不会真正影响到远程仓库。
9.分支操作 Git一般都是存在多个分支的比如开发分支回归测试分支以及主干分支等。 使用分支意味着你可以把你的工作从开发主线上分离开来以免影响开发主线。开发人员在自己的分支上干活想提交就提交直到开发完毕后再一次性合并到原来的分支上这样既安全又不影响别人工作。 git init 命令会默认创建master分支。
9.1 新建分支 git checkout -b dev 新建一个分支并且切换到新的分支dev git branch dev 新建一个分支但是仍停留在原来分支 9.2 查看分支 git branch 查看本地所有的分支 git branch -r 查看所有远程的分支 git branch -a 查看所有远程分支和本地分支 9.3 切换分支 注意git在切换分支之前要确保当前分支没有未提交的修改将当前分支内容进行commit之后再切换到其他分支。 git checkout dev 切换到dev分支 9.4 推送到远程仓库分支 git push origin dev # 推送至远程仓库分支 9.5 合并分支 在dev分支上进行开发完成之后需要把dev开发分支上的代码合并到master主分支上。 首先切换到master分支 git checkout master 将dev分支合并到master分支 git merge dev 将master分支推送到远程仓库 git push origin master 9.6 删除分支 git branch -D branchname 删除本地branchname分支 10.IEDA集成Git
10.1 配置Git的路径 10.2 创建工程并添加到Git 10.3 将文件添加到暂存区
10.3.1 添加忽略列表
# .idea目录下面所有的文件
.idea/
# 忽略指定文件
git_test.iml
# 忽略编译后的文件
target/
10.3.2 添加到暂存区 10.3.3 提交文件 10.5 将代码推送到远程仓库 因为是新建的本地仓库推送到远程仓库的时候需要定义远程仓库。 10.5 从远程仓库克隆工程到本地 10.6 代码的推送/拉取
A开发者端
1创建Hello.java
2添加、提交、推送
B开发者端
1拉取代码
2修改代码、添加、提交、推送
3A开发者端从远程仓库更新代码
10.7 创建分支并切换分支 10.8 推送分支到远程仓库 在dev分支上开发代码并推送到远程仓库。 10.9 合并分支