2026/1/1 21:50:03
网站建设
项目流程
服装企业微网站建设,通化市建设工程招投标网站,网络系统分类,网站建设通常用到哪些编程文章目录前言1.Git的基本概念1.1 开发中的实际场景1.2 版本控制器的方式2.Git的工作流程3.Git的安装以及配置3.1 git的下载与安装3.2 基本配置3.3 为常用指令配置别名(可选)4.获取本地仓库5.基础操作指令5.1 Git工作目录下对于文件的修改(增减、删除、更新)会存在几个状态…文章目录前言1.Git的基本概念1.1 开发中的实际场景1.2 版本控制器的方式2.Git的工作流程3.Git的安装以及配置3.1 git的下载与安装3.2 基本配置3.3 为常用指令配置别名(可选)4.获取本地仓库5.基础操作指令5.1 Git工作目录下对于文件的修改(增减、删除、更新)会存在几个状态这些修改的状态会随着我们执行Git命令而发生变化6.分支7.Git远程仓库7.1 远程仓库-注册_创建仓库_配置公钥7.2 远程仓库-添加_查看_推送7.3 从远程仓库中克隆7.4 从远程仓库中抓取和拉取7.5 解决合并冲突总结前言本文整理了Git入门的基础教程后续将持续更新并补充更多Git相关知识。1.Git的基本概念1.1 开发中的实际场景① 备份② 代码还原③ 协同开发④ 追溯问题代码的编写人和编写时间版本号-每次修改都定义一个版本1.2 版本控制器的方式① 集中式版本控制工具集中式版本控制工具版本库文是集中存放在中央服务器的team里面每个人work时从中央服务器下载代码是必须联网才能工作局域网或者互联网。个人修改然后提交到中央版本库。举例SVN和CVS② 分布式版本控制工具分布式版本控制系统没有“中央服务器”每个人的电脑上都是一个完整的版本库这样工作的时候就无需联网因为版本库就在自己的电脑上。多人协作只需要各自的修改推送给对方就能互相看到对方的修改了举例GitGit是分布式的Git不需要有中心服务器我们每台电脑拥有的东西都是一样的我们使用Git并且有个中心服务器仅仅是为了方便交换大家的修改但是这个服务器的地位和我们的PC一样的我们可以把他当作一个开发者的PC就可以就是为了大家代码容易交流不关机用的。没有它一样可以工作只不过“交换”修改不方便2.Git的工作流程工作流程图3.Git的安装以及配置3.1 git的下载与安装git下载地址https://git-scm.cn/downloadsGit-2.20.1-64-bit.exeGit GUI:Git提供的图形界面工具Git BashGit提供的命令行工具安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的因为每次Git提交都会使用该用户信息3.2 基本配置① 打开Git Bash② 设置用户信息git config --global user.name “itcast”git config --global user.email “helloitcast.cn”③ 查看配置信息git config --global user.namegit config --global user.email3.3 为常用指令配置别名(可选)有些常用的指令参数非常多每次都要输入很多参数我们可以使用别名① 打开用户目录创建.bashrc文件② 在.bashrc文件中输入如下内容#用于输出git提交日志 alias git-log‘git log --prettyoneline --all --graph --abbrev-commit’ #用于输出当前目录所有文件及基本信息 alias ll‘ls -al’③ 打开gitBash 执行 source ~/.bashrc④ 解决GitBash乱码问题git config --global core.quotepath false${git_home}/etc/bash.bashrc 文件后加入下面两行 export LANG“zh_CN.UTF-8” export LC_ALL“zh_CN.UTF-8”git_home:git安装目录4.获取本地仓库要使用Git对我们的代码进行版本控制首先需要获得本地仓库1)在电脑任意一个位置创建一个空目录作为我们本地git仓库2)进入这个目录中点击右键打开Git Bash窗口3)执行命令git init4)如果创建成功后可在文件夹下看到隐藏的.git目录5.基础操作指令5.1 Git工作目录下对于文件的修改(增减、删除、更新)会存在几个状态这些修改的状态会随着我们执行Git命令而发生变化①git add (工作区——暂存区)②git commit (暂存区——本地仓库)1) 查看修改状态status作用查看修改的状态(暂存区、工作区)命令形式git status2) 添加工作到暂存区(add)作用添加工作区一个或多个文件的修改到暂存区命令形式git add 单个文件名 | 通配符git add .(通配符) 把所有的文件都加入到暂存区3) 提交暂存到本地仓库(commit)作用提交暂存区的内容到本地仓库的当前分支命令形式git commit -m “注释内容”4) 查看提交日志(log)作用查看提交记录命令形式git log [option]options:--all:显示所有分支 --prettyoneline 将提交信息显示为1行 --abbrev-commit 使得输出commitId更简短 --graph 以图的形式显示5) 版本回退作用版本切换命令形式git reset --hard commitIDcommitID 可以使用 git -log 或git log指令查看同样的方式还能回去不过需要commitID,如果没有配合git reflog也能找回如何查看已经删除的记录git reflog这个指令也可以看到已经删除的提交记录6) 添加文件至忽略列表一般我们总会有些文件不需要纳入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/directorybuild/#ignore doc/notes.txt, but not doc/server/arch.txtdoc/*.txt#ignore all .pdf files in the doc/ directorydoc/**/*.pdf一般不需要自己写6.分支几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大BUG修改、开发新的功能以免影响开发主线。HEAD指向谁谁就是当前分支1) 查看本地分支命令git branch2) 创建本地分支命令git branch 分支名3) 切换分支命令git checkout 分支名我们还可以直接切换到一个不存在的分支(创建并切换)命令git checkout -b 分支名4) 合并分支一个分支上的提交可以合并到另一个分支命令git merge 分支名称一般是其他分支合并到master分支5) 删除分支不能删除当前分支只能删除其他分支命令git branch -d b1 删除分支时,需要做各种检查git branch -D b1 不做任何检查 强制删除分支做了修改没有合并但是又不需要合并就需要强制删除6) 解决冲突当两个分支上对文件的修改可能会存在冲突例如同时修改了同一个文件的同一行这时就需要手动解决冲突解决冲突步骤如下① 处理文件中冲突的地方② 将解决完冲突的文件加入暂存区add③ 提交到仓库(commit)冲突部分的内容处理如下图所示开发中分支的使用原则和流程几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能以免影响开发主线。在开发中一般有如下分支使用原则与流程·master 生产分支线上分支主分支中小规模项目作为线上运行的应用对应的分支· develop开发分支是从master创建的分支一般作为开发部门的主要开发分支如果没有其他并行开发不同期上线要求都可以在此版本进行开发阶段开发完成后需要是合并到master分支准备上线。· feature/xxxx分支从develop创建的分支一般是同期并行开发但不同期上线时创建的分支分支上的研发任务完成后合并到develop分支。. hotfix/xxxx分支从master派生的分支一般作为线上bug修复使用修复完成后需要合并到master、test、develop分支。· 还有一些其他分支在此不再详述例如test分支用于代码测试、pre分支预上线分支等等。补充合并的快进模式出现拱形master和dev上都有修改7.Git远程仓库搭建git远程仓库需要借助互联网提供的一些代码托管服务来实现其中比较常用的有GitHub、码云、GitLab等GitHubhttps://github.com码云 https://gitee.comGitLabhttps://about.gitlab.com 用于搭建自己的私服7.1 远程仓库-注册_创建仓库_配置公钥流程1)注册账号2)创建远程仓库3)配置SSH公钥① 生成SSH公钥ssh-keygen -t rsa不断回车如果公钥已经存在则自动覆盖② Gitee设置账户公钥获取公钥cat ~/.ssh/id_rsa.pub验证是否配置成功ssh -T gitgitee.com7.2 远程仓库-添加_查看_推送流程① 添加此操作是先初始化本地库然后与已创建的远程库进行对接命令git remote add 远端名称 仓库路径远端名称默认是origin仓库路径从远端服务器获取此url例git remote add origin gitgitee.com:mmm_0722/git_test.git② 查看git remote [-v]③ 推送命令git push [-f] [--set-upstream] [远端名称[本地分支名][:远端分支名]]如果远程分支名和本地分支名称相同则可以只写本地分支git push origin master完整git push origin master:master-f表示强制覆盖–set-upstream:推送到远端的同时建立起和远端分支的关联关系git push --set-upstream origin master如果当前分支已经和远端分支关联则可以省略分支名和远端名git push将master分支推送到已关联的远端分支git branch -vv:查看本地分支和远程分支的关联关系7.3 从远程仓库中克隆如果已经有一个远端仓库我们可以直接clone到本地命令git clone 仓库路径 [本地目录]本地目录可以省略会自动生成一个目录会下载到打开Bash的这个目录下7.4 从远程仓库中抓取和拉取远程分支和本地分支一样我们可以进行merge操作只是需要先把远端仓库里的更新都下载到本地再进行操作① 抓取命令git fetch [remote name] [branch name]抓取指令就是将仓库里的更新都抓取到本地不会进行合并如果不指定远端分支和分支名则抓取所有分支② 拉取命令git pull [remote name] [branch name]拉取指令就是将远端仓库的修改拉到本地自动合并等同于fetchmerge如果不指定远端名称和分支名则抓取所有并更新当前分支git pull的一些注意点① 什么时候可以用git pullgit pull 从当前分支跟踪的远程仓库拉取代码这个远程仓库是通过 git remote 配置的。git remote -v查看当前仓库配置的远程仓库可以拉取的仓库类型自己的仓库Fork的仓库(就是指把别人仓库里的东西复制到自己的仓库了本质上还是自己的仓库)公开仓库(有读取权限)团队仓库(有权限)② 远程仓库配置的一些问题配置是持久的在同一个仓库目录下配置就一直存在但是不在同一个仓库目录下就要重新配置每个仓库的配置是独立的什么时候需要重新配置clone新仓库clone新仓库时会自动配置origin新仓库只有自己的配置没有原来的配置就算新仓库建在原来的仓库目录下但因为新仓库都是需要新建文件夹的所以也不会影响原来的配置删除远程仓库配置后git remote remove origin在不同的仓库目录下③ cloneclone别人的仓库相当于把自己的本地仓库跟别人的远程仓库关联具体有什么权限要看别人的远程仓库给了什么权限一般是只有读取没有写入clone之后会自动初始化本地仓库不需要再手动获取本地仓库7.5 解决合并冲突在一段时间内A、B用户同时修改了同一个文件且修改了同一行位置代码此时会发生合并冲突A用户在本地修改代码后优先推送到远程仓库此时B用户在本地修订代码提交到本地仓库后也需要推送到远程仓库此时B用户晚于A用户故需要先拉取远程仓库的提交经过合并后才能推送到远端分支在B用户拉取代码的时候因为A、B用户同一时间段修改了同一文件的相同位置的代码故会发生合并冲突。远程分支也是分支所以合并冲突的解决办法也和解决本地分支冲突相同总结本文系统梳理了Git的基础入门知识掌握这些内容足以应对日常工作中的大部分需求。我们将持续更新和补充相关内容欢迎点赞关注也期待您的指正建议。