前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git学习02-Git本地仓库和Github远程仓库操作

Git学习02-Git本地仓库和Github远程仓库操作

原创
作者头像
帅的一麻皮
修改2020-06-10 10:01:54
1.1K0
修改2020-06-10 10:01:54
举报
文章被收录于专栏:前端与Java学习前端与Java学习

01-安装Git

安装最新版git可以去Git的官网,从Git官网直接下载安装程序,然后按默认选项安装即可。

git官网:https://git-scm.com/

安装完成后,当我们在文件夹中右键出现 Git Bash Here,点击Git Bash Here蹦出一个类似命令行窗口的东西

就表示安装成功了。

02-配置用户名和邮箱

Git软件在工作的时候,需要知道你是谁?所以需要设置一个用户名和邮箱。

这个用户名和邮箱,最好使用你的github账号或码云账号,如果你没有,当然随便填也可以。

具体做法:

  1. 任何文件夹,空白处,右键 --> Git Bash Here
  2. 依次执行下面两行代码
代码语言:javascript
复制
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

03-Git初始化

目的是学习,所以,随便创建一个项目文件夹,打开项目文件夹

注意:一定要在项目文件夹,右键-->Git Bash Here。

至于项目中有没有文件无所谓。

然后在命令行执行以下命令

代码语言:javascript
复制
# 初始化,表示使用Git管理我们的项目。这个命令只需要执行一次(注意空格)
git init
  • 执行 git init 命令之后,会在项目文件夹中生成一个隐藏的 .git 文件夹
  • Git 管理项目的每一次记录,都在 .git 文件夹里面保存着。所以这个文件夹不能删除
  • 对于一个项目来说,git init 只需要执行一次

可能有的朋友看不到这个文件夹,是因为设置的问题,win10系统我们只需要点击文件夹上方的查看,再把隐藏文件夹选项勾上就可以看到这个git文件夹了

04-Git初体验

初始化之后,就可以使用Git来管理你的项目了。

现在我们用在开发软件中打开我们的项目,并且创建一个index.html页面,并在里面写上几行代码

这个时候我们就可以用git来保存我们的代码,用到以下命令

代码语言:javascript
复制
git add .
git commit -m '提交说明(此次提交了什么代码,功能是什么,其实就是注释)'

提交完成之后,我们可以通过以下命令来查看提交日志

代码语言:javascript
复制
# 查看详细日志记录
git log
# 查看简略版的记录
git log --oneline

当我们在代码中进行了多次提交之后我们希望能看到的日志变得简单一点,就可以用git log --oneline来查看

05-现在我们在来了解一下git的三个区域

下面三个区域,是Git虚拟的区域,看不到,摸不着。

  • 工作区
    • 工作区,指的是使用Git管理后的文件,这些文件显示在磁盘上,供我们使用或修改的区域。所以,粗略的说,项目文件夹就是工作区。
  • 暂存区域
    • 执行 git add .之后,文件由工作区,添加到了暂存区。 暂存区保存了下次将提交的文件列表信息。
  • Git 仓库区、本地仓库
    • 执行 git commit -m '提交说明' 之后,代码会被提交到仓库区。仓库区是 Git 中最重要的部分,代码只有提交到仓库,才会形成一次历史记录,即才会形成一个版本。

添加文件到暂存区

新文件,只有添加到暂存区,才叫做被Git管理。否则和Git没什么关系,即使文件在项目文件夹。

代码语言:javascript
复制
# 添加指定文件到暂存区
$ git add 文件名
​
# 以空格隔开可以一次 add 多个文件
$ git add [file1] [file2] ...
​
# 添加指定目录到暂存区,包括子目录
$ git add [dir] [file] [dir] [file] [file] ...
​
# 添加当前目录的所有文件到暂存区,包括子目录
$ git add .

注意:默认空文件夹,是不能添加,不能提交的

提交文件到仓库

提交到仓库的文件,是暂存区中的文件。

代码语言:javascript
复制
# 提交暂存区到仓库区
$ git commit -m [message]

# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]

