首页 > 代码库 > Git原理及常用操作命令总结

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 相关操作指令,有疑惑可以留言,我会尽快解答您的疑惑。

 

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