Git 基本原理与常用命令

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

Git 入门

这里推荐 @廖雪峰
 所写的一个非常浅显易懂的Git教程 ,我当时就花了一个下午照着教程学操作一遍,然后就开始使用 Git 了。

Git 原理

Git 本质上是一套内容寻址文件系统。从内部来看,Git 是简单的 key-value 数据存储。它允许插入任意类型的内容,并会返回一个键值,通过该键值可以在任何时候再取出该内容。这些对象都压缩存储,并且以其自身的 SHA-1 哈希值作为唯一标示。它允许插入任意类型的内容,并会返回一个键值,通过该键值可以在任何时候再取出该内容。

Git主要包含 3 类对象:blog(对应文件)、tree(对应目录)、commit。每次 Git 提交都会产生一个 commit 对象,并更新有改动的文件所关联的所有 tree 对象。多个 tree 对象一起记录了包含整个项目所有 blob 对象的信息, 并构成了(DAG)有向无环图 。所以在任何时间点任何情况下,通过 commit 对象关联的唯一根节点 tree,都可以遍历找出整个项目在这次
commit 状态下的全部文件。

Git 可以以两种主要的方式跨越两个仓库传输数据:基于HTTP协议之上,和 file://, ssh://, git:// 等智能传输协议。

Git 插件

好的 IDE 基本都集成了 Git 插件,最性感的编辑器 sublime 也有第三方的 Git插件。这些插件基本对最常用的 Git 功能做好了菜单选项,所以通过对这些插件使用也能够了解到 Git 日常使用中最常用的命令与功能。

Git 使用注意

如果正在 IDE 中使用 Git插件,就不要在命令行 (shell) 中在进行操作,对于一个 Git库 同时有两个进程来操作可能会导致可能莫名其妙的问题。所以如果觉得软件的Git插件有的功能没找到或操作不方便,那么建议先关掉 IDE ,然后在用命令行窗口中去执行 Git 命令。

Git 常用命令

这个不需要刻意去记,但是要有大体的了解,用时可以查看 help 或者 Google.

git help <command>          # 显示指定命令的help
git config --global user.name "your name"
git config --global user.email "your email"

# 修改与提交
git status                   # 查看工作区状态
git add <file>               # 将指定文件修改提交到本地暂存区
git add .                    # 将所有修改过的文件提都交暂存区,不包括删除,"."即表示正则匹配所有字符
git add --all                # 将所有工作区修改提交到暂存区,包括 delete 掉的文件
git add -A                   # 同上
git commit -m"comments"      # 将暂存区的内容提交到本地库,并加上备注
git commit <file>            # 提交暂存区指定文件
git commit .                 # 提交暂存区所有文件
git commit -a                # 将git add, git rm和git commit等操作都合并在一起做,不包括新建文件
git commit -am "comments"    # 同上+添加备注

# 撤销与恢复
git checkout  -- <file>     # 抛弃工作区指定文件的修改
git checkoout .             # 抛弃工作区所有的修改
git reset <file>            # 将指定文件从暂存区恢复到工作区
git reset -- .              # 将所有文件从暂存区恢复到工作区
git reset --hard            # 恢复最近一次提交过的状态,工作区所有修改被放弃

# 查看提交
git show            # 显示某次提交的内容
git show $id
git log
git log <file>      # 查看该文件每次提交记录
git log -p <file>   # 查看每次详细修改内容的diff
git log -p -2       # 查看最近两次详细修改内容的diff
git log --stat      # 查看提交统计信息

# 差异对比
git diff <file>                     # 比较当前文件和暂存区文件差异
git diff <$id1> <$id2>              # 比较两次提交之间的差异
git diff <branch1>..<branch2>       # 在两个分支之间比较
git diff --staged                   # 比较暂存区和版本库差异
git diff --stat                     # 仅仅比较统计信息

# 关于版本
git tag                              #查看版本
git tag [name]                       #创建版本
git tag -d [name]                    #删除版本
git tag -r                           #查看远程版本
git push origin [name]               #创建远程版本(本地版本push到远程)

# 关于分支
git branch <new_branch>             # 创建新的分支
git checkout <branch>               # 切换到某个分支
git checkout -b <new_branch>        # 创建新的分支,并且切换过去
git branch -v                       # 查看各个分支最后提交信息
git branch -r                       # 查看远程分支
git branch --merged                 # 查看已经被合并到当前分支的分支
git branch --no-merged              # 查看尚未被合并到当前分支分支
git checkout $id                    # 把某历史提交checkout出来,无分支信息,切换到其他分支会自动删除
git checkout $id -b <new_branch>    # 把某历史提交checkout出来,创建成一个分支
git branch -d <branch>              # 删除某个分支
git branch -D <branch>              # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)

