GIT使用文档

  1. Git中的名词解释
    1.1. Projects
    翻译为项目板,项目进度管理的工具,如进行工作计划的设置以及工作计划的跟踪等。
    1.2. Milestones
    可翻译为里程碑,项目进度管理工具,项目的具体任务清单,任务的开始时间和结束时间等。
    1.3. Repository
    翻译为仓库或版本库,可以存放代码、文档等。简单理解为一堆特殊格式的文件。
    按照文件的存放地址可以分为远程仓库、本地仓库,放在git服务器上的仓库可以称为远程仓库,放到本地机器的仓库可以称为本地仓库。
    1.4. Branch
    翻译为分支,比如我们有个程序叫QQ。我们的QQ要支持Windows、MacOS、Linux,这个时候我们的代码仓库可以有三个分支,win、mac、linux。每个分支对应一个平台版本。

1.5. Tag
翻译为标签,每次程序测试发版后,打一个标签,表示一个版本,如:V1.0.0、V1.0.1等。
1.6. Issue
翻译为事务、议题,issue在项目中可以承担用户反馈的作用,用户可以在这个地方提出bug反馈与优化建议,也可以为开发者服务,用于记录待完成的任务。每个issue可以包含该问题的前因后果,对于不了解项目的人员,整理的好的issue列表也有助于把握项目的优化内容。一般来说,可以包含以下内容:
–软件的bug
–功能优化建议
–待完成的任务
1.7. Wiki
可翻译为维基百科,提供了在线的文档编辑功能,类似于博客,可以记录一些技术文档等。
1.8. Groups
可翻译为用户组,多个共同做项目的用户集合。Projects、Repository可以属于组织也可以属于用户。
1.9. Role
可翻译为角色。Git系统中包含5种角色,如下:
Guest:访客,可以创建issue、发表评论,不能读写版本库
Reporter:记录者,记者,可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer:开发者,可以克隆代码、开发、提交、push,RD可以赋予这个权限
Master:维护者,可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD(Research and Development engineer,研发工程师)负责人可以赋予这个权限
Owner:所有者,可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限
1.10. Permissions
可翻译为权限。Git系统中包含3种角色,如下:
Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
1.11. Watch
可翻译为关注、观察。将项目或仓库设置为watch后, 这个项目发生变动,如被别人提交了pull request、被别人发起了issue等等情况后,会发送消息至配置的邮箱中。
1.12. Star
可翻译为星星。可理解为项目点赞、收藏的意思。

1.13. Fork
可翻译为分流、分叉、复制。Fork后,系统会复制一份repository变成自己的仓库了。如,原工程是框架类型的工程,Fork为自己的repository,变成业务型的工程,添加业务代码,有些好的基础代码,也可以发起Pull Request,申请合并到框架类型的工程中。Fork前的仓库可以称做upstream,上游仓库。
1.14. Workspace
可翻译为工作区。即文件在硬盘上的实际存放区域,物理目录如下图:
GIT使用文档_第1张图片

1.15. Staged/Index
可翻译为缓存区。即实际上是包含文件索引的目录树,通过git add命令可以将Workspace中的文件添加至Index索引,并将实际文件放入objects文件夹下。
物理目录如下图:
GIT使用文档_第2张图片
GIT使用文档_第3张图片

1.16. Local Repository/Head
可翻译为本地仓库/本地版本库。和Index一样,也是包含文件索引的目录树,通过git commit命令可将代码从Index中提交到本地仓库(Head指的是当前操作的本地仓库分支,可以代表本地仓库)。
GIT使用文档_第4张图片
GIT使用文档_第5张图片

1.17. 工作区、缓存区、版本库的关系
GIT使用文档_第6张图片

  1. Git Bash下载及安装
    下载地址:
    1,git下载地址:https://github.com/git-for-
    windows/git/releases/download/v2.22.0.windows.1/Git-2.22.0-64-
    bit.exe
    2,git下载地址:https://git-scm.com/downloads

验证是否安装成功:cmd窗口输入git --version进行验证。
GIT使用文档_第7张图片

  1. Git用户界面
    3.1. 仓库权限设置

Git权限设置主要适用于仓库管理员和群组管理员。

3.1.1. 分支保护设置
仓库创建后,默认的主分支master只允许Maintainers可以merge和push,可以根据需要对不同分支设置对应的权限。
进入仓库,点击【Settings】【Repository】【Expand】按钮,下拉滚动条,可以看到branch列表,选择对应的角色授权即可。
GIT使用文档_第8张图片
GIT使用文档_第9张图片