# 提交工作区和暂存区自上次commit之后的变化,直接到仓库区。
# 新文件,从未被Git管理过,是不能直接提交到仓库区的
$ git commit -a -m "提交日志"

06-再来了解一个git的撤销操作(版本回滚)

撤销操作,只能恢复暂存区或工作区,与最近一次提交的代码一致。

代码语言:txt
复制
# 恢复暂存区的指定文件到工作区
git checkout -- [file]

# 恢复暂存区的所有文件到工作区
git checkout .

# 恢复某个commit的指定文件到暂存区和工作区
git checkout [commit版本号] [file]

# 重置暂存区的指定文件,与上一次 commit 保持一致,但工作区不变
git reset [file]

# 重置暂存区与工作区,与上一次commit保持一致。该命令后不能加文件或文件夹
git reset --hard [commit版本号]

#回退所有代码到上一个版本
git reset --hard HEAD^
#回退到上两个版本
git reset --hard HEAD^^
#回退到上10个版本
git reset --hard HEAD~10

前面黄色的字就是版本号

比如我们现在查看我们现在的代码

当我们执行了 git reset --hard 2a98904,我们会发现我们的代码回到了刚开始创建页面的那个样式

但是当我们再想回去的时候 再次查看我们的版本号git log --oneline的时候,我们会发现之前的版本号不见了

这个时候我们需要用到下面的命令查看所有的日志,包括之前回滚的日志:

代码语言:javascript
复制
git reflog //查看版本的详细变动
git log --reflog //查看所有日志

执行之后就会发现之前回滚的日志信息也都可以找到了,这样通过版本号我们就任然可以回到我们想要的版本

我们再次执行 git reset --hard 版本号,就再次回到了我们想要的版本

07-分支管理

什么是分支

随着git提交的次数越来越多,就会形成由各个版本连接而成的一条提交线。如下图:

由Git提交而形成的提交线,称为分支。默认的分支是主分支,叫做 master,前面的学习,一直是在 master 分支上提交。

我们也可以创建其他分支,新创建的分支,相当于是原分支的一个拷贝

实际开发中

  • 为了保证代码的安全性,不允许在主分支上进行开发
  • 需要创建其他分支,在其他分支上进行开发,这样不会影响主分支上的代码
  • 其他分支开发完成后,可以选择将其他分支代码合并到主分支上
  • 分类
    • 主分支(master )
    • 开发分支(dev)
    • 主题分支(一般用于开发新功能、新的模块)
    • hotfix分支(用于解决bug)

创建其他分支命令:

代码语言:javascript
复制
# 查看所有分支
git branch
git branch -f  # 可以查看到所有分支(包括远程分支)
# 创建分支
git branch 分支名
# 比如
git branch dev

# 切换分支到dev
git checkout dev

# 切换到master分支
git checkout master

# 也可以创建并直接切换分支
git checkout -b dev

注意:切换分支之前,需要把当前分支的工作全部提交,否则不允许切换到其他分支。

实际开发中,鼓励多使用分支。

快进模式合并两个分支

快进模式合并

  • 两个分支A和B
  • B分支包含A分支的所有版本,在合并的时候,叫做快进模式合并。
  • 快进模式合并,相当于使用B分支的代码覆盖A分支的代码;同时版本也会更新到A分支

两个分支合并,比如把 B 分支 合并到A分支上

  • 需要先切换到A分支
  • 然后执行 git merge B ,表示把B分支的代码合并到A分支上。
代码语言:javascript
复制
# 切换到A分支
git checkout A

# 把B分支的代码合并到A分支
git merge B

合并模式合并两个分支

合并模式

  • 两个分支A和B
  • A分支有独立的提交,B分支也有独立的提交,在合并的时候,叫做合并模式的合并。
  • 合并模式,有可能会产生冲突:如果出现冲突需要解决冲突,然后需要添加、提交一次,从而完成合并

两个分支合并,比比如把B分支合并到A分支上

  • 需要先切换到A分支
  • 然后执行git merge B,表示把B分支的代码合并到A分支上
  • 如果看到CONFLICT,则表示有冲突,需要打开有冲突的文件,手动解决冲突,然后添加、提交即可
  • 合并模式,如果没有冲突,也需要合并之后提交一次
