Git原理及常用操作命令总结

Git 原理

1.直接记录快照,而非差异比较
2.近乎所有操作都是本地执行
3.时刻保持数据完整性
4.多数操作仅添加数据

1.直接记录快照,而非差异比较
  git 只关心文件数据的整体是否发生改变,而大多数其他系统则只关心文件内容的具体差异。
  git 并不保存这些前后变化的差异数据。git 更像把变化的文件作快照后,记录在一个微型的文件系统中,每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为了提高性能,若文件没有变化,git 不会再次保存,而只对上次保存的快照作一链接。(这是git 同其他版本管理工具的重要区别)

2.近乎所有操作都是本地执行
  在git中的绝大多数操作都只需要访问本地文件和资源,不用联网。
  因为git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。
  举个例子,如果要浏览项目的历史更新摘要,git 不用刀服务器上去取数据,直接从本地数据库读取后展示给你看,所以任何时候你都可以马上翻阅,无需等待。如果想要看当前版本的文件和一个月前的版本之间有何差异,git 会取出一个月前的快照和当前文件作一次差异运算,而不用请求远程服务器来做这件事,或是把老版本的文件拉到本地来作比较。

3.时刻保持数据完整性
  在保存到git 之前,所有数据都要进行内容的校验和计算,并将此结果作为数据的唯一标识和索引。换句话说,不可能在你修改了文件或目录之后,git 一无所知,这项特性作为git 的设计哲学,建在整体的架构的最底层。所以如果文件在传输时变的不完整,或者磁盘损坏导致文件数据缺失,git 都能立即察觉。

4.多数操作仅添加数据
  常用的 git 操作大多仅仅把数据添加到数据库。因为任何一种不可逆的操作,比如删除数据,都会使回退或重现历史版本变得困难重重。

Git 代码提交过程
1.查看目前代码的修改状态 (git status)
2.查看代码修改内容
3.暂存需要提交的文件 (git add + file soureces)
4.提交已经暂存的文件 (git commit)
5.同步到服务器 (git push origin + master)

1.查看目前代码的修改状态
  提交代码前,首先应该检查目前所做的修改,在终端里输入
  git status
  然后会有如下状态指示:
  a> changes to be committed (已暂存)
  b> changed but not updated (已修改)
  c> untracked files (未追踪)
  根据提示状态决定是否进行修改或者暂存

2.查看代码修改的内容
  git diff <file>
  比较某文件与最近提交节点的差异
  注意:
  如果该文件已暂存,那么应该使用 git diff -cached<file>

  git diff <hashcode><hashcode> <file>
  比较某文件在提交节点a,节点b的差异
  技巧:
  如果省略后面一个hashcode,则默认表示与上一提交节点比较

3.暂存需要提交的文件
  git add <file>
  在提交前,我们发现一些文件不需要提交,这时候可以
  git rm <file>,这样就可以临时将该文件从本地仓库移除

4.提交已暂存的文件
  git commit
  然后填写注释,通过 ctrl + c 退出注释界面,通过 :wq 进行保存并退出。
  (命令 :!q 为不保存强制退出)

  git commit —amend
  修改最近一次的提交,在上次提交注释书写有误或者漏提文件的情况下,可以使用此文件。

5.同步到服务器
  同步到服务器钱前首先需要将服务器代码同步到本地
  git pull

  如果执行失败,就按照提示还原有冲突的文件,然后再次尝试同步
  (初次使用git 的同学可能在此处出现问题,记住按照提示修改原有的冲突文件,可以联系我)
  查找提示命令:
  git checkout —<有冲突的文件路径>

  同步到服务器,在前两步没问题后,咱们就可以将代码提交到远程仓库了
  git push origin <本地分支名>
  若执行失败,一般是没有将服务器代码同步到本地导致的。先执行上面的git pull命令。

总结:今天给大家总结了git 原理和git 相关操作指令,有疑惑可以留言,我会尽快解答您的疑惑。

时间: 2024-12-24 23:44:17

Git原理及常用操作命令总结的相关文章

GIT原理和常用命令速成

