分布式版本管理系统——Git

本文是学习廖雪峰前辈官方网站Git部分,总结输出

简介

  • 分布式版本管理系统,用C语言编写而成,2005年出现,2008年官方网站上线

对比

  • SVN:版本库在中央服务器,每次工作流程:中央服务器—本地电脑获取最新版—工作—上传到中央服务器
  • Git:每个人电脑上都有完整的版本库,也有一台充当“中央服务器”的电脑,但只是交换大家的修改而已。

安装

本地仓库

1.回退功能

  • 查看日志:git log --pretty=oneline每一次的提交历史
    • –pretty=oneline使得日志在一行显示,便于查看
    • 日志中显示的一串数字字母是版本号,即commit id
  • 回退到指定版本:git reset --hard HEAD~0 HEAD是一个指向master的指针
  • 记录每一次的命令:git reflog

2.三个部分

  • 三部分
    • 工作区:本地项目文件
    • 暂存区(stage)
    • 当前分支
  • 版本库
    • git init
    • git add .工作区—暂存区
    • git commit -m '提交描述暂存区—当前分支
  • git管理的是修改,每一个修改都需要先add,再commit
  • 工作区的修改全部撤销:git checkout -- 文件名称
  • 暂存区—工作区:git reset HEAD 文件名称
  • 删除文件:git rm 文件名称

远程仓库

假设已经在github有仓库

  • 关联:git remote add origin 仓库地址
  • 首次推送:git push -u origin master
  • 之后推送:git push origin master
  • 克隆:git clone 仓库地址

分支

  • 创建:git branch dev
  • 查看:git branch
  • 切换:git checkout dev
  • 创建并切换:git branch -b dev
  • 合并:git merge dev
  • 删除:git branch -d dev
  • 新版本:使用switch创建并切换:git switch -c devgit checkout -- 文件名称命令区分
  • 查看分支合并图:git log --graph
  • 模式
    • Fast forward模式,删除分支不会保留分支信息
    • 禁止使用上方模式:–no-ff,会生成一个commit ,要使用-m,最终命令:git merge --no-ff -m "描述" dev
  • 储藏工作现场
    • 储藏:git stash
    • 恢复
      • 未删除stash内容:git stash apply 需要此命令删除git stash drop
      • 删除stash内容:git stash pop
    • 查看:git stash list
    • 复制特定提交到当前分支:git cherry-pick 提交版本号
  • 删除未被合并的分支:git branch -D <name> -D强行删除
  • 本地和远程分支
    • 本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name本地和远程分支的名称最好一致;
    • 建立关联,使用git branch --set-upstream branch-name origin/branch-name;
  • rebase操作的特点:把分叉的提交历史“整理”成一条直线,看上去更直观。缺点是本地的分叉提交已经被修改过了

标签

  • 创建
    • 默认是最新提交打标签: git tag 名称
    • 指定提交打标签:git tag 名称 版本号
    • 有说明的标签:git tag -a 名称 -m 描述
  • 查看
    • 所有标签:git tag
    • 标签信息:git show 名称
  • 删除
    • 本地:git tag -d 名称
    • 远程:先本地git tag -d 名称;再远程git push origin :refs/tags/名称
  • 推送:git push origin tagname 所有标签都推送git push origin --tags

猜你喜欢

转载自blog.csdn.net/qq_44349849/article/details/113937537