# 关于远程仓库
git remote add origin <remote>       # 添加远程库
git remote -v                        # 查看远程服务器地址和仓库名称
git remote show origin               # 查看远程服务器仓库状态
git remote rm <repository>           # 删除远程仓库
git push -u origin master            # 客户端首次提交
git push -u origin develop           # 首次将本地develop分支提交到远程develop分支,并且track

# 跟踪远程库和本地库
git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop

【地址】http://blog.csdn.net/thisinnocence

Git 基本原理与常用命令,布布扣,bubuko.com

时间: 2024-10-11 11:24:04

Git 基本原理与常用命令的相关文章

Git本地库常用命令集

Git本地库常用命令集 以下所有的git命令都是在测试目录/git/下进行的.mkdir /git git init : 初始化git本地库在git本地库目录下执行该命令将会初始化一个git的本地库目录,此时在该目录下将会生成一个.git文件夹,其中包含有git本地库的配置文件及项目文件 git init git config [user.name][user.email] : 设置签名设置签名主要是为了使git能够区分提交代码的人员,其中签名级别又分为: 项目级别/仓库级别 : git con

git的一些常用命令

Git和SVN是我们最常用的版本控制系(Version Control System, VCS),当然,除了这二者之外还有许多其他的VCS,例如早期的CVS等.顾名思义,版本控制系统主要就是控制.协调各个版本的文档内容的一致性,这些文档包括但不限于代码文件.图片文件等等.早期SVN占据了绝大部分市场,而后来随着Git的出现,越来越多的人选择将它作为版本控制工具,社区也越来越强大.相较于SVN,最核心的区别是Git是分布式的VCS,简而言之,每一个你pull下来的Git仓库都是主仓库的一个分布式版

Git之 基本常用命令

Git基本常用命令如下: mkdir:         XX (创建一个空目录 XX指目录名) pwd:          显示当前目录的路径. git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件. git add XX       把xx文件添加到暂存区去. git commit –m “XX”  提交文件 –m 后面的是注释. git status        查看仓库状态 git diff  XX      查看XX文件修改了那些内容 git

git配置及常用命令

1.配置 1)在网上下载git软件.我的是Git-1.9.5-preview20150319.exe和TortoiseGit-1.8.14.0-64bit.msi. 安装完后,从开始菜单点击git bash 2)输入 ssh-keygen -C "[email protected]" -t rsa 来生成一对密钥,默认保存到~/.ssh目录. 3)输入git config --global user.email [email protected] git config --global

Git 入门和常用命令详解

git 使用使用教程   git 使用简易指南  常用 Git 命令清单 下载   https://git-scm.com/downloads 工作流 本地仓库由三部分组成. 工作区:保存实际的文件(本地实际的文件目录) 缓存区(Stage / Index):临时保存文件改动 HEAD:指向最近一次提交的后果 下图说明了 Git 的工作流程 图片来源:http://www.runoob.com Git 常用命令 git init 创建新仓库.在当前目录中创建新的 Git 仓库,生成.git文件夹

Git与GitHub常用命令

说在前面的话,本文是跟着张哥的 GitHub 系列教程操作的,张哥微信公众号: googdev 雾艹-.. 一直在出差(借口)- 看了一下两个月没写博客了,真是太TM可怕了!!! 赶紧补一发,压压惊 git 注:在使用的任何的 git 命令前,都要切换到 git 项目目录下 git init 初始化一个 git 仓库 git status 查看当前 git 仓库的状态 git add file 修改 file 文件的状态为添加,并没有提交,只是存在缓存区 git rm –cached file

Git配置和常用命令

Git配置 git config --global user.name "hunng" git config --global user.email "[email protected]" git config --global color.ui true git config --global alias.co checkout git config --global alias.ci commit git config --global alias.st sta

Git学习 --&gt; 个人常用命令add,commit以及push

Git命令行配置1 安装Github2 安装msysgit3 要配置用户名和油箱  git config --global user.name <用户名> 我的命令就是:git config --global user.name mchdbagh  git config --global user.email <油箱> 我的命令就是:git config --global mc[email protected]4 验证有没有连接上remote远程服务器ssh -T [email p

Git 、 Cocoapods常用命令

Git常用命令 1.添加文件   git  add  xxx 2.提交更新到本地  git commit   -m  'local-repo' 3.提交更新    git  push master 4.列出分支    git branch 5.检索分支代码   git checkout xxx 6.拉取分支更新   git pull xxx 7.列出tag    git   tag -l 8.添加本地tag:   git  tag -a   0.0.1 9.推送tag到远程库:    git p