3.1.2. 项目添加成员
进入仓库,点击【Settings】【Members】按钮,填写对应的成员和角色即可。

GIT使用文档_第10张图片

3.1.3. 设置仓库可见级别
进入仓库,点击【Settings】【General】按钮,选择对应的可见等级即可。

GIT使用文档_第11张图片

3.2. 新建标签
3.2.1. 进入仓库详情界面,点击【Tags】按钮

GIT使用文档_第12张图片

3.2.2. 点击【New tag】按钮

GIT使用文档_第13张图片

3.2.3. 填写相关表单内容,点击【Create tag】按钮
GIT使用文档_第14张图片

3.2.4. 在tag列表界面中,即可看到刚建的tag。
列表界面为第二步的地址。
GIT使用文档_第15张图片

3.3. 新建分支
3.3.1. 进入仓库详情界面,点击【Branch】按钮
GIT使用文档_第16张图片

3.3.2. 点击【New branch】按钮
GIT使用文档_第17张图片

3.3.3. 填写相关表单内容,点击【Create branch】按钮

GIT使用文档_第18张图片

3.3.4. 在branch列表界面中,即可看到刚建的tag。
列表界面为第二步的地址。
GIT使用文档_第19张图片

3.4. 发起pull request

GIT使用文档_第20张图片

GIT使用文档_第21张图片
GIT使用文档_第22张图片

3.5. 处理pull request

GIT使用文档_第23张图片
GIT使用文档_第24张图片

GIT使用文档_第25张图片
GIT使用文档_第26张图片
GIT使用文档_第27张图片

  1. Git Bash环境
    4.1. Git的配置文件
    Git的配置文件有三种,分别是系统级、用户级、仓库级。每一个级别会覆盖上一级别的配置。
    系统级配置文件路径:在ProgramData下和安装目录的etc文件夹下
    用户级配置文件路径:在用户目录下
    仓库级配置文件路径:在本地仓库的.git文件夹路径下
    可通过以下路径查看配置及配置文件路径:
    git config --list --show-origin
    GIT使用文档_第28张图片

4.2. 设置姓名及邮箱
因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中。
–global选项会将配置写入到用户级配置文件中。
git config --global user.name “John Doe”
git config --global user.email “[email protected]

  1. 使用git命令

5.1. 创建本地仓库
如果采用git clone的方式获取远程代码,则在clone的时候会自动创建本地仓库,不需要再创建本地仓库。
5.1.1. 创建空文件夹
5.1.2. 在文件夹中执行以下命令,本地仓库初始化:
git init
会看到,文件夹中多了一个名称为.git的文件夹,如下图
在这里插入图片描述

5.1.3. 创建README.md文件:
Windows系统可直接创建txt文件,修改后缀为.md即可。Linux系统可执行以下命令:
touch README.md

README.md文件不是必须的,但最好有,里面可能的内容如下(下图中的文件内容为通过gitee页面添加):
GIT使用文档_第29张图片

5.1.4. 将README.md文件添加至提交列表:
git add README.md

5.1.5. 提交README.md文件至本地仓库:
引号中的内容为提交注释
git commit -m “first commit”

5.1.6. 添加远程仓库地址:
origin就是一个名字,是远程仓库的一个别名,它是在你clone一个托管在Github上代码库时,git为你默认创建的指向这个远程代码库的标签, origin指向的是repository,master只是这个repository中默认创建的第一个branch。当你git push的时候因为origin和master都是默认创建的,所以可以这样省略。

git remote add origin https://gitee.com/loyuru/shangchuanceshi.git

git remote add 添加一个新的远程 Git 仓库

5.1.7. 将本地仓库中的文件push到远程仓库:
master为远程仓库的默认分支。
git push -u origin master(可以直接使用git push)
GIT使用文档_第30张图片

5.2. 查看文件状态
命令如下:
git status
执行结果如下图:
Changes to be committed是缓存区中待提交到本地仓库的文件。
Changes not staged for commit是工作区中需要添加到缓存区中的被修改的文件。
Untracked files是工作区新增的文件,尚未被添加至缓存区。

GIT使用文档_第31张图片

下图为文件状态变化逻辑图:

GIT使用文档_第32张图片

5.3. 分支命令操作
5.3.1. 本地创建分支
git branch dev