[原创,2018-03-16,15:33:49] 刚开始学习GIT的时候,以为只要掌握几个基本的操作指令就万事大吉了.但是随着GIT使用的深入,如果不了解些原理就会遇到各种各样让人一脸懵逼的问题,所以还是要对GIT原理有一些基本了解,这里默认已经掌握常用的基本指令了.(随便搜教程看下就行,例如clone pull push add commit log reset status branch checkout差不多吧,文末也会记录一些常用命令) ps. 文中列举了许多英文单词,因为在外文手册和h

git的一些常用操作命令

这些操作命令都是从廖雪峰老师的官网上看过后记下来的,以下是廖雪峰老师的官网,大家可以看看,教程不错~ http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 1.在windows上安装git 下载地址:http://msysgit.github.io/ 默认安装就可以,安装完成后打开Git->Git Bash 2.配置用户名和密码 3.git init 把当前目录变成Git可以管理的仓库

Git常用操作命令总结(二)

Git常用操作命令总结(一) 分支功能是所有版本管理工具必备的功能,有了分支才能实现不同用户之间并行工作而又不互相影响,等两用户各自的功能都完成后,在合并到一起即可. 本文主要总结一下git中进行分支管理的常用命令: 1.创建分支 $ git branch bra ## 创建分支bra 2.切换到分支bra $ git checkout bra Switched to branch 'bra' 3.创建并切换分支 $ git checkout -b rcm Switched to a new b

GIT常用操作命令收集

GIT常用操作命令收集: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v 添加远程仓库:$ git remote add [name] [url] 删除远程仓库:$ git remote rm [name] 修改远程仓库:$ git remote set-url --push[name][newUrl] 拉取远程仓库:$ git pull [remoteName] [lo

git中常用的操作命令有哪些?常用操作命令归纳

git中常用的操作命令有哪些?本篇文章就给到大家归纳了一些git中常用操作命令.有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. git开始 全局配置:配置用户名和e-mail地址 1 2 $ git config --global user.name"Your Name" $ git config --global user.email"[email protected]" git init:初始化git仓库,目录下生成一个.git文件 1 git

Git 基本原理与常用命令

平时使用过两种版本控制软件 SVN 和 Git,平心而论,如果纯粹自己使用,那么绝对 Git 更加适合,本地库.远程库.离线工作.强大而灵活的分支.大名鼎鼎的Github, 这些都是选择 Git 的原因.记得刚接触时Git,感觉 Git 如此强大,再加上其是由大名鼎鼎的 Linus 所编写,所以花了很多的时间看各种资料,不过后来那些不常用的命令与功能还是仅仅停留在知道与了解的层面.Git 只是一种工具,是为了满足某种需求而被编写出来的一种工具,对于工具做到善加利用即可.当然,要做到善加利用,一定

Git原理入门解析

前言: 之前听过公司大佬分享过 Git 原理之后就想来自己总结一下,最近一忙起来就拖得久了,本来想塞更多的干货,但是不喜欢拖太久,所以先出一版足够入门的: 一.Git 简介 Git 是当前流行的分布式版本控制管理工具,最初由 Linux Torvalds (Linux 之父) 创造,于 2005 年发布. Git,这个词其实源自英国俚语,意思大约是 “混账”.Linux 为什么会以这样自嘲的名字来命名呢?这其中还有一段儿有趣的历史可以说一说: 以下摘自:https://www.liaoxuefe

linLINUX中常用操作命令

LINUX中常用操作命令 Linux简介及Ubuntu安装 常见指令 系统管理命令 打包压缩相关命令 关机/重启机器 Linux管道 Linux软件包管理 vim使用 用户及用户组管理 文件权限管理 Linux简介及Ubuntu安装 Linux,免费开源,多用户多任务系统.基于Linux有多个版本的衍生.RedHat.Ubuntu.Debianaa 安装VMware或VirtualBox虚拟机.具体安装步骤,找百度. 再安装Ubuntu.具体安装步骤,找百度. 安装完后,可以看到Linux系统的

【git体验】git原理及基础

原理:分布式版本控制系统像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不只提取最新版本 的文件快照,而是把原始的代码仓库完整地镜像下来.这么一来,任何一处协同工作用的服务器发生故障, 事后都可以用任何一个镜 像出来的本地仓库恢复.因为每一次的提取操作,实际上都是一次对代码仓库的 完整备份. 更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互.籍此,你就可以在同一个 项目中,分别和不同工作小组的人相互协作.你可以根据需要设定不同的协作流程,比如层次模型式