基于Gitee的Git原理及操作学习

1、git概念、原理理解

1.1、版本控制分类

  • 本地版本控制,记录文件的每次更新,适合个人使用

    image-20211225170550741

  • 集中版本控制器SVN

    所有版本数据保留在服务器,A提交后,B获取再提交,单线程修改。SVN中没有历史版本信息,每次想获得历史版本要从服务器获取。

    image-20211225170710981

  • 分布式版本控制:每台主机上都可以获得所有版本的代码库,每台主机可以clone全部服务器版本库信息,分布式修改(修改后可合并提交)用户可以把各自的修改部分推送给对方,Git会记录修改部分。

    image-20211225170745446

1.2、Git定义

Git是一个分布式版本控制器,所有版本信息仓库都会被同步到每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。

1.3、Git配置文件

1、Git\etc\gitconfig :Git 安装目录下的 gitconfig --system 系统级(默认配置

2、C:\Users\Administrator\ .gitconfig 只适用于当前登录用户的配置 --global 全局(手动配置)

查看配置命令:git config -l

#查看系统configgit config --system --list  
#查看当前用户(global)配置git config --global  --list

1.4、设置用户名和邮箱

每次git提交都会使用到该消息。

git config --global user.name zdh2018 #账号
git config -global user.email dhzhang2020@163.com # 邮箱

如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要–global选项。总之–global为全局配置,不加为某个项目的特定配置。

1.5、Git中区域的划分

image-20211225172403348

Directory是Git中一个仓库,也即一个项目。分为:

  • workspace(工作空间):进行版本控制存储的目录文件
  • git:存放git管理信息
  • Index、Stage:暂存区,在提交到Repo之前会把更新放在暂存区(待提交更新区),一个文件,包含了即将提交的更改信息。
  • Local Repo,存放本地版本库,包含提交的所有版本的数据

image-20211225173920794

git管理文件三种状态:

  • 已修改(对workspace操作还没放到Stage区域)
  • 已暂存(staged)
  • 已提交(committed)

1.6、Git忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立".gitignore"文件,此文件有如下规则:

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#为注释
*.txt        #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt     #但lib.txt除外
/temp        #仅忽略项目根目录下的文件,不包括/temp/ted       
build/       #忽略目录下build子目录
doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

1.7、什么是origin、master、dev

一个代码库(repository)对应着一个项目,我们可以将项目托管到Gitee服务器,默认情况下,origin会指向本地代码库托管在Gitee上的版本

image-20211225165711043

这里的url就是origin指向的远程托管仓库代码库

这里的url可以通过指令git remote add origin git@github.com:imki911/myProject.git修改。

clone的是哪个代码库,origin默认就会指向哪个代码库。

查看代码库具体分支信息:git remote -v


master是主分支,一般用于最终版本的合并提交


dev一般是工作空间

2、基于Gitee的Git操作

2.1、本地公钥&私钥

在git bash中运行指令:ssh-keygen -t rsa,表明采用RSA加密协议。生成的一对公钥和私钥放在用户/.ssh目录下。

image-20211225175336407

然后我们将公钥复制到Gitee

image-20211225175619709

==添加完公钥之后可以实现Git无需登录直接提交。==否则,每次提交到远程仓库都需要重新输入账号密码。

2.2、在IDEA中集成Git

第一步:新建Git仓库:

image-20211225180327690

第二步:将Git仓库clone到本地:

image-20211225180534795

第三步:创建IDEA的Java项目,然后将git-learning克隆到本地的库ctrl+c全部复制到IDEA创建的Java目录下。

image-20211225180729123

第四步:在IDEA中打开Java项目,可以git add ., git commit -m “”, git push -u origin master了。

2.3、如何删除Gitee仓库

image-20211225164625783

3、进阶操作

3.1、Git分支

image-20211225181547519

每个分支代表一个单独的开发流程,类似于平行世界。

#列出所有远程分支
git branch -r

#合并指定分支到当前分支
git merge [branch]

假设管理员在操作master分支,要将dev分支上的修改拼接到master分支上,这就要用到merge。

  • 如果master和dev上都对同一个文件修改了怎么办?这时把master的修改部分merge pull到dev上,然后git status查看冲突部分,手动删除冲突部分

#合并指定分支到当前分支
git merge [branch]


假设管理员在操作master分支,要将dev分支上的修改拼接到master分支上,这就要用到merge。

* 如果master和dev上都对同一个文件修改了怎么办?==这时把master的修改部分merge pull到dev上,然后git status查看冲突部分,手动删除冲突部分==。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值