5.3.2. 把本地分支提交到远程仓库
git branch dev
5.3.3. 查看当前分支
git branch -a
5.3.4. 切换分支
切换前要保证所有内容都已经commit
git checkout -b <分支名称>
5.3.5. 切换分支
进行merge前需要使用git pull命令将需要合并的分支代码下载到本地仓库
git merge <分支名称>
5.4. 标签命令操作
tag标签因为是历史代码,实际上只是一个快照,不是独立的文件空间,所以不能改动,如果必须改动,则需要新建一个分支,将tag中的内容pull到分支里改动。
5.4.1. 查看本地标签
git tag
在这里插入图片描述

5.4.2. 检出指定标签代码
git checkout < 标签名 >

GIT使用文档_第33张图片

5.4.3. 返回当前代码
git checkout < 分支名>
GIT使用文档_第34张图片

5.5. 工作区与缓存区相关操作命令

5.5.1. 工作区代码添加至缓存区
当对工作区修改(或新增)的文件执行 “git add” 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。
git add 文件名

5.5.2. 缓存区代码的回退

当执行 “git rm –cached ” 命令时,会直接从暂存区删除文件,工作区则不做出改变。

当执行 “git checkout .”(后面的.表示所有文件) 或者 “git checkout –- 文件名 ” 命令时,会用暂存区全部或指定的文件替换工作区的文件。
5.5.3. 比较工作区和暂存区的差别
执行 “git diff” 命令
5.5.4. 比较工作区和本地仓库的差别
执行 “git diff HEAD” 命令
5.5.5. 已跟踪的文件改名
执行以下命令 ,会将工作区和缓存区的文件都重命名
git mv file_from file_to
5.6. 缓存区与本地仓库相关操作命令

5.6.1. 缓存区代码提交至本地仓库
执行以下命令可将缓存区代码提交至本地仓库,提交注释不能省略,文件名不写表示提交全部。

git commit -m “提交注释” 文件名

5.6.2. 缓存区目录重置

当执行 “git reset HEAD 文件名” 命令时,暂存区的目录树会被重写,被本地仓库目录树所替换,但是工作区不受影响。

5.6.3. 比较缓存区与本地仓库的差别
执行 “git diff --cached” 命令

5.7. 远程仓库与本地仓库相关操作命令
5.7.1. 远程仓库克隆至本地仓库
新建空白文件夹,并执行以下命令可从远程仓库克隆默认分支代码至本地仓库,后面的url为远程仓库的url:
git clone https://gitee.com/loyuru/java-base-demo.git

执行以下命令可从远程仓库克隆指定分支代码至本地仓库。
git clone -b dev https://gitee.com/loyuru/shangchuanceshi.git

5.7.2. 查看远程仓库地址
在本地仓库文件夹中,即有.git文件夹的目录中执行以下命令,可以查看远程仓库地址:
git remote -v
执行结果如下图:
GIT使用文档_第35张图片

执行以下命令可以查看远程仓库的详细信息:
语法:git remote show
示例:git remote show origin
GIT使用文档_第36张图片

5.7.3. 查看远程仓库分支
执行以下命令,可以查看远程仓库的分支列表
git branch -a
执行结果图如下:
GIT使用文档_第37张图片

远程仓库在界面上的分支如图:

GIT使用文档_第38张图片

5.7.4. Push本地仓库代码至远程仓库

语法:git push
示例:git push origin master

5.7.5. Pull远程仓库代码至本地仓库
git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。

5.7.6. Fetch远程仓库代码至本地仓库
git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。 必须注意 git fetch 命令只会将数据下载到你的本地仓库——它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。

语法:git fetch
示例:git fetch origin
融合:git merge origin/master

5.7.7. 远程仓库的重命名与移除
重命名:
语法:git remote rename
示例:git remote rename pb paul

移除:
语法:git remote remove
示例:git remote remove paul

5.8. Fork前上游仓库与fork后个人远程仓库相关操作命令
5.8.1. 拉取上游仓库最新代码
fork后,如果上游仓库有更新,可以通过以下方式进行代码更新。
(1)设置源仓库的远程地址
语法:git remote add [新地址名称] [源仓库远程地址]
示例:git remote add upstream http://test
(2)同步fork
语法:git fetch [新地址名称]
示例:git fetch upstream
(3)本地切换到想要更新的分支上
语法:git checkout [branch]
示例:git checkout master
(4)把源仓库的远程分支合并到本地
语法:git merge [新地址名称/分支]
示例:git merge upstream/master
(5)更新到自己的远程库上
git push origin master

