【尚硅谷新版Git快速入门(3h迅速掌握git)】

学习地址:

https://www.bilibili.com/video/BV1wm4y1z7Dg/?p=2&share_source=copy_web&vd_source=80258864bf02e712406ed97c6b7eb90e

git介绍

是分布式版本控制软件

区分:集中式版本控制与分布式版本控制[[git入门#^0e3f4d|区别]]

用于管理软件开发中的代码

Git快速入门(尚硅谷)_版本号

什么是版本?

Git快速入门(尚硅谷)_git_02

版本控制软件能干嘛?

Git快速入门(尚硅谷)_版本号_03

Git快速入门(尚硅谷)_版本号_04

集中式,分布式版本控制的区别

Git快速入门(尚硅谷)_版本号_05

三个人同时下载同一份文件,

A修改后上传,B修改后上传,C修改后上传.

最终只显示C修改的文件,AB文件被覆盖.

Git快速入门(尚硅谷)_github_06

A下载文件,服务器将文件锁定

BC可以下载,但是无法修改.只有A修改完毕上传之后,可以再一次下载(此时锁打开2).

Git快速入门(尚硅谷)_版本号_07

有一个本地仓库,(避免中央服务器崩盘)

git及其GUi下载

Git快速入门(尚硅谷)_github_08

使用github DeskTop

Git快速入门(尚硅谷)_github_09

提交文件(提交相当于产生新文件,查看本地仓库有没有旧文件,然后设立新版本)

Git快速入门(尚硅谷)_git_10

问题:

Git快速入门(尚硅谷)_版本号_11

引用分支的概念

Git快速入门(尚硅谷)_git_12

分支类似于库的概念

Git快速入门(尚硅谷)_git_13

1、注册Github账号

Step 1https://github.com 注册地址 输入昵称,邮箱,密码注册

Git快速入门(尚硅谷)_版本号_14

Step2: 选择你的私人计划(personal plan),即选择免费用户还是付费用户,免费用户只能创建开源仓库,也就是所有人都可以看你的项目。

Git快速入门(尚硅谷)_github_15

Step3: 登录注册的邮箱,验证账号。

2、创建仓库

Step1: 创建仓库

Git快速入门(尚硅谷)_git_16


Step2: 填写一些资料

Git快速入门(尚硅谷)_git_17


Step3: Github上的项目页面(图片来源http://blog.csdn.net/android_zyf/article/details/64175941)

Git快速入门(尚硅谷)_版本号_18

3、安装GitHub Desktop

下载地址:https://desktop.github.com/ 选择适合你的版本下载

安装好GitHub Desktop后,第一次运行时需要输入GitHub.com的用户名和密码

Git快速入门(尚硅谷)_git_19

4、创建本地仓库

Step1: new Repository

Git快速入门(尚硅谷)_版本号_20


Step2: 填写仓库名字、描述,选择存放地址

Git快速入门(尚硅谷)_版本号_21


Step3: 在文件夹打开

Git快速入门(尚硅谷)_git_22

Step4: 添加自己到项目文件

Git快速入门(尚硅谷)_git_23


Step5: 提交改动

Git快速入门(尚硅谷)_git_24

5、提交改动到远端(Github.com

Git快速入门(尚硅谷)_github_25

成功之后,就可以在自己到Github 项目页面看到新提交到项目了。通过GitHub Desktop你已经能够把本地的项目文件跟远端(Github.com)上的项目关联起来。

Git快速入门(尚硅谷)_git_26


Github.com 个人项目页

6、从远端拉取仓库

除了本地创建仓库推送到远端,我们也可以从远端拉取项目(Clone)

Step1: 进入自己的项目页面,复制项目地址

Git快速入门(尚硅谷)_git_27


Step2 回到Github Desktop

Git快速入门(尚硅谷)_git_28


Step3: 粘贴地址,Clone

Git快速入门(尚硅谷)_github_29

7、本地提交和推送

成功从远端拉取项目之后,你可以使用自己喜欢的编辑器打开,编辑好文件之后,再提交改动到远端

Step1: 本地提交

Git快速入门(尚硅谷)_版本号_30


此时提交仍然是属于本地的,如果需要提交到远端(Github.com)还需要进一步推送

Step2: 点击Push origin 就可以推送到远端

Git快速入门(尚硅谷)_github_31

8、版本回滚

通过第7步,可以轻松的看到自己对项目的改动,哪怕只是改了一个空格,一个分号,都会有清晰的显示,再也不用害怕不小心改错地方了。

是不是非常的愉快,那如果改完之后又后悔了,有没有后悔药?

答案是,当然有,你可以轻松的回到任何的一次修改。

情况一,你还没提交代码,这时候最简单,只需要文件右键"Discard Changes" 放弃更改即可

Git快速入门(尚硅谷)_git_32


情况二,你已经提交代码,操作也非常简单,右键选择"Revert This Commit" 恢复到当前提交

Git快速入门(尚硅谷)_github_33

9、新增分支

创建和切换分支到操作很简单,关于分支到概念 请看 阮一峰的 Git分支管理策略step1: New Branch

Git快速入门(尚硅谷)_github_34


step2: 填写分支名字

Git快速入门(尚硅谷)_版本号_35

10、合并分支

现在我在dev开发分支上做了添加了login.html,那么如何合并到master分支呢?

dev分支

Git快速入门(尚硅谷)_版本号_36


首先,我们需要切换到Master分支,

Step1: 切换分支

Git快速入门(尚硅谷)_github_37

Step2: 合并到当前分支

Git快速入门(尚硅谷)_github_38


Step3:把dev的变化合并到master分支

Git快速入门(尚硅谷)_github_39


此时,你会发现master分支上的提交历史已经有了“添加login”这个改动,这说明合并已经成功。

11、解决冲突

以上操作,一个人玩的时候溜溜的,很愉快,但实际工作中,经常是多人一起开发,这时候,两个人同时改了同一个地方,就会出现冲突的情况。

比如我在dev分支和master分支对同一个地方进行改动,

dev分支

Git快速入门(尚硅谷)_github_40

master分支

Git快速入门(尚硅谷)_github_41


在合并分支的时候就会出现冲突

Git快速入门(尚硅谷)_版本号_42


这时候,点击关闭提示,再看 Changes, 冲突的文件已经列出来冲突在GitHub Desktop的体现:

Git快速入门(尚硅谷)_版本号_43


我们可以在编辑器中修改。冲突在编辑器中的体现

Git快速入门(尚硅谷)_github_44

必须注意的是,解决完冲突的代码不能有 <<<<<<< HEAD ======= >>>>>>> dev 这些标记解决完冲突的代码

Git快速入门(尚硅谷)_版本号_45

提交解决冲突后的合并

Git快速入门(尚硅谷)_git_46

12、Fork 别人的项目

通过前面的步骤,日常的工作已经能轻松进行,但Github除了托管自己的项目,上面也汇集了大量优秀的开源项目,我们如何快速的克隆别人的项目?以Vux项目为例子:

vux 的项目页

Git快速入门(尚硅谷)_git_47


Fork之后,我们已经克隆了一个作为自己的项目版本,可以进行任意的开发和学习

现在我们也有一个vux项目了

Git快速入门(尚硅谷)_git_48


在做了一些创造性开发之后,你可以向原作者提交合并的申请,点击New pull request

Git快速入门(尚硅谷)_git_49

合并的请求

Git快速入门(尚硅谷)_git_50


这时候原作者就会收到一个合并请求,他可以通过审核你的提交,来决定需不需要合并

README

添加重要的文件信息,提示该仓库是干嘛的

.gitgnore

Git快速入门(尚硅谷)_github_51

开发工具使用git

idea

把项目上传到中央的服务器(github或者gitee)

github

Git快速入门(尚硅谷)_版本号_52

Git快速入门(尚硅谷)_github_53

gitee

下载插件

Git快速入门(尚硅谷)_版本号_54

Git快速入门(尚硅谷)_github_55

git版本号

查看命令

Git快速入门(尚硅谷)_版本号_56

$ git cat-file -p 0dc37eefa9913df2f764276f85b56f35ec43bfd8
  • 子树 也就是指向当前版本的文件状态的版本号
tree **7d110d924de8529750f5bb00746b29701a5d2a8a**
  • 上一个版本的版本号
parent 775bd4e21f57e4d665af0f0ceb98726418104ca8
  • 提交信息
author 云昔子 <90705866+yunxizi@users.noreply.github.com> 1714630948 +0800
  committer 云昔子 <90705866+yunxizi@users.noreply.github.com> 1714630948 +0800
  
  2
  
  1

查看当前版本的子树(文件状态)

Git快速入门(尚硅谷)_版本号_57

查看命令 查看7d110d924de8529750f5bb00746b29701a5d2a8a
$ git cat-file -p 7d110d924de8529750f5bb00746b29701a5d2a8a


文件的信息
100644 bolb是指的文件类型
3d3920127d28c5cac4a88d4ae9f15c4f0a1b6ef4 是文件内容的地址

100644 blob 3d3920127d28c5cac4a88d4ae9f15c4f0a1b6ef4    111.txt
100644 blob 23122e2d1584944fa9071050798bcc8f1b0e29b7    111.txt.bak
100644 blob 952fb49806314b64b1883c300838249793ee040a    AAAA
100644 blob 6a01961c11df45ba0fa6bc303964a10a5a672d1f    README.md
100644 blob 2193513aff00fe5030e585408735b6ffbabb6828    "\346\226\260\345\273\272 WinRAR \345\216\213\347\274\251\346\226\207\344\273\266.rar"

查看文件信息

Git快速入门(尚硅谷)_github_58

查看命令3d3920127d28c5cac4a88d4ae9f15c4f0a1b6ef4是文件内容的地址:

$ git cat-file -p 3d3920127d28c5cac4a88d4ae9f15c4f0a1b6ef4

文件信息:
1111
333

图解

Git快速入门(尚硅谷)_版本号_59

git分支

Git快速入门(尚硅谷)_版本号_60

git命令

查看git 版本

git -v

初始化git仓库

git init

远程克隆仓库

git clone 地址

配置仓库使用者信息

git config

[[git入门#^97ef3c|用户信息配置]]

查看暂存区状态

git status

查看日志

git log
git log --online

提交至仓库

git commit 
git commit -m 提价文件备注的信息

回退

重置[[git入门#^a32509|回退版本]]

git reset --hard 版本号

回退本地库版本

恢复

git revert 版本号

  恢复到到这个版本号之前的本地库

分支

创建分支

git branch 分支名

查看所有分支

git branch -v

切换分支

git checkout 分支名

删除分支

git branch -d 分支名

组合命令创建分支并且切换

git checkout -b 'order'

分支合并,解决冲突

Git快速入门(尚硅谷)_版本号_61

合并分支
git merge 分支名

显示出

git merge order
 合并分支 order
 Auto-merging c.txt 
 编码 c.txt
 CONFLICT (add/add): Merge conflict in c.txt 
 confitct 添加/添加: 合并 c.txt 发生冲突
 Automatic merge failed:fix conflicts and then commit the result.
 自动 合并 失败: 自己修复冲突 最后再一提交完成合并功能
自动合并失败:
自己修复冲突(打开文件,自己改)

最后再一提交完成合并功能

标签

数字字母组合的版本号,你无法知道是什么意思,回退版本不知回退哪一个版本

查看 标签

git tag

增加标签

git tag 标签名字 版本号

标签是唯一的不能重复

删除标签

git tag d 标签名字

远程仓库

查看本地config文件

Git快速入门(尚硅谷)_git_62

命令

git remote add 地址名称(origin) 远程仓库地址(https/ssh)
git remote rmove 地址名称(origin)
git remote rname 地址名称

提交至远程仓库

git add 文件名

提交到文件状态区域

git commit -m 版本信息

提交到本地仓库
推送
git push (远程)地址名称

https协议直接推送
ssh有需要设置
ssh协议
这里用了ssh协议

Git快速入门(尚硅谷)_git_63

ssh-Keygen -t ras -C

查看公钥:

cat ~/.ssh/id_rsa.pub

Git快速入门(尚硅谷)_版本号_64

远程添加公钥

Git快速入门(尚硅谷)_git_65