Git的基本使用

everything-is-local

Author:Exchanges

Version:9.0.2

一、引言


  • 在单人开发过程中,需要进行版本管理,以利于开发进度的控制。

  • 在多人开发过程中,不仅需要版本管理,还需要进行多人协同控制。

二、介绍


  • Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
  • Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
  • Git可以使用本地创建仓库与网络仓库,解决了集中管理型版本控制软件存在的一些问题(例如:SVN)。
  • 官网:https://git-scm.com/

三、Git安装


3.1 下载Git

下载Git: https://git-scm.com/downloads

下载git

3.2 安装

安装,除了安装位置外,其他一直下一步即可

安装完成后,在任意的文件目录下,右键都可以开打Git的命令行窗口。

3.3 基本配置

Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识,--global 表示全局属性,所有的git项目都会共用属性。

配置用户名

$ git config --global user.name "yangl7299"

配置邮箱

$ git config --global user.email "729953102@qq.com"

此时在C:\Users\Administrator\ .gitconfig文件可以查看到我们的配置信息。

四、工作区,暂存区,版本库


  • 工作区(Working Directory):电脑上的本地硬盘目录,平时存放项目代码的地方。

  • 暂存区(stage):用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息,一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

  • 版本库(Repository):工作区有个隐藏目录.git,它就是Git的本地仓库。

存储顺序:工作区 -->> 暂存区 -->> 版本库

五、基本操作


git的工作流程:

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库。

使用步骤:(首先设置电脑可以查看隐藏文件)

1.在任意位置创建空文件夹,作为项目目录,例如:在G盘右键创建git_repository文件夹

2.在项目文件夹内右键打开git bash窗口,输入命令: git init

此时git_repository目录下会生成一个隐藏的 .git 目录。

3.新建一个文件,例如:a.txt

4.输入命令:git add 文件名,此时是将文件添加到暂存区当中

5.输入命令:git status,查看暂存区状态

6.如需删除,可以输入命令:git rm --cached 文件名,此时是从暂存区中删除了,工作目录中还会存在该文件,删除之后再次查看,该文件名颜色已经发生变化

7.如需提交文件到本地库,输入命令:git commit ,提交完成后,会提示在文件中写一些备注(可写可不写),如需写可以使用i/a/o编辑文本(和Linux命令一样),然后保存并退出

另一种方式:使用git commit –m “注释内容”, 直接带注释提交

8.输入命令:git log 查看所有历史记录,输入命令:git log 文件名,查看该文件的历史记录

9.输入命令:git log --pretty=oneline 查看所有文件历史记录简易信息,输入命令:git log --pretty=oneline 文件名 查看该文件历史记录简易信息

  1. 输入命令:git reset --hard HEAD^ ,回退到上一次提交

    输入命令:git reset --hard HEAD~n,回退n次操作

11.输入命令:git reflog,查看历史记录的版本号,也可使用:git reflog 文件名,查看某个文件的版本号

​ 输入命令: git reset --hard 版本号

12.手动删除工作目录中的文件,然后输入命令:git checkout 文件名,可以恢复工作目录中已经删除的文件

13.手动删除工作目录中的文件,然后输入命令:git add 文件名 (此时该命令表示提交当前删除文件的操作)

然后输入命令:git commit -m "删除文件" (此时才是真正删除了该文件,但是此次删除只是这一次操作的版本号没有了,其他的都可以恢复)

恢复文件某个版本,可指定之前的版本号

5.分支相关操作

创建分支

输入命令:git branch <分支名>

输入命令:git branch –v,查看分支

切换分支

输入命令:git checkout <分支名>

切换到分支后,在分支下的操作,master(主线)不会有任何变化

此时在工作目录中可以查看到c.txt文件,但是当切换到master时,再去查看工作目录已经没有c.txt文件了

输入命令:git checkout –b <分支名>,将创建分支,切换分支一起完成

合并分支

输入命令:git checkout master,切换到主干

输入命令:git merge <分支名>,合并分支

此时在工作目录中又可以查看到c.txt文件了

冲突问题:当主线和分支合并之后,分支和主线都会有相同的文件,此时在主线中修改该文件内容并提交,在分支中也修改该文件内容并提交,再次合并时就会出现冲突,此时文件中会显示冲突内容,我们需要手动解决再合并了。

六、远程仓库


当多人协同开发时,每人都在自己的本地仓库维护版本。

但很重要的一点是,多人之间需要共享代码、合并代码,此时就需要一个远程仓库

6.1 远程仓库工作模式

远程仓库工作模式