5.8.2. 向上游仓库发起拉取请求
拉取请求的作用是请求您的上游项目将您个人远程仓库中的更改拖入其树中。start表示从上游项目的哪个版本(或commit)开始fork的,url指的你的仓库url,end表示要pull到你的仓库的哪个版本(或commit)。
语法:git request-pull []
示例:git request-pull v1.0 https://git.ko.xz/project master
示例说明:这会向上游产生一个请求,总结v1.0版本后你在master分支做的变化,从而将它从你的公共存储库中提取出来merge到你上游仓库中。

  1. Idea中使用git
    在Idea中使用git,实际上是idea将git命令图形化了。
    6.1. 新建本地仓库
    新建工程后,第一次上传代码时,需要创建本地仓库。
    6.1.1. 点击【VCS】【Import into Version Control】【Create Git Repository】
    GIT使用文档_第39张图片

6.1.2. 选择对应的目录,点击【OK】
一般选择工作空间,即工程的上级目录
GIT使用文档_第40张图片

6.2. 添加远程仓库地址
6.2.1. 点击【VCS】【Git】【Remotes】打开远程仓库列表
GIT使用文档_第41张图片

6.2.2. 点击加号按钮,输入远程仓库URL并点击【OK】按钮。

GIT使用文档_第42张图片
GIT使用文档_第43张图片

6.2.3. 界面提示输入用户名,密码,输入之后,点击【Log In】按钮。

GIT使用文档_第44张图片

6.2.4. 远程仓库URL添加成功后,如下图:
GIT使用文档_第45张图片

6.3. 导入代码
可以使用git clone命令将代码下载至本地仓库,然后通过普通导入maven工程的方式导入到idea中,也可以使用以下界面操作。
6.3.1. 在idea中选择git安装的位置
如下图所示:
右击file–>Setting–>,会打开Setting对话框,如下图:
GIT使用文档_第46张图片

6.3.2. 选择git方式导入项目
从idea的引导页面或idea中CVS下拉菜单中选择Git方式导入

GIT使用文档_第47张图片

GIT使用文档_第48张图片

6.3.3. 选择git路径及本地路径,点击【Clone】按钮
GIT使用文档_第49张图片

6.3.4. 下载完成后,点击【yes】创建idea工程

GIT使用文档_第50张图片

6.3.5. 选择maven,点击【Next】
GIT使用文档_第51张图片

6.3.6. 继续点击【Next】

GIT使用文档_第52张图片

6.3.7. 选择Search for projects recursively并点击【Next】
GIT使用文档_第53张图片

6.3.8. 选择需要导入的项目并点击【Next】

GIT使用文档_第54张图片

6.3.9. 继续点击【Next】
GIT使用文档_第55张图片

6.3.10. 点击【Finish】
GIT使用文档_第56张图片

6.3.11. 工程导入成功,若有报错等,可以在右侧maven窗口手动添加、更新maven工程

GIT使用文档_第57张图片

6.4. 更新代码
6.4.1. 选择需要更新的工程目录,右键点击【Git】【Repository】【Pull】
GIT使用文档_第58张图片

6.5. 新增代码的上传
6.5.1. 新增的代码类名会显示为红色,如下图

GIT使用文档_第59张图片

6.5.2. 右击需要上传的代码,选择【Git】【Add】
GIT使用文档_第60张图片

6.5.3. 代码名称会变为绿色,如图:

GIT使用文档_第61张图片

6.5.4. 点击右上角Git后面的对号,或选择【VCS】【Commit】打开提交列表

GIT使用文档_第62张图片
GIT使用文档_第63张图片

GIT使用文档_第64张图片

6.5.5. 填写Commit Message并点击【Commit】按钮后,代码提交至本地仓库

GIT使用文档_第65张图片
GIT使用文档_第66张图片

6.5.6. 选择【VCS】【Git】【Push】打开push窗口
GIT使用文档_第67张图片
在这里插入图片描述

6.5.7. 选择需要push到远程仓库的代码,然后点击【Push】后,代码成功提交到远程仓库。
PS:如果是第一次提交,需要填写远程仓库的用户名和密码。下图为远程仓库中看到的自己提交的代码。
GIT使用文档_第68张图片

6.6. 修改代码的上传

