初学者应该怎么学git-下

初学者应该怎么学git-下

Git 文件管理

文件四种状态

● 版本控制就是对文件的版本控制,在Git 管理中,文件被统一管理,有四个状态

  1. Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git 库, 不参与版本控制. 通过git add 状态变为Staged

  2. Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种处理方式, 如果它被修改, 变为Modified. 如果使用git rm 移出版本库,则成为Untracked

  3. Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这种文件有两个去处, 通过git add 可进入暂存staged 状态, 使用git checkout 则丢弃修改过, 返回到unmodify 状态,这个git checkout 即从库中取出文件, 覆盖当前修改

  4. Staged: 暂存状态. 执行git commit 则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify 状态. 执行git reset HEAD filename 取消暂存, 文件状态为Modified

文件操作指令

查看指定文件状态

git status [filename]

先在D:\hellogit2\lunar-javascript , 创建一个测试文件ABC.txt 对应的是Untracked未跟踪 可以使用git add 入库
初学者应该怎么学git-下_第1张图片

查看所有文件状态

git status

在这里插入图片描述

初学者应该怎么学git-下_第2张图片

添加所有文件到暂存区

git add .

初学者应该怎么学git-下_第3张图片

提交暂存区中的内容到本地仓库

git commit -m “消息内容”

初学者应该怎么学git-下_第4张图片

忽略文件

实际需求:我们不想把某些文件纳入版本控制中, 如何处理?

忽略文件处理方式

