Git梳理

前言

    远端和本地交互代码时,有两种方式:HTTP&SSH。使用HTTP时,每次都需要输入密码,在这里建议使用SSH,生成Key后就可重复使用了,gitlab中生成SSH Key,可以看这里 --> https://www.jianshu.com/p/31cbbbc5f9fa

 

集中式、分布式

    集中式:所有文件的修订版本通过一个中央服务器集中存放,协同工作的开发者都需要通过网络连接到这台服务器,取出最新的文件或者提交更新

    分布式:每个协同开发者都能从一台“共享服务器”克隆一份完整的版本库到自己计算机本地,离开了网络依然可以执行修改提交文件、查看历史版本记录等操作,不需要每次修改都把文件推送到版本控制服务器

 

工作区、暂存区、版本库

    对于任何一个文件,只有三个状态:已修改(modified)、已暂存(staged)、已提交(committed)

  1. 用户在工作区修改文件
  2. 修改完成后将需要追踪的新文件和带提交的更改等以快照的形式保存到暂存区
  3. 最后将暂存区的文件快照转储到Git版本库中

 

关键分支

    master(主分支):存放可供在生产环境中部署的代码,即应用包,每次更新都有对应的版本号标签,可进行后续代码版本跟踪

    develop(主开发分支):包含确定即将发布的代码,当前最新开发成果的代码集合

    feature(新功能分支):可最终合并至develop或舍弃

    release:发布时用的分支,允许在该分支中修复测试中发现的缺陷,有版本发布各项说明信息(版本号、发布/编译时间)

    hotfix:紧急修复bug分支

 

常用指令

    一、创建&添加仓库

  • 在当前目录下输入:git init //将目录变成git可跟踪管理的仓库
  • 克隆操作:git clone 远程仓库地址 //拷贝一个git仓库到本地,查看该项目或者进行修改
  • 添加新的远程仓库:git remote add origin 仓库地址
  • 删除远程仓库:git remote rm origin

    二、分支操作

  • 查看分支:git branch -a/ r/
  • 创建分支:git branch xxx //执行git init的时候,缺省情况下会创建一个"master"分支
  • 切换分支:git checkout xxx //将该分支的最后提交的快照替换你的工作目录的内容
  • 创建分支并切换分支:git checkout -b xxx origin/master //在本地创建xxx分支,分支代码基于origin/master
  • 在本地删除一个分支:git branch -d 分支名
  • 删除远端分支:git branch -r -d origin/分名 //删除本地的远程跟踪分支 git push origin :分支名//删除远程原种分支
  • 从远程拉数据至主分支:git pull origin master

    三、文件操作

    1.添加/修改文件

  • 修改后的文件进行快照,保存到暂存区域:git add 文件名
  • 将文件提交到仓库:git commit -m"提交说明"
  • 将修改添加到暂存区提交到仓库:git commit -a -m"说明"
  • 查看仓库当前状态:git status
  • 查看文件修改部分:git diff
  • 删除远端文件保留本地文件:git rm -r --cached 文件名

    2.撤销修改

  • 修改未add暂存区:git checkout -- file //撤销至版本库状态
  • 修改已add暂存区:git reset HEAD <file>git checkout --file //撤销至暂存区状态
  • 已经提交了不合适的修改到版本库时需要版本回退

    3.版本回退

  • 查看仓库版本:git log
  • 回退版本:git reset --hard 版本号
  • 回退上一版本:git reset --hard HEAD^ //git内部HEAD指向当前版本、HEAD^指向上一版本、HEAD^^指向上上版本
  • 回退上上版本:git reset HEAD^^
  • 回退上100个版本:git reset HEAD~100

    备注:--soft 重置HEAD到指定版本,不会修改暂存区和工作区;--mixed 同时修改了暂存区;--hard 同时修改了工作目录,还原至上一次commit的状态且无法找回

    4.合并分支

  • 代码合并:git merge 指定分支

    5.解决分支冲突

  • 查看冲突:git tracks changes of files
  • 解决冲突:保留、删除 //同一个文件在远程分支和本地分支里按照不同的方式被修改了

    6.文件推送至远端

  • 查看当前远程仓库:git remote -v
  • 获取远程仓库的更新:git fetch origin 分支名
  • 合并远程仓库的更新到当前分支:git merge orign/master -m"说明"
  • 推送当前分支与数据到远端仓库:git push origin 分支名

    四、打标签

  • 对提交快照打标签:git tag -a 标签名 -m"说明" 版本号
  • 查看所有标签:git tag
  • 删除某个标签:git tag -d 标签名
  • 推送某个标签到远程:git push origin 标签名 //推送指定标签、git push origin --tags //推送全部标签
  • 删除远程标签(本地删除后):git push origin :refs/tags/标签名

    备注:发布版本时,在版本库中打一个标签,便唯一确定打标签时刻的版本,取某个标签的版本就是把那个打标签时刻的历史版本取出来

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值