6.2 远程仓库选型

  • 有很多远程仓库可以选择,比如 github(https://github.com/),码云(https://gitee.com/);

    此两种可以注册自己测试使用,但如果是商业项目,需要更多支持需要付费。

  • 公司内部也可以有自己构建的远程仓库

6.3 常用命令

命令 描述
git remote add 标识名(master) 远程地址 本地关联远程仓库
git push 标识名 master 将本地仓库内容上传到远程仓库
git pull 标识名 master 从远程仓库下载内容到本地仓库
git clone 远程地址 将远程仓库复制到本地,并自动形成一个本地仓库

6.4 把本地代码推送到远程仓库

1.在码云上创建仓库(裸库,只创建仓库,不创建文件)

2.增加远程地址:git remote add <远端代号> <远程仓库地址>

​ git remote add origin https://gitee.com/yangl729953102/git-01.git

3.推送到远程库:git push <远端代号> <本地分支名称>

​ git push origin master

创建裸库,不初始化仓库以及模版等

创建完毕

本地创建目录,添加文件到本地仓库,然后推送到远程仓库

如果输入用户名和密码不成功,需要先去控制面板把之前的密码删除,也有可能是曾经使用过码云,但密码有过改动,再次使用时会提示重新输入密码。

推送成功

查看结果

6.5把远程仓库中修改后的代码更新到本地

别人提交代码或手动更新远程仓库中的代码

更新到本地:git pull <远端代号> <远端分支名>

git pull origin master

6.6 克隆远程仓库

如果仓库已经由别人创建完毕,则可以通过 git clone 将其复制到本地,手动创建目录,在目录执行以下命令

git clone <远端地址> <新项目目录名>

git clone https://github.com/xxxxxxx.git

七、Idea推送项目到Gitee


7.1 关联Git

File > Settings 关联过程是自动的

7.2 在IDEA安装Gitee插件

7.3 登录Gitee

7.4 第一种方式,创建项目编写代码,直接分享到Gitee并创建远程仓库

7.5 设置Gitee远程仓库名称

7.6 推送项目

7.7 多人协作时,推送时的注意事项【重点】

如果是多人协作开发,自己项目中的 .idea 等文件需要忽略掉,只推送自己编写的核心代码,否则整个团队的项目可能会出现问题:

1.第一种方式,选择要推送的目录,但是每次都要选择对应目录,比较麻烦;

2.第二种方式,在IDEA中安装 .ignore 插件

在当前项目目录下,创建并编写 .gitignore 中的内容,指定需要忽略的文件,比如:target目录,*iml 以及.idea等文件

# Compiled class file
*.class
target

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar
*.iml
.idea

7.8 推送成功后在Gitee中查看

7.9 修改内容(模拟另一个人推送当前代码)

7.10 在IDEA中更新代码

7.11 在IDEA中更新代码

7.12 更新成功

7.13 第二种方式,先创建Gitee远程仓库(使用裸库)

7.14 在IDEA中创建git仓库

7.15 选择要推送的目录

7.16 添加到暂存区

7.17 添加到本地仓库

7.18 编写注释内容,然后提交

7.19 修改代码,再次add,再次commit,然后切换版本测试

7.20 选择分支

7.21 创建分支

7.22 命名并切换分支

7.23 在分支下编写代码并提交

7.24 切换到主线

7.25 合并分支

7.26 推送到Gitee

八、Idea克隆项目以及分支冲突


8.1 选择从Git中检出

8.2 选择要克隆的Gitee远程仓库以及存放的目录(提前创建好)

8.3 克隆项目成功

8.4 测试冲突

创建dev分支,然后创建一个类,切换到master,然后合并,最后在master和dev中分别对当前类进行修改并提交,然后再合并,则会发生冲突,我们可以选择close,然后手动解决冲突即可!

九、多人协同开发


9.1 项目管理员( 项目经理 )

1、由管理员负责创建一个远程库,初始的库中什么也没有,为裸库。库的名称建议和项目同名

2、管理员将本地库上传到远程库

3、将其他开发人员拉入远程库的 开发成员列表中 ,使得其他开发人员可以访问该远程库。

流程如下:

点击添加成员
选择直接添加
提交
查看已添加的开发成员

5> master分支设置为 protected分支,只有管理员有权限将代码合并到其中。dev分支设置为 常规分支所有开发人员都可以合并代码

进入分支设置
设置保护分支,让master分支不能被随更改

9.2 开发人员

1、初始化:在idea中clone 远程库,获得项目,会建立本地库。

2、后续的开发中,都要在dev分支上进行。开发完一个功能并测试通过后就commit 提交到本地的dev分支中,然后 上传(push)到远程dev分支中。

3、需要更新项目内容时,通过 pull 从远程仓库拉取内容。

4、注意:多人协同时,每次在 push 到远程库前,都先做一次pull,一来是把远程最新内容合并到本地,二来是核实本地内容是否和远程内容有冲突。

5、后续的开发,会接到一个个的功能任务,往复操作 2>、3>、4> 而已。

posted @ 2022-07-10 18:54  qtyanan  阅读(48)  评论(0编辑  收藏  举报