点击右上角Git后面的对号,或选择【VCS】【Commit】打开提交列表,可以看到需要提交的代码,后续步骤同【新增代码的上传】章节中的4-7步。
6.7. 删除代码的上传
删除代码后,按照新增修改的方式,进行commit、push即可。
6.8. 文件重命名的上传
重命名后,按照新增修改的方式,进行commit、push即可。
6.9. 冲突文件的push
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200902234957218.png#pic_center

如果,需要push到远程仓库的代码文件被别人修改过,则需要进行merge处理。Idea会自动弹出merge框。如下图

GIT使用文档_第69张图片

6.9.1. 点击【Merge】按钮,弹出冲突文件选择框,如下。
GIT使用文档_第70张图片

6.9.2. 点击【Merge】按钮,弹出文件对比框,如下。

GIT使用文档_第71张图片

通过调整箭头和叉号,进行merge处理,并apply后,代码提交成功。

6.10. Push权限提示
如果push时出现如下提示,可联系gitlab管理员添加push权限。
在这里插入图片描述

6.11. 查看历史记录
选中文件,依次选择【VCS】【Local History】【Show History】可以查看本地缓存仓库的历史列表,如图:

GIT使用文档_第72张图片
GIT使用文档_第73张图片

  1. eclipse中使用git
    7.1. 从git中导入工程

可以使用git clone命令将代码下载至本地仓库,然后通过普通导入maven工程的方式导入到idea中,也可以通过下面界面操作导入。

7.1.1. 选择【Import projects】【Git】【Projects from Git】点击【next】
GIT使用文档_第74张图片

7.1.2. 选择【Clone URI】,点击【next】

GIT使用文档_第75张图片

7.1.3. 选择本地路径
GIT使用文档_第76张图片

7.1.4. 填写远程仓库地址、用户名、密码等,点击next

GIT使用文档_第77张图片

7.1.5. 选择需要克隆的分支,点击next
GIT使用文档_第78张图片

7.1.6. 选择本地仓库地址,点击next

GIT使用文档_第79张图片

7.1.7. 选择工程导入方式,Import as general project,点击next
GIT使用文档_第80张图片

7.1.8. 点击finish
GIT使用文档_第81张图片

7.1.9. 完成后,删掉工程,重新导入为maven工程即可
GIT使用文档_第82张图片

7.2. 新建工程及仓库的创建
7.2.1. 新建maven工程

GIT使用文档_第83张图片

GIT使用文档_第84张图片

7.2.2. 右键工程,选择【Team】【Share Project】

GIT使用文档_第85张图片

7.2.3. 选择Use or create repository in parent folder of project

GIT使用文档_第86张图片

7.2.4. 选择工程后,点击Create Repository
GIT使用文档_第87张图片
GIT使用文档_第88张图片

7.2.5. 点击finish,本地仓库创建完成

GIT使用文档_第89张图片

7.2.6. 点击【Team】【Add to index】将工程加入到缓存区提交列表

GIT使用文档_第90张图片

7.2.7. 打开Git Staging窗口
通过WindowShow ViewOtherGit打开Git Staging窗口,打开后点击Commit and Push按钮。
GIT使用文档_第91张图片

7.2.8. 填写远程路径,一直点击next

GIT使用文档_第92张图片

GIT使用文档_第93张图片

7.2.9. 执行结果查看
执行结果中如果有红色提示,则表示push不成功,push前需要先执行pull操作,保持与远程仓库的代码一致。

GIT使用文档_第94张图片
GIT使用文档_第95张图片

7.2.10. 也可以通过Git Repositories进行仓库创建、克隆
通过WindowShow ViewOtherGit打开Git Repositories窗口。

GIT使用文档_第96张图片

7.3. 新增代码的上传
7.3.1. 添加至index
可右键新增的代码,选择【Team】【Add to index】将新增代码添加至缓存区提交列表

GIT使用文档_第97张图片

也可以在Git Staging窗口,右键文件选择Add to index将文件添加至缓存区提交列表

GIT使用文档_第98张图片

7.3.2. Commit至本地仓库
可右键代码选择【Team】【Commit】
GIT使用文档_第99张图片

7.3.3. Push至远程仓库
可右键代码选择【Team】【Push to Upstream】

在这里插入图片描述

点击Configure

GIT使用文档_第100张图片

点击Save an Push

GIT使用文档_第101张图片

返回界面如果没有红色提示,则表示上传成功

GIT使用文档_第102张图片

7.4. 修改、删除、重命名代码的上传
在本地修改后,后续的处理过程同新增代码。

你可能感兴趣的:(git)