Git 版本控制工具

目录

一、集中式版本控制和分布式版本控制的区别

二、Bash - CMD - GUI 的区别

三、Git 基础

1、git init 初始化Git 仓库

2、git clone 从Git 远程仓库拉取代码

3、git 划分文件状态

4、.gitignore 忽略文件

5、git log 查看提交历史

6、git reset 版本回退

7、git remote 查看和连接远程仓库

8、Git tag 创建版本标签

9、切换分支的本质

10、切换分支操作

11、移除分支

四、git rebase


一、集中式版本控制和分布式版本控制的区别

  • SVN 是集中式版本控制工具,它会将所有的内容存储到一台服务器上,用户通过对服务器中的内容进行操作,从而获取最新的内容。用户的本地只有用户自己需要的文件,不会全量下载服务器中的所有内容。当服务器出现异常,意味着整个文件内容的异常。
  • Git 是分布式版本控制工具,他会将所有的内容存储到服务器上,但用户的本地是对该服务器的镜像下载,即:用户本地的文件和服务器中的文件是完全一样的,即使服务器出现异常,用户本地的内容也可以作为一个新的服务器内容进行发布。

二、Bash - CMD - GUI 的区别

  • Git Bash 命令行工具,基于CMD,并在CMD 的基础上添加了新的命令和功能,可以执行linux 命令
  • Git CMD 命令行提示符,是Windows操作系统上的命令行解释程序
  • Git GUI 提供了图形用户界面来运行git 命令

三、Git 基础

1、git init 初始化Git 仓库

该命令将创建一个名为.git 的子目录,但项目里的文件并没有被跟踪

2、git clone 从Git 远程仓库拉取代码

3、git 划分文件状态

  1. 未跟踪:默认情况下,Git 仓库下的文件也没有添加到Git 仓库管理中,需要通过git add 命令来操作
  2. 已跟踪:添加到Git 仓库管理的文件处于已跟踪的状态,Git 可以对其进行各种跟踪管理。

对于已跟踪的状态还可以进一步细分

  • staged: 暂缓区中的文件状态
  • Unmodified: commit 命令,可以将staged 中文件提交到Git 仓库
  • Modified: 修改了某个文件后,会处于Modified 状态

4、.gitignore 忽略文件

文件名:.gitignore

5、git log 查看提交历史

git log (查看每条提交历史明细)

git log --pretty=oneline (每条提交历史作为一行显示,更加清晰)

git log --pretty=oneline --graph (每条提交历史的分支结构更加清晰)

6、git reset 版本回退

  • Git 通过HEAD 指针记录当前版本
  • HEAD 是当前分支引用的指针,它总是指向该分支上的最后一次提交;
  • HEAD 可以看做为该分支上的最后一次提交的快照

回退Git 版本指令

  • git reset --hard HEAD^            回退到上一个版本
  • git reset --hard HEAD~10          回退到上10 个版本
  • git reset --hard 2d449823           回退到指定版本(先通过git log 查看唯一校验和)

7、git remote 查看和连接远程仓库

  • git remote 查看是否有远程仓库
  • git remote -v 查看远程仓库明细
  • git remote add <name> <url> :将本地仓库与远程仓库建立连接,如:git remote add origin https://...,然后git branch --set-upstream-to=origin/master,然后git fetch,git merge --allow-unrelated-histories

8、Git tag 创建版本标签

  • 添加本地的tag:git tag v1.0.0
  • 添加本地tag 并为tag 添加备注:git tag -a v1.1.0 -m "添加备注"
  • 将某个tag push 到远程服务器:git push origin v1.0.0
  • 将所有tag push 到远程服务器:git push origin --tags
  • 删除本地tag:git tag -d v1.0.0
  • 删除远程服务器的tag:git push origin -d v1.0.0
  • 检出(回到)某个tag 版本:git checkout v1.0.0

9、切换分支的本质

有一个名为HEAD 的指针,目前处于哪个分支则表示HEAD 的指针指向这个分支

10、切换分支操作

  • 查看分支:git branch
  • 切换分支:git checkout dev
  • 创建新的分支,并切换到该分支:git checkout -b dev
  • 当远程仓库没有dev 分支,本地仓库存在dev 分支时,将本地的dev 分支push 到远程仓库:git push origin dev,git branch --set-upstream-to=origin/dev
  • 将dev 分支合并到master 分支中:git checkout master , git merge dev
  • git checkout dev 相当于 git checkout --track <remote>/<branch>  所做的操作:1、先检查远程是否含有dev 分支;2、在本地创建dev 分支;3、将本地的dev 分支跟踪远程的dev 分支
  • git pull 相当于 git fetch    +   git merge

11、移除分支

移除分支知只是除该dev 指针,不会移除commit 提交记录

  • 删除本地分支:git branch -d dev
  • 删除远程分支:git push origin --delete <branch>

四、git rebase

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值