Git极简入门

Git极简入门

1.本地仓库:
1.1工作流程

git本地操作的三个区域:
Git Repository(Git仓库):最终确定的文件保存到仓库,成为一个新的版本,并且对他人可见
暂存区:暂存已经修改的文件最后统一提交到git仓库中
工作区(Working Directory):添加、编辑、修改文件等动作
在这里插入图片描述

为什么要有暂存区:

体现了缓存区的思想,等到文件数据不再改动了,多个文件放在暂存区里统一提交。

1.2.1本地仓库操作
什么是仓库呢?仓库又名版本库,英文名repository,我们可以简单理解成是一个目录,用于存放代码的,这个目录中的所有文件都可以被Git管理起来,每个文件的修改删除等操作Git都能跟踪到。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200324151519578.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTYzMDc2,size_16,color_FFFFFF,t_70)

创建仓库(或需要被管理的目录)
在这里插入图片描述
但是Git还不知道需要管理这个目录,所以需要初始化:
在这里插入图片描述
使用cd进入项目的目录,然后运行 git init:
运行完命令后该目录下会生成一个.git的隐藏文件夹,这个文件夹不能删除,也不能随意修改内容。
在这里插入图片描述

1.2.2Git常用指令操作

在这里插入图片描述
在初始化当前目录下的文件就处于工作区
注释内容可以有中文.

1.3Git版本回退:

在这里插入图片描述
查看log日志推荐使用第二种:git log --pretty=oneline,比较清爽
版本号就是一个字符串:
在这里插入图片描述
在这里插入图片描述
回到历史版本后,git log里不会显示回退的记录的,只会显示该历史版本为最新版本,这时要使用git reflog命令
git reflog可以查看所有的commit日志,只是版本号长度会短一些,也可以用。

小结:

在这里插入图片描述

2.Git线上远程仓库(GitHub为例)
2.1在GitHub上创建仓库

在这里插入图片描述
然后输入仓库名点击Create Repository就可以了,其他选项随意。

2.2两种常规使用方式:
2.2.1基于HTTP协议:

首先准备好仓库存放的目录,按照上述步骤
复制下github上仓库的地址:
在这里插入图片描述
在这里插入图片描述
操作完成后,再目录里会多处一个名为shop的本地仓库(其中有.git文件):
可以通过该仓库向github提交文件
在这里插入图片描述
在这里插入图片描述
将文件按照上述操作提交到本地仓库,就可以使用git push指令提交到github上了,再提交的过程中会显示登录框,让你登录github账号(首次提交),因为提交需要权限。
也可以在.git文件下的config文件中修改:(示例账号)
格式:账号 : 密码

在这里插入图片描述

拉取仓库:

git pull ,可以获取线上仓库

2.2.2基于SSH协议(推荐):

在这里插入图片描述
在git的bash界面输入:

ssh-keygen -t rsa -C "邮箱地址"

就会在本地生成一对公私钥,git会在系统默认用户目录下生成.ssh目录,在目录中有公私钥文件,pub后缀的为私钥:
在这里插入图片描述
将id_rsa.pub中的内容配置到github中,在用户的settings中找到SSH and GPG keys 这一项并配置新的公钥的名称(Title),并复制id_rsa.pub中的内容(Key)。
在这里插入图片描述
提交方式和使用http协议的没有区别,只是验证的方式不同

2.3Git分支管理:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
每个分支都可以独立提交到本地仓库,互不影响(相当于多个用户有自己的独立目录),有利于开发的分离

删除分支:
在这里插入图片描述

2.4冲突的产生和处理:

在添加修改文件前没有git pull同步线上文件,在本地仓库和线上仓库不一致的情况下添加修改文件,而导致提交失败:

解决方案:

如果冲突的是同一个文件:
即线上仓库被更新了一个的文件,而本地仓库没有同步线上仓库,且恰好本地仓库又修改了这个文件,导致线上和本地对同一个文件的某一处开始,有两个不同方向的修改。

第一步都要先同步本地仓库 git pull(不会刷掉文件数据)

如何判断冲突的是同一个文件:
如果冲突后输入git pull出现以下字段,即表示冲突的是同一个文件
在这里插入图片描述
git会将线上冲突的部分本地提交冲突的部分一起返回,这时需要仔细考虑和沟通(和更新线上仓库的人员讨论),修改冲突文件,重复上述步骤提交到本地仓库,再提交到线上仓库。

如果冲突的不是同一个文件,那直接git pull ,同步没有同步的内容,再次git push即可。

3.Git的实用技能:

图形化的管理工具:
github for Desktop
Source Tree
TortoiseGit

4.Git忽略文件:

在这里插入图片描述
图中mtk为文件名,do.c是某个文件名,*为通配符,不过滤具体某个文件:!index.php

在.gitignore文件中,以#开头的都是注释。

发布了68 篇原创文章 · 获赞 12 · 访问量 5203

猜你喜欢

转载自blog.csdn.net/qq_40963076/article/details/105067809