git 基本使用

一、git 基本指令

1、创建版本库

  • 在项目文件夹内, 执行: git init

2、提交文件

指令 描述
git status 进行查看文件状态
git add 文件名 将文件添加到暂存区
git commit 提交文件到本地库
git commit -m “注释内容” 编写注释,完成提交

3、查看文件提交记录

  • 执行 git log 文件名 进行查看历史记录

git 基本使用_第1张图片

  • git log --pretty=oneline 文件名 (简易信息查看)

git 基本使用_第2张图片

4、回退历史

  • git reset --hard HEAD^ 回到上一次提交
  • git rest – hard HEAD~n 回退n次操作(回退2次版本以上,就建议使用此指令)

5、版本穿越

  • 进行查看历史记录的版本号,执行 git reflog 文件名

git 基本使用_第3张图片

  • 执行git reset --hard 版本号

image-20200815104516177

6、还原文件

  • git checkout – 文件名

image-20200815104738820

7、删除某个文件

  • 先删除文件,在git add 提交

8、git 结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VvXQrF1U-1597656648429)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\image-20200815105512715.png)]

  • 工作区:就是电脑的本地的磁盘目录
  • 本地库:工作区有个掩藏目录.git,它就是Git的本地版本库
  • 暂存区:一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫索引区(index)。

9、创建分支

  • git branch <分支名>
  • git branch -v 查看分支

10、切换分支

  • git checkout <分支名>
  • 一步完成: git checkout -b <分支名>

11、合并分支

  • 先切换到主干 git checkout master
  • git merge <分支名>

12、冲突

​ 冲突一般是指同一个文件同一位置的代码,在两个版本合并的时版本管理软件无法判断到底应该保留那个版本,因此会提示该文件发生冲突,需要手工判断解决冲突。

合并时冲突

​ 程序合并时发生冲突系统会提示CONFLICT关键字,命令行后缀会进入MERGING状态,表示此时是解决冲突的状态。

git 基本使用_第4张图片

解决冲突:

  • 此时通过git diff 可隐找到发生冲突的文件及冲突的内容。

git 基本使用_第5张图片

  • 然后修改冲突文件的内容,再次git addgit commit 提交后,后缀MERGING消失,说明冲突解决完成。

git 基本使用_第6张图片

二、git与github

图示:

git 基本使用_第7张图片

1、增加远程地址

  • git remote add <远端代号> <远端地址>

    <远端代号> 是指远程链接的代号,一般直接用origin做为代号,也可以自定义。

    <远端地址>默认远程链接的url

    例如:git remote add origin https://github.com/user111/Helloworld.git

2、推送到远程库

  • git push <远端代号> <本地分支的名称>

    <远端代号> 是指远程链接的代号

    <分支名称> 是指要提交的分支名字,比如master。

    例如:git push origin master

3、从GitHub上克隆一个项目

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

    <远端地址> 是指远程链接的地址

    <项目目录名> 是指为克隆的项目在本地新建的目录名称,可以不填,默认是Github的项目名。

    命令执行完成后,会自动为这个远端地址建一个名为origin的代号。

    例如: git clone https://github.com/user111/Helloworld.git hello_world

4、从gitHub更新项目

  • git pull <远端代号><远端分支名>

    <远端代号> 是指远程链接的代号

    <远端分支名> 是指远端的分支名称,如master.

    **例如:**git pull origin master

5、协作冲突

git 基本使用_第8张图片

git 基本使用_第9张图片

三、https VS ssh

​ ssh模式与https模式的一个重要的好处就是,每次push、pull、fetch等操作时,不用重复填写用户名密码。(前提是你必须是这个项目的拥有者或合作者,且配置好了ssh key)。

1、配置SSH key

  • 步骤1:检查电脑上是否已经生成SSH Key 在git bash 下执行如下命令

git 基本使用_第10张图片

  • 步骤2:创建SSH Key: ssh-keygen -t rsa -C [email protected] 成功的话在~/下生成.shh文件夹,进去,打开id_rsa.pub, 复制里面的Key。

git 基本使用_第11张图片

  • 步骤3:进入.sshwe文件包,打印id_rsa.pub的内容,复制全部内容

git 基本使用_第12张图片

  • 步骤4:登入GitHub后,右上角点击setting

git 基本使用_第13张图片

  • 步骤5:在左侧菜单中选择SSH and GPG keys

git 基本使用_第14张图片

  • 步骤6:Title随便写,Key 把之前id_rsa.pub的内容复制进去,点击Add SSH Key,设置shh key 完成。

git 基本使用_第15张图片

  • 测试连通性:找到一个项目,要改用ssh连接

git 基本使用_第16张图片

git remote add originssh [email protected]:yuebuqun3333/jianfa.git

​ 以后再提交代码的时候就不用输入密码(第一次使用会要求输入个人 yes)

git push originssh master

四、Git 工作流

1、Git 工作流

​ 简单来说就是,一个项目的成员们在工作中统一使用Git的方式。

2、集中式工作流

  • 像SVN一样,集中式工作流以中央仓库为项目所修改的单店=点实体。所有的修改都是提交到Master这个分支上。
  • 这种方式与SVN的主要区别就是开发人员有本地库,Git很多特性并没有用到

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VOmdy6Bd-1597656648445)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\image-20200816120924144.png)]

3、GitFlow工作流

  • Gitflow工作流通过为功能开发、发布准备和维护设立独立的分支,让发布迭代的过程更流畅。严格的分支模型也为大型项目提供了一些非常必要的结构。

git 基本使用_第17张图片

git 基本使用_第18张图片

4、分支种类

  1. 主干分支 master

    主要负责管理正在运行的生产环境代码。永远保持与正在运行的生产环境完全一致。

  2. 开发分支 develop

    主要负责管理正在开发过程的代码。一般情况下应该是最新的代码。

  3. bug 修理分支 hotfix

    主要负责管理生产环境下出现的紧急修复代码。从主干分支分出,修理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。

  4. 发布版本分支 release

    较大的版本上线前,会从开发分支中分出发布版本分支,进行最后阶段的集成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后可以视情况删除。

  5. 功能分支 feature

ug 修理分支 hotfix**

主要负责管理生产环境下出现的紧急修复代码。从主干分支分出,修理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。

  1. 发布版本分支 release

    较大的版本上线前,会从开发分支中分出发布版本分支,进行最后阶段的集成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后可以视情况删除。

  2. 功能分支 feature

    为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支中独立出来。 开发完成后会合并到开发分支

你可能感兴趣的:(Git)