最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

git-git、gitee使用介绍

来源:博客园

1.git介绍和安装

1.我们为什么要使用git?1.1 帮助开发者合并开发的代码1.2 如果出现冲突代码的合并,会提示后提交代码的开发者,让其解决冲突1.3 代码版本的管理,比如要找到之前某个版本的代码做对比,那么需要找到之前某个版本的代码


(资料图)

2.svn和git的区别:git是分布式的,有本地和远程两个版本库,服务端出问题本地也可以做版本管理。SVN是集中式,只有一个远程版本库。

1.1 git,gitee,github,gitlab

git:版本管理软件,装在操作系统上,有很多命令gitee:远程仓库:开源代码,私有代码,有个网站,可以看到有哪些开源代码,通过网站做一些配置。gitee是国内最大的开源远程仓库,模仿国外的github。国内一些小公司使用gitee作为代码仓库。github:远程仓库:开源代码,国际上的开源代码仓库。gitlab:公司内部的远程仓库

2.git使用流程

2.1 软件安装

官方网站:https://git-scm.com/按照流程下载即可。当我们下载成功之后,打开cmd窗口输入git可以返回以下内容:

2.2 git工作流程

git中存在三个区:工作区:存放文件的地方暂存区:工作区的变更,提交到暂存区版本库:暂存区的内容提交到版本库存储的顺序为: 工作区>>>暂存区>>>版本库

3.git常用命令

1.文件夹想被git管理,文件夹作为仓库。首先打开要被管理的目录,然后鼠标右键,点击 Git Bash Here在命令行输入:git init,此时目录下出现了一个.git的文件夹,说明该目录已经被git管理注:也可以在上一级敲:git init zkz,该命令指在该目录下新建一个zkz目录,并且被git管理。

2.查看文件状态: git status(只能看到工作区和暂存区)。文件状态有以下三种颜色,分别代表不同的含义:红色:工作区发生变化,但是没有提交到暂存区。该目录下任何文件的变化都会被监测到(新创建文件也算变化),查看文件状态时变成红色。以下图片说明a.txt刚创建或者是修改了内容,还未存储到暂存区:绿色:已经提交到暂存区,未提交到版本库无色:所有内容均已提交到版本库

3.把工作区的内容存储到暂存区:git add 文件名:将指定文件从工作区存储到暂存区git add . :将该目录下所有在工作区的文件存储到暂存区

4.设置作者:作者分为全局作者和局部作者。全局是针对于当前操作系统,局部针对于当前仓库。当全局和具体作者同时存在时,优先使用局部作者。设置全局作者:git config --global user.email "邮箱"git config --global user.name "姓名"

5.将暂存区的文件存储到版本库(工作区的文件无法被存储到版本库):git commit -m "注释"(注释必须要编写)

6.查看版本库信息:git log:信息较为复杂git reflog:信息较为精简

7.其他撤回的命令可以参考下图:将暂存区的内容撤回到工作区(由绿变红):git reset HEAD将工作区的变更撤回:git checkout .

8.现在我们做如下操作:首先新建一个文件aaa.mp4,然后将它存储到暂存区,再存储到版本库。分别执行命令:git addgit commit -m "将aaa.mp4提交到版本库"此时aaa.mp4已经存在于版本库中:这时我们将aaa.mp4删除,再次查看状态,发现aaa.mp4也有变化:如果我们想恢复这个文件,需要将aaa.mp4删除的这条记录添加到暂存区,在添加到版本库。然后再回撤到提交aaa.mp4的这个状态。在删除后一次执行以下命令:git add.git commit -m "删除了文件aaa.mp4"git log得到了以下版本库信息:"""commit 114c9dc15d882140ceabf610bf31b14157de62f7 (HEAD -> master)Author: max 275712541@qq.comDate: Wed Mar 1 20:57:59 2023 +0800

删除了文件aaa.mp4

commit a90c9593d6b7d4643eaae87281c1db081c43c88fAuthor: max 275712541@qq.comDate: Wed Mar 1 20:50:08 2023 +0800

将aaa.mp4提交到版本库

commit b92b4791aea2d47b91c8a78c120bcbccf6b0ef36Author: max 275712541@qq.comDate: Wed Mar 1 20:18:02 2023 +0800

提交了b.txt

commit cbc548e8981ab2e68df7e247837d3e95a793a9aeAuthor: max 275712541@qq.comDate: Wed Mar 1 20:11:46 2023 +0800

将a.txt提交到版本库

"""这是我们回退到删除之前的状态,也就是提交视频后的状态:git reset --hard a90c9593d6b7d4643eaae87281c1db081c43c88f就可以将删除的文件恢复。

4.git忽略文件

咱们项目中,有些文件,或文件夹不想被git管理,比如:node_models、.idea、xx.pyc(python 的编译文件)使用步骤:1.在仓库目录下.git 所在目录下新建.gitignore2.在里面写忽略文件:node_models、.idea3.写的就会被忽略4.已经被管理过的不会被忽略