代码语言:javascript
复制
# 切换到A分支
git checkout A

# 把B分支的代码合并到A分支
git merge B

如果有冲突,会显示如下提示:

手动打开有冲突的文件,解决冲突,保存文件。(手动解决)

再次添加(add操作)提交(commit),即可完成合并。

如果没有冲突,则显示如下提示:表示让我们输入提交说明

  • i,进入插入模式。修改黄色的字为提交说明
  • esc,退出插入模式
  • 直接输入:wq回车即可,这就表示完成合并之后的提交

其他相关命令

代码语言:javascript
复制
# 查看所有分支(本地分支)
git branch
​
# 查看所有分支(包括远程分支)
git branch -f
​
# 删除分支(需要先切换到其他分支,然后在执行删除)
git branch -d 分支名
​
# 创建并直接切换分支
git checkout -b dev

如果要切换分支,必须把当前分支的代码全部提交到本地仓库。

08-远程仓库

远程仓库说明

目前,我们的操作都是一个人开发,如果涉及到多人开发呢?大家的代码如何合并到一起呢?这个时候就需要公网上的一台服务器了,大家可以把代码提交到这台服务器上,也可以从服务器上拉取所有的代码。这个公网上的服务器就叫做远程仓库。

完全可以自己搭建一台运行Git的服务器,不过现阶段,为了学Git先搭个服务器绝对是小题大作。好在这个世界上有个叫 GitHub 的神奇的网站,从名字就可以看出,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。

实际上,除了GitHib,还有很多第三方远程仓库托管服务:

  • GitHub(这个网站有时很难打开)
  • 码云(gitee)(打开速度快)
  • coding
  • Gitlab
用github远程仓库托管代码使用步骤:

使用远程仓库有2中用法:

1: 新建一个空的远程仓库, 和已经存在的本地仓库取得关联

2: 新建一个非空的远程仓库, 克隆到本地, 克隆到本地的就是本地仓库

一:创建github克隆本地仓库

1.1

2.把远程仓库克隆到本地

2.1

2.2 复制一下这个远程仓库的地址

2.3 来到 本地你需要把这个仓库 放到所在地 的文件夹. 右键点击git bash here

命令: git clone 仓库地址

出现了done就说明克隆完成, 在当前文件夹就会出现一个和远程仓库名字一毛一样的一个文件夹.

3.在本地编码

  1. add commit 提交到本地仓库 注意啦: 编码提交到本地,一定要进入到这个文件夹中去. 再右键点击git gitHub here 出来小黑框
  2. 推送到远程仓库 命令: git push

出现了这个done就说明ok了.

二:gitHub新建一个空的远程仓库 关联已有的本地仓库

新建远程仓库的时候,不要打上勾,

进去执行那两行命令.

完成后刷新远程仓库, 就有了之前本地提交的信息.

就是让你去新建一个readMe.md文档, 用这个文档来介绍你的项目.

在本地建了一个readme.md文件, 通过git add. git commit-m"" 提交到了本地仓库, 通过git push推送到远程.

git辅助工具

这里就没有详细记录了

1.vscode自带的小黑框-终端
2.vscode自带了一个不用写命令的工具
3.像vscode自带的git这样的工具有很多种.

TortoiseGit 小乌龟

sourceTree

GitHubDeskTop 小紫猫/章鱼猫 Github官方推出的.

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01-安装Git
  • 02-配置用户名和邮箱
  • 03-Git初始化
  • 04-Git初体验
  • 05-现在我们在来了解一下git的三个区域
    • 添加文件到暂存区
      • 提交文件到仓库
      • 06-再来了解一个git的撤销操作(版本回滚)
      • 07-分支管理
        • 什么是分支
          • 创建其他分支命令:
        • 快进模式合并两个分支
          • 合并模式合并两个分支
            • 其他相关命令
            • 远程仓库说明
        • 08-远程仓库
        • git辅助工具
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档