Git常用指令学习

Git了解

介绍

  • Git是目前世界上最先进的分布式文件版本控制系统(没有之一)

  • 版本控制 所谓的版本控制就是将一组文件的改动记录下来,形成版本历史,以便需要时恢复

作用

  • 代码共享

​ 每位开发者可以使用Git将自己的代码上传到云服务器上,同时使用Git还可以将其他人上传的代码下载到自己的电脑上,这样就实现了代码共享

  • 回溯版本

​ git除了保存代码,还对我们每次上传的代码进行备份。我们可以查询曾今提交过的每一个版本代码对应的内容,可以恢复到之前任意上传时间对应的状态

  • 追踪信息

​ git提供了强制记录日志的功能,每次上传信息要求书写日志,可以记录本次上传的相关信息。比如写清楚本次上传的内容,对应的说明,等等。

Git基本理论知识

四个区域

git没有中央版本库,但是为了方便开发小组的成员们进行代码共享,我们通常会搭建一个远程的git仓库。和svn不同的是开发者本地也包含一个完成的git仓库,从某种程度上来说本地的仓库和远程的仓库在身份上是等价的,没有主从。

  • Workspace:工作区,就是你平时存放项目代码的地方
    • 位置:一个文件夹通过git init 设置成一个git可以管理的文件夹时,这个文件夹里的内容(除去.git文件夹)就是工作区。
  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
    • 英文叫 stage 或 index。是用来暂时存放工作区中修改的内容,可以理解为一个中转站。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
    • 就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。就是工作区有一个隐藏目录 .git,它不算工作区,而是 Git 的版本库
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
    • 托管代码的服务器,常用github、gitee、gitlab

Git分支

​ 使用git保存代码并进行版本控制,但是一个团队所有人提交的版本信息汇聚到一起数量巨大,不利于管理。仅仅修改一小部分代码就进行版本提交,这样提交的版本价值不大。

​ 但是我们提交版本也是为了方便管理自己的代码。怎样能提交自己专用的版本,不和项目核心代码掺和到一起?分支解决了这一问题

Git操作

本地操作-初始化工作区与提交代码

  • 在使用git前需要告诉git你是谁,在向git仓库提交时会用得到

    • git config --global user.email ‘xxxx@qq.com’

      • 配置提交者邮箱
    • git config --global user.name

      • 配置提交者姓名
    • git config --list

      • 查看git配置信息
  • 初始化工作区

    • git init
  • 查看状态

    • git status
      • 红色代表当前没有提交到缓存区,绿色表示没有提交到本地仓库
  • 工作区文件到暂存区

    • git add 文件名
      • 提交指定文件
    • git add .
      • 将工作目录中的文件全部添加到暂存区
  • 暂存区提交到本地仓库

    • git commit -m ‘第一次提交’
      • -m 后面书写的是提交的备注信息,例如增删改查第几次提交

本地操作-差异比较

  • 工作区与暂存区比较
    • git diff 文件名
  • 工作区与本地库比较
    • git diff head 文件名
  • 暂存区与本地库比较
    • git diff --cached 文件名

本地操作-版本回退

  • 查看当前提交日志

    • git log
      • HEAD-> master 标记当前分支的当前版本所在位置
      • 在log中,每一个版本的前面,都有一长串随即数字: b44a10787c2b2bcc7ceb9c39cf06309065518d4b ,这是每次提交的commit id ,这是通过SHA1算法得到的值,Git通过这个唯一的id来区分每次提交
    • git reflog
      • git reflog与git log作用一样,但是git reflog提供的版本号更加简短
  • 回退到之前版本

    • git reset --hard head^
      • 回归到上一个版本,Git通过HEAD来判断当前所在的版本位置。那么上一个版本,就用HEAD标示,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100。
    • git reset --hard 版本号
      • 回退到指定版本

本地操作-修改撤销

  • 工作区撤销修改
    • git checkout 文件名称
      • 撤销工作区修改,我们撤销后,在查看文件中内容,发现工作区内容已经撤销,并查看状态,发现状态很干净
  • 暂存区撤销修改
    • git reset HEAD 文件名称
      • 撤销到工作区

分支操作-创建与切换

  • 创建
    • git branch 分支名
  • 切换
    • git checkout 分支名

分支操作-合并与删除

  • 合并
    • git merge 分支名
      • 在某分支将指定分支合并,合并之后某分支上文件就发生相应改变
  • 删除
    • git branch -d 分支名
      • 使用git branch查看,发现指定分支已经被删除

远程仓库操作-关联、拉取、推送、克隆

  • 关联远程仓库命令
    • git remote add origin 远程仓库地址
  • 拉取:从远程仓库拉取到本地仓库
    • git pull origin master --allow-unrelated-histories
      • 首次拉取需要添加:–allow-unrelated-histories
      • git pull 后续拉取
      • 【注意】在推送代码前必须先拉取代码,否则无法推送本地仓库代码到码云仓库
      • 在本地有版本库的情况下,从远程库获取最新commit 数据(如果有的话),并merge(合并)到本地。
  • 推送:本地仓库推送到码云仓库
    • git push -u origin master
      • 首次推送
      • git push 后续推送
  • 克隆:
    • git clone 远程仓库地址
      • 是在本地没有版本库的时候,从远程服务器克隆整个版本库到本地,是一个本地从无到有的过程。

扩展

GIT忽略清单

将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。

文件名:.gitignore

# 此行为注释 会被Git忽略

# 忽略 node_modules/ 目录下所有的文件
node_modules


# 忽略所有.vscode结尾的文件
.vscode

# 忽略所有.md结尾的文件
*.md

# 但README.md 除外
!README.md

# 会忽略 doc/something.txt 但不会忽略doc/images/arch.txt
doc/*.txt

# 忽略 doc/ 目录下所有扩展名为txt文件

doc/**/*.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值