忽略文件写法:文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤例如:a.txt:项目中所有a.txt文件和文件夹都会被过滤/a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤/b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤x:名字中有一个x的都会被过滤(*代表0~n个任意字符)空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)

5.git多分支

为什么要有分支?1.多个开发者都是在一个分支上进行开发,不出意外,该分支一定叫dev(协同开发)2.如果出现一个特殊任务(敏感任务),与正常业务关系不紧密,甚至可能大的影响正常的dev分支开发,可以依赖dev开一个子分支,进行开发,开发完毕后合并到dev分支,再删除该分支即可3.所有的开发任务都可以在dev分支上进行(除非公司硬性要求不能直接在dev分支开发,只能在dev子分支开发,测试通过后才能合并给dev)

5.1 分支操作

分支查看:git branch分支创建:git branch 分支名分支切换:git checkout 分支名分支删除:git branch -d 分支名

5.2 分支合并

产生的过程:我有一个master分支,之前我在这个分支上面提交了几个版本1和版本2。这时我又创建了一个分支叫dev分支。此时我又在dev分支上面提交了版本3和版本4。那么我在master分支上是无法看到版本3和版本4的。如果此时我将两个版本合并,这个过程叫做分分支合并。版本5就是合并之后的版本。

首先创建一个dev分支,切换到该分支并在该分支下创建一个dev.txt,同步到版本库(之前没有创建分支dev时我们做的操作也可以看到,因为dev分支是在之前的版本复制过来的,而在dev分支上做的操作在分支master上就看不到了)这时我们切换到分支master,发现在dev分支下创建的dev.txt不见了。并不是被删除了而是被git管理起来了。这就是不同分支之下管理不同的版本信息这时我们想将dev分支合并到master分支,合并后dev和master内容就完全一样了(假设在dev分支操作期间master分支未进行任何操作),需要按照以下步骤:1.首先切换到分支master分支下(被合并的分支):git checkout master2.将dev合并到master,执行合并命令:git merge dev此时已经处在分支master中,并且该分支下已经有了文件dev.txt:

但是,分之合并还存在一个很大的问题,如果在分支dev改动期间,分支master也进行了改动,那么分支合并会出现冲突(后续讲解)。

在公司实际业务中可能是以下两种情况:1.主分支master分支,实际更新代码在dev分支上进行,审核通过后合并到master分支上去,还可能有一个bug分支,有问题在bug分支上修改,之后合并到master分支。2.有的公司除了master分支,dev分支还有一个个人分支,在个人分之上做改动,之后合并到dev分支。

6.git远程仓库

之前我们所做的内容是在本地合并分支,在实际工作中我们可能需要将本地的代码提交到远程仓库,例如gitee、github、gitlab等。gitlab的搭建过程:https://zhuanlan.zhihu.com/p/413217715接下来以gitee作为远程仓库讲解。例如我们想把路飞项目提交到gitee远程仓库,按照如下步骤:首先提交到本地版本库

1.在luffy_api输入命令:git init(输入之后该目录就被luffy_api管理,目录下也会出现一个.git的文件夹)

2.设置忽略文件:在luffy_api目录下新建文件.gitignore,在该文件下写被忽略的文件。用pycharm编写会有提示,没有被忽略的文件或目录都是红色的,忽略掉的文件或目录都是无色的(有的版本是黄色):

3.接下来我们直接在pycharm命令行输入命令将变更数据添加到版本库:

git add .git commit -m "第一次提交"

"""补充:如果提交到版本库信息之后还没有添加忽略信息,这是只要有文件变化该文件就会变红色。如果该文件不重要,正确而做法是将该文件删除,然后将该操作提交到版本库信息。该文件就不会被管理了。"""通过以上三步成功将文件提交到本地版本库,接下来是远程仓库

1.在gitee上新建仓库:"""初始化仓库:如果选中里面会默认建一个.gitignore文件,选择语言会默认设置忽略的文件,我们要保证库是空的,默认不选。设置和选择分支模型默认不选"""2.设置用户和邮箱:

git config --global user.name "max"git config --global user.email "275712541@qq.com"

3.按照网站提示的步骤操作:网站提示:

cd existing_git_repo# 添加一个远程仓库地址名叫orgin,地址是https://gitee.com/maxzkz/luffy_api.gitgit remote add origin https://gitee.com/maxzkz/luffy_api.git# 把本地当前所在的分支,推送到origin对应的远程master上git push -u origin master

依次执行以下操作:git remote add origin https://gitee.com/maxzkz/luffy_api.gitgit push -u origin master然后输入用户名和密码出现以下提示说明成功推到库中:此后可以不用输入用户名和密码就可以正常登陆。如果忘记密码,查看和修改地方在:控制面板\用户帐户\凭据管理器\编辑普通凭据

关键词: 根目录下 文件存储