● 不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等, 在主目录下建立".gitignore"文件(默认就有),此文件有如下规则:

  1. 忽略文件中的空行或以井号(#)开始的行
  2. 支持Linux 通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符(/),表示忽略.gitignore 文件所在的目录,不包括其任何子目录中的dir 目录
  5. 如果名称的最后面是一个路径分隔符(/),忽略.gitignore 文件所在的目录和所有子目录的dir 目录
*.java #忽略所有.java 结尾的文件
!wyx.java #wyx.java 除外

还有很多可以去看这一篇博客

(2条消息) .gitignore文件语法和常见写法(就看这篇就行了)_.gitignore 区分大小写_石头wang的博客-CSDN博客

初学者应该怎么学git-下_第5张图片
初学者应该怎么学git-下_第6张图片

看一个实例

在这里插入图片描述

文件D:\hello_git2\lunar-javascript.gitignore

初学者应该怎么学git-下_第7张图片

Gitee 创建代码仓库

创建Gitee 账号

  1. gitee 官网:https://gitee.com/

  2. 注册地址:https://gitee.com/signup

  3. 也可以使用微信、QQ、Github 账号登录…

创建账号-具体操作

  1. 注册地址: https://gitee.com/signup
  2. 查看邮箱,得到验证码
  3. 填写得到的验证码和你的gitee 账号密码
  4. 点击注册, 如果都填写正确,就会注册成功,进入gitee

初学者应该怎么学git-下_第8张图片

创建仓库

点击创建仓库

初学者应该怎么学git-下_第9张图片

输入仓库的信息, 仓库开源, 需要绑定手机号.

初学者应该怎么学git-下_第10张图片

点击创建

初学者应该怎么学git-下_第11张图片

设置本机绑定SSH 公钥,实现免密登录

生成SSH 公钥

  1. 进入C:\Users\Administrator.ssh , 没有就手动创建该文件夹
  2. 如果该目录下有相应文件,先删除(第一次操作是没有的)

在这里插入图片描述

  1. 执行指令ssh-keygen , 生成文件(说明:直接回车即可), ssh-keygen 指令更多说明:https://blog.csdn.net/weixin_37335761/article/details/120146098
  2. 比如: ssh-keygen -t rsa-C ‘[email protected]’ -f ~/.ssh/github_id_rsa

我这里就简单一点就是直接 ssh-keygen 但是去公司上班或者合作开发推荐复杂一点 我这是只是学习为主没有什么重要资料

初学者应该怎么学git-下_第12张图片

执行完之后就会生成

初学者应该怎么学git-下_第13张图片

将公钥信息public key 添加到码云账户

  1. 点击设置

初学者应该怎么学git-下_第14张图片

  1. 点击SSH 公钥

在这里插入图片描述

  1. 复制生成的id_rsa.pub 内容

初学者应该怎么学git-下_第15张图片

  1. 拷贝到如下位置

初学者应该怎么学git-下_第16张图片

  1. 提示输入密码验证,然后就成功了

初学者应该怎么学git-下_第17张图片

将创建的仓库-克隆到本地

  1. 先找到仓库,并得到仓库地址url

初学者应该怎么学git-下_第18张图片

  1. 创建D:\gitee_hello_java
  2. 执行克隆指令

初学者应该怎么学git-下_第19张图片

  1. 克隆成功
    初学者应该怎么学git-下_第20张图片

IDEA 项目使用Git 管理

需求1-说明

将gitee 创建的wyxjava 项目拉取到IDEA,进行管理

需求1-实现步骤

界面操作

  1. 将Gitee 初始化wyxjava,拉取到IDEA

初学者应该怎么学git-下_第21张图片

初学者应该怎么学git-下_第22张图片

初学者应该怎么学git-下_第23张图片

  1. 创建一个crm 模块,进行测试

初学者应该怎么学git-下_第24张图片

初学者应该怎么学git-下_第25张图片

初学者应该怎么学git-下_第26张图片

  1. 创建HI.java, 进行测试

初学者应该怎么学git-下_第27张图片

  1. 将HI.java add 到git, 说明:将HI.java 加入到暂存区
    初学者应该怎么学git-下_第28张图片

  2. 将HI.java commit 到git
    ​ commit 只是将HI.java 提交到本地仓库
    ​ 并没有push 到远程仓库(即GitHub/Gitee)

初学者应该怎么学git-下_第29张图片

  1. 将HI.java push 到Gitee , 会输入用户名密码验证(是Gitee 的账号).

初学者应该怎么学git-下_第30张图片

  1. 观察Gitee 上项目的变化

初学者应该怎么学git-下_第31张图片

也可以使用命令行完成

● 操作指令

测试: 创建一个新文件OK.java
初学者应该怎么学git-下_第32张图片

看下Gitee 项目的变化,会与新的push 文件

在这里插入图片描述

需求2-说明

创建了一个IDEA 项目(没有从Gitee 拉取), 后面又希望和Gitee 的某个代码仓库关联,如何操作?

需求2-实现步骤

界面操作

  1. 在Gitee 创建一个仓库,比如wyx-sns

在这里插入图片描述

初学者应该怎么学git-下_第33张图片

  1. 创建一个springboot /maven 项目wyx-sns
  2. 克隆gitee 的wyx-sns 到d:/git-wyx-sns

初学者应该怎么学git-下_第34张图片

  1. 将克隆下拉的wyx-sns 的文件,拷贝到IDEA 对应项目中

初学者应该怎么学git-下_第35张图片

  1. 刷新,或者重启IDEA 项目

初学者应该怎么学git-下_第36张图片

  1. 创建文件Hello.java
public class Hello {
public static void main(String[] args) {
		System.out.println("xxx");
	}
}
  1. 完成add, commit , push 一系列操作

初学者应该怎么学git-下_第37张图片

  1. 观察gitee 上项目的变化
    初学者应该怎么学git-下_第38张图片

也可以使用命令行完成

如何查看操作记录

示意图

初学者应该怎么学git-下_第39张图片

GIT 分支管理

介绍

一个分支实例

项目地址https://gitee.com/ZhongBangKeJi/CRMEB-Min

初学者应该怎么学git-下_第40张图片

分支合并示意图

初学者应该怎么学git-下_第41张图片

  1. 分支可以有多个(根据业务需求)
  2. 如果各分支没有交集,始终平行发展,则不需要合并(merge)
  3. 如果两个分支,需要合并,则执行merge 操作

创建IDEA Maven 项目, 和Gitee 的wyx-erp 代码仓库关联

  1. 先在Gitee 创建仓库wyx-erp, 并设置成开源
  2. 在新的目录比如d:/idea_projects 使用idea 创建wyx-erp maven, 并和Gitee 仓库wyx-erp关联, 前面已经讲过了,可以去看看
  3. 创建文件wyxErpApplication.java , 写入一些内容
  4. 将wyxErpApplication.java push 到Gitee 远程仓库, 执行add->commit->push
  5. 观察Gitee 远程仓库是否已经push 成功

git 分支指令

地址: https://gitee.com/all-about-git

指令一览

# 列出所有本地分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 列出所有本地分支和远程分支
$ git branch -a
# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]
# 新建一个分支,并切换到该分支
$ git checkout -b [branch]
# 新建一个分支,指向指定commit
$ git branch [branch] [commit]
# 新建一个分支,与指定的远程分支建立追踪关系
$ git branch --track [branch] [remote-branch]
# 切换到指定分支,并更新工作区
$ git checkout [branch-name]
# 切换到上一个分支
$ git checkout -
# 建立追踪关系,在现有分支与指定的远程分支之间
$ git branch --set-upstream [branch] [remote-branch]
# 合并指定分支到当前分支
$ git merge [branch]
# 选择一个commit,合并进当前分支
$ git cherry-pick [commit]
# 删除分支
$ git branch -d [branch-name]
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

应用实例

需求:克隆wyx-erp 仓库, 创建分支v1.0, 并提交到远程仓库

指令操作演示

初学者应该怎么学git-下_第42张图片

初学者应该怎么学git-下_第43张图片

初学者应该怎么学git-下_第44张图片

初学者应该怎么学git-下_第45张图片

初学者应该怎么学git-下_第46张图片

IDEA 项目创建分支

  1. 创建分支

初学者应该怎么学git-下_第47张图片

初学者应该怎么学git-下_第48张图片

初学者应该怎么学git-下_第49张图片

  1. 把分支同步到Gitee 远程仓库

初学者应该怎么学git-下_第50张图片

初学者应该怎么学git-下_第51张图片

初学者应该怎么学git-下_第52张图片

  1. 查看远程仓库

初学者应该怎么学git-下_第53张图片

IDEA 项目切换分支, 进行工作

  1. 切换分支(指令checkout)

初学者应该怎么学git-下_第54张图片

在这里插入图片描述

  1. 在v2.0 分支下, 我们修改/增加一下文件, 就是针对当前v2.0 的
    初学者应该怎么学git-下_第55张图片

  2. 把wyxErpApplication.java Add->Commit->Push 到Remote 仓库, 按照老师步骤来.

执行Add

执行Commit

执行Push

初学者应该怎么学git-下_第56张图片

  1. 观察Gitee 的远程仓库变化

初学者应该怎么学git-下_第57张图片

  1. 观察本地仓库版本切换的变化

初学者应该怎么学git-下_第58张图片

初学者应该怎么学git-下_第59张图片

IDEA 项目分支合并, 没有冲突的情况

● 在进行分支合并时, 如果没有冲突(比如没有修改同一个文件), 这时会比较顺畅.

  1. 案例演示/需求说明: 将分支v3.0 合并到Master 主分支
  2. 从master 开一个分支v3.0, 在v3.0 增加一些文件, 不在master 和v3.0 修改同一个文件
  3. 将分支v3.0, 同步到Gitee 远程仓库, 操作步骤和前面一样开v2.0 一样.

初学者应该怎么学git-下_第60张图片

初学者应该怎么学git-下_第61张图片

切换到v3.0, 并增加一个文件Hi.java, 并Add->Commit->Push 到远程仓库

初学者应该怎么学git-下_第62张图片

初学者应该怎么学git-下_第63张图片

注意看Master 主分支,在本地仓库和远程仓库, 都没有Hi.java

初学者应该怎么学git-下_第64张图片

初学者应该怎么学git-下_第65张图片

将v3.0 合并到Master 分支, 注意当前是Master 主分支(看图标)

初学者应该怎么学git-下_第66张图片

初学者应该怎么学git-下_第67张图片

注意看Master 主分支,这时在本地仓库, 有Hi.java , 但是远程仓库还没有

初学者应该怎么学git-下_第68张图片

初学者应该怎么学git-下_第69张图片

将本地的Master 分支, Push 到远程仓库, 这时观察远程仓库Master 下也有HI.java 了
初学者应该怎么学git-下_第70张图片

初学者应该怎么学git-下_第71张图片

IDEA 项目分支合并, 有冲突的情况

接受某一方, 解决冲突

● 如果同一文件在合并分支时都被修改了则会引起冲突, 修改冲突文件后重新提交(说明:这时要决定保留哪个分支代码)

  1. 案例演示/需求说明: 将分支v3.0 合并到Master 主分支
  2. 切换到v3.0, 修改wyxErpApplication.java

初学者应该怎么学git-下_第72张图片

  1. 把wyxErpApplication.java 进行Add->Commit->Push 操作(如果已经Add 过, 就不需要Add),

  2. 切换到Master, 也修改一下Master 的wyxErpApplication.java , 同样进行Add->Commit->Push (如果已经Add 过, 就不需要Add) 操作.

  3. 将V3.0 合并到Master

初学者应该怎么学git-下_第73张图片

初学者应该怎么学git-下_第74张图片

  1. 出现冲突
    初学者应该怎么学git-下_第75张图片

初学者应该怎么学git-下_第76张图片

  1. 观察本地的Master 分支的wyxErpApplication.java , 已经和V3.0 一致了, 但是远程仓库的Master 还是没有变化, (原因Master 分支还没有Push)

初学者应该怎么学git-下_第77张图片

初学者应该怎么学git-下_第78张图片

  1. 再将Master Push 到Gitee 远程仓库, 就会看到相应的变化(注意在Push 前, 请确认要Push 的文件/文件夹是已经Committed, 否则你看不到变化.)
    初学者应该怎么学git-下_第79张图片

手动修改,解决冲突 也有一样的

IDEA 项目删除分支

彻底删除某个分支

  1. 如果某个分支不需要了, 可以删除, 一定要慎重

初学者应该怎么学git-下_第80张图片

初学者应该怎么学git-下_第81张图片

  1. 注意观察远程仓库, 分支V3.0 也没有了
    初学者应该怎么学git-下_第82张图片

只删除本地分支, 还可以重新获取

注意事项和细节说明

  1. 如果同一文件在合并分支时都被修改了则会引起冲突, 修改冲突文件后重新提交(说明:这时要决定保留哪个分支代码)
  2. Master 主分支应该非常稳定,用来发布新版本,一般情况下不要在上面工作,工作一般在新建的分支(比如dev、v1.0、v2.0)上工作
  3. 分支代码稳定后,可以合并到主分支Master
  4. 在进行分支合并时, 最好是各分支都已经处于Committed 的状态, 这样可以减小处理合并冲突的难度.
  5. Push 操作, 是Push 你已经Committed 的代码, 如果你修改了一个文件, 但是你没有执行Commit ,那么你Push 的其实是上次Committed 的状态
  6. add 、commit 、push 的操作可以针对单个文件, 也可以针对文件夹(可以看一下Idea的git 操作菜单)
  7. 文件要Commit 前需要先Add 到暂存区, 以后文件修改了, 就可以直接Commit
  8. 如果要删除文件, 可以在本地删除该文件, 然后commit 文件所在文件夹即可, 并重新push 该分支, 那么在远程仓库, 也会删除对应分支的文件.

你可能感兴趣的:(项目,git,github,linux,运维,服务器)