首页 > 其他 > 详细

Git 学习

时间:2021-04-19 11:24:42      阅读:12      评论:0      收藏:0      [点我收藏+]

Git

相关概念

设计哲学

Git是基于文件的版本控制系统。

不同于其他的竞品,Git放弃了通过维护操作历史演化版本的架构方案,因此每次Fork项目时,并不需要对所有提交历史进行演化,具有很快的响应速度。

正常情况下,基于快照进行版本控制,会有大量占用存储空间的缺点,Git通过优秀的指针设计,来尽可能缩小了快照的占用空间,不会对重复内容进行多次快照存储。

Git的文件对比,是通过对俩份快照的内容的临时验算得到的结果,而不是通过对修改过程存储,获得的对照结果,所以无法仅在文件对比中体现文件中具体的提交演变历史。

工作状态

Git的本地工作过程共有三种状态:

  • 已提交(committed) 表示数据已同步至本地数据库

  • 已修改(modified) 表示数据已经进行过修改(Hash值比对),并还未加入缓冲区

  • 已暂存(staged) 表示数据已加入缓存区中,等待Commit后进行同步

    技术分享图片

    工作目录 -> Git目录,会通过暂存区进行中转。

    常规工作流程为:

    1. 工作区修改文件
    2. 通过Git的文件跟踪系统,将修改后的文件拉入暂存区
    3. 进行Commit,将暂存区文件,同步至git目录。

操作指令

工作周期

commit(Record changes to the repository)

# 提交暂存区数据,至本地仓库
git commit -m ${备注信息}

reset(Reset current HEAD to the specified state)

# 将记录撤销至指针位置,中间提交记录撤回缓冲区
git reset ${对象指针}

revert(Revert some existing commits)

# 通过添加反向操作记录,对整体项目进行版本回滚。
git revert ${对象指针}

分支

branch(List, create, or delete branches)

# 创建分支 
git branch ${分支名}

# 将指定分支指针,强制迁移至当前指针
git branch -f ${分支名}

checkout(Switch branches or restore working tree files)

# 检出到指定分支 -b branch 创建并切换分支
git checkout ${分支名}

# 切换操作指针到指定节点
git checkout ${节点hash值}

# 通过指定对象的相对路径切换操作指针  ^ 代表父节点
git checkout ${对象}^

# 通过指定对象的相对路径切换操作指针向上迁移指定步数
git checkout ${对象}~${迁移步数}

merge(Join two or more development histories together)

# 将指定分支的修改,合并到当前分支,相当于将指定分支提交记录,同步一次
git merge ${分支名}

rebase(Reapply commits on top of another base tip)

# 将当前分支合并到指定分支中。 与merge对应但不完全相反。
git rebase ${分支名}

# 交互式组织提交节点 -i interactive
git rebase -i ${对象指针}

cherry(Find commits yet to be applied to upstream)

# 摘取指定的节点,按顺序插入当前分支
git cherry-pick ${节点集}

Git 学习

原文:https://www.cnblogs.com/yzxmm/p/14675489.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!