Git 学习

# Git 学习

Git 学习

Git 的优势

Git 与 SVN 的主要区别

安装 Git

初始化 Git 仓储 /(仓库)

配置使用者的用户名和邮箱

把代码 存储到仓库中

Git 查看日志

Git 版本回退

Git 分支的新建与合并

上传至 github

通过 ssh 方式 上传 代码

push 和 pull 简写

# 什么是 Git?

git – fast 版本控制

Git 是由 “Linux 之父” Linus Torvalds 创建的。因为他发现找不到满意的方案来管理 Linux Kernel 联合开发的版本控制,就自己写了 Git。

官方网站

# Git 的优势

说到优势,那么自然是相对与 SVN 而言的

  1. ** 版本库本地化,支持离线提交,相对独立不影响协同开发。** 每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题?没关系,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。

  2. ** 更少的 “仓库污染”。**git 对于每个工程只会产生一个.git 目录,这个工程所有的版本控制信息都在这个目录中,不会像 SVN 那样在每个目录下都产生.svn 目录。

  3. ** 把内容按元数据方式存储,完整克隆版本库。** 所有版本信息位于.git 目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。

  4. ** 支持快速切换分支方便合并,比较合并性能好。** 在同一目录下即可切换不同的分支,方便合并,且合并文件速度比 SVN 快。

  5. ** 分布式版本库,无单点故障,内容完整性好。** 内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

# Git 与 SVN 的主要区别

Git 是分布式 SCM,而 SVN 是基于服务器的,也就是说每个开发者本地都有一套 git 库,每个人维护自己的版本(或者合并其他人的版本),而 SVN 是每个人写完代码后都及时的 checkin 到服务器上,进行合并。

# 安装 Git

廖雪峰的官方网站 git 安装

鼠标 右键,选中 Git Bash Here 在里面输入相关命令:

mark

# 使用 Git

# 初始化 Git 仓储 /(仓库)

  1. 新建一个文件夹

mark

  1. 进入文件夹,鼠标右键 选中 Git Bash Here ,输入命令 git init 回车。

mark

# 配置使用者的用户名和邮箱

配置使用者的用户名和邮箱 (自报家门), 每一次备份都会把当前备份者的信息存储起来。

配置用户名git config --global user.name "zhouchen"

配置邮箱git config --global user.email "1583741285@qq.com"

  1. 配置使用者的用户名进入文件夹,鼠标右键 选中 Git Bash Here

    输入命令 git config --global user.name "zhouchen" 回车 。

mark

  1. 同样的配置使用者的 邮箱进入文件夹,鼠标右键 选中 Git Bash Here

    输入命令 git config --global user.email "1583741285@qq.com" 回车 。

mark

# 把代码 存储到仓库中

把代码 存储到仓库中

需求:将 readme.md 文件 存储到仓库中

mark

  1. 进入文件夹,鼠标右键 选中 Git Bash Here

    输入命令 git add ./readme.md 回车 。

mark

  1. 紧接上一步,输入命令 git commit -m "add Introductions" 回车 。

add Introductions----- 可以自定义,一个辅助的解释 说明

mark

# 查看提交状态

命令: git status

mark

# add 补充 – 添加到大门口

命令 : git add .

# 一次性 – 放入仓库

合并 add 和 commit 命令

命令: git commit --all -m "这是一次性的操作"

# Git 查看日志

查看日志 ---- 能够查看自己提交的信息

git log :查看历史提交的日志

git log --oneline 可以看到精简版的日志

命令: git log

mark

命令: git log --oneline

mark

# Git 版本回退

git 版本回退

场景:如果最后一次提交的代码有误,可以通过 git 版本回退,回到代码无误的那一个状态。

# 根据索引回退

  1. 使用命令 git log --oneline 查看状态

mark

  1. 命令: git reset --hard Head~0 ( 向后退 0 次)

mark

  1. 命令: git reset --hard Head~1 (向后退 1 次);此时代码回退了一次

mark

mark

# 通过版本号回退

通过版本号回退

mark

命令: git reset --hard ac97cbc 回车执行

mark

mark

# git reflog

可以看到每一次切换版本记录

命令: git reflog 查看总体记录

mark

# Git 分支的新建与合并

git 创建分支

运用场景:放开发者只开发完成部分代码,想保存代码,为了能够后续继续开发,可以创建分支。

现在让我们来看一个简单的分支与合并的例子,实际工作中大体也会用到这样的工作流程:

  1. 开发某个网站。
  2. 为实现某个新的需求,创建一个分支。
  3. 在这个分支上开展工作。

假设此时,你突然接到一个电话说有个很严重的问题需要紧急修补,那么可以按照下面的方式处理:

  1. 返回到原先已经发布到生产服务器上的分支。
  2. 为这次紧急修补建立一个新分支,并在其中修复问题。
  3. 通过测试后,回到生产服务器所在的分支,将修补分支合并进来,然后再推送到生产服务器上。
  4. 切换到之前实现新需求的分支,继续工作。

# Git 分支的新建

新建分支 :命令: git branch <name>

mark

查看分支信息 :命令: git branch绿色 --> 代表正处于此分支)

mark

切换分支 :命令 git checkout dev

mark

# 在分支中提交部分代码

类似于主分支 提交(一样)

mark

# Git 合并分支

合并分支

需求:将 dev 分支 合并到主分支(master 分支)上。

  1. 切换到 master 分支:命令: git checkout master

mark

  1. 合并 dev 分支 到 master 分支上:命令: git merge dev

mark

  1. 查看自己的提交记录 命令: git log --oneline

mark

# 上传至 github

git push [地址] master

参考廖雪峰的官方网站 github 篇

【地址】:例如:https://github.com/ZhChen7/Travel.git

git push 推项目到 github: git push [地址] master

# 从 github 拉下项目

github 拉下项目

【地址】:例如:https://github.com/ZhChen7/Travel.git

git pull 从 github 拉下项目 : git pull [地址] master

git clone 从 github 复制项目(往往在第一次使用): git clone [地址]

# 通过 ssh 方式 上传 代码

公钥 和 私钥 ;两者之间是有关联的。

  1. 生成 公钥私钥

    命令: ssh-keygen -t rsa -C <邮箱>

mark

mark

找到生成的文件

mark

给自己的 github 配置 ssh

mark

# 提交冲突

pull 还是 先 push

应用场景:多人共同提交时,产生提交冲突时。

解决方案先 pull 然后 后 push

# push 和 pull 简写

push 和 pull 简写

【地址简写】: git remote add <变量名> <远程地址>

配置远程地址(设置别名):方便每一次不用输入很长的地址

命令: git remote add origin git@github.com:ZhChen7/Travel.git

即:为 git@github.com:ZhChen7/Travel.git 设置别名: **origin **

# 默认关联

当我们在 push 时,加上 -u 参数 ,那么在下次 push 时;只用 写 git push 即可上传代码。

(加上 -u 之后,git 会把当前分支 与 远程指定的分支 进行关联

下次 直接写 git push 相当于 写 git push origin master

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2015-2021 zhou chen
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信