美文网首页
git了解和基本用法

git了解和基本用法

作者: _Lily | 来源:发表于2015-12-22 18:53 被阅读89次

Git 在保存和对待各种信息的时候与其它版本控制系统有很大差异,尽管操作起来的命令形式非常相近。Git有以下特点:

一、直接记录快照,而非差异比较

Git 和其它版本控制系统(包括 Subversion 和近似工具)的主要差别在于 Git 对待数据的方法。 概念上来区分,其它大部分系统以文件变更列表的方式存储信息。 这类系统(CVS、Subversion、Perforce、Bazaar 等等)将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。

Git 不按照以上方式对待或保存数据。 反之,Git 更像是把数据看作是对小型文件系统的一组快照。 每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个快照流

这是 Git 与几乎所有其它版本控制系统的重要区别。 因此 Git 重新考虑了以前每一代版本控制系统延续下来的诸多方面。 Git 更像是一个小型的文件系统,提供了许多以此为基础构建的超强工具,而不只是一个简单的 VCS。

二、近乎所有操作都是本地执行

在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。 如果你习惯于所有操作都有网络延时开销的集中式版本控制系统,Git 在这方面会让你感到速度之神赐给了 Git 超凡的能量。 因为你在本地磁盘上就有项目的完整历史,所以大部分操作看起来瞬间完成。

三、Git 保证完整性

Git 中所有数据在存储前都计算校验和,然后以校验和来引用。 这意味着不可能在 Git 不知情时更改任何文件内容或目录内容。 这个功能建构在 Git 底层,是构成 Git 哲学不可或缺的部分。 若你在传送过程中丢失信息或损坏文件,Git 就能发现。

四、Git 一般只添加数据

你执行的 Git 操作,几乎只往 Git 数据库中增加数据。 很难让 Git 执行任何不可逆操作,或者让它以任何方式清除数据。 同别的 VCS 一样,未提交更新时有可能丢失或弄乱修改的内容;但是一旦你提交快照到 Git 中,就难以再丢失数据,特别是如果你定期的推送数据库到其它仓库的话。

五、三种状态

 Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

简单内容冲突处理

当两条分支对同一个文件的同一个文本块进行了不同的修改,并试图合并时,Git不能自动合并的,称之为冲突(conflict)。解决冲突需要人工处理。

比如当前在master分支,想把dev分支merge过来,结果产生了一个冲突,打开文件内容可以看到这么一个冲突:

<<<<<<< HEAD

test in master

=======

test in dev

>>>>>>> dev

<<<<<<<标记冲突开始,后面跟的是当前分支中的内容。

HEAD指向当前分支末梢的提交。

=======之后,>>>>>>>之前是要merge过来的另一条分支上的代码。

>>>>>>>之后的dev是该分支的名字。

对于简单的合并,手工编辑,然后去掉这些标记,最后像往常的提交一样先add再commit即可。

Git常用指令

git add README添加文件

git add [file name] 添加一个文件到git index

git branch 查看本地所有分支

git branch -a 查看所有的分支

git branch -r 查看远程所有分支

git branch 删除远程branch

git branch -D master develop 删除本地库develop

git branch branch_0.1 master 从主分支master创建branch_0.1分支

git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0

git commit -a 提交当前repos的所有的改变

git commit -v 当你用-v参数的时候可以看commit的差异

git commit -m "This is the message describing the commit" 添加commit信息

git commit -a -a是代表add,把所有的change加到git index里然后再commit

git commit -a -v 一般提交命令

git commit 提交

git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来

git checkout --track origin/dev 切换到远程dev分支

git checkout dev 切换到本地dev分支

git checkout -b dev 建立一个新的本地分支dev

git commit -m "init" 提交并且加注释

git commit -m "remove" 移除文件(从Git中删除)

git commit -a -m "log_message" (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :

git checkout branch_1.0/master 切换到branch_1.0/master分支

git config --list 看所有用户

git diff 查看尚未暂存的更新

git diff --cached 或 $ git diff --staged 查看尚未提交的更新

git fetch 相当于是从远程获取最新版本到本地,不会自动merge

git init本地初始化

git ls-files 看已经被提交的

git log 看你commit的日志

git merge origin/dev 将分支dev与当前分支进行合并

git pull 本地与服务器端同步

git push origin master将文件给推到服务器上

git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。

git push origin master:hb-dev将本地库与服务器上的库进行关联

git remote show origin 显示远程库origin里的资源

git remote show 查看远程库

git rm 文件名(包括路径) 从git中删除指定文件

git rm [file name] 删除一个文件

git rm a.a 移除文件(从暂存区和工作区中删除)

git rm --cached a.a 移除文件(只从暂存区中删除)

git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)

git remote add origin git@github.com:daixu/WebApp.git增加一个远程服务器端

git stash push 将文件给push到一个临时空间中

git stash pop 将文件从临时空间pop下来

相关文章

  • git了解和基本用法

    Git 在保存和对待各种信息的时候与其它版本控制系统有很大差异,尽管操作起来的命令形式非常相近。Git有以下特点:...

  • Git 常用命令小结

    前言 阅读本篇文章需要读者了解 Git 的基本用法,如果你对 Git 完全不了解,请先行移步了解 Git 基础。下...

  • git的基本用法

    上篇我们讲到了git的下载和安装,这篇就让我们了解一下git的基本用法吧! 下面我们使用命令行来实现git的使用 ...

  • git的远程推送及远程仓库下载

    在上篇git的基本用法中,我们了解了git在本地仓库的用法,接下来,我们就一起来学习一下git的远程操作吧。 比如...

  • Git 的简单命令记录

    git 基本用法 查看git状态 git status 克隆 git cloneht...

  • 用 Hugo + Coding 搭建免费博客,Cool 😎️

    适宜读者 了解 Git 的基本用法,能看懂简单的 Shell Script。 介绍 Hugo Static Sit...

  • Git 基本用法

    Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它...

  • Git基本用法

    1.Git配置 配置全局名称和邮箱 git config --global user.name "名称"git c...

  • Git 基本用法

    克隆 查看git状态 创建新的分支 切换分支 删除分支 添加新文件 提交 分支推到远程分支 查看提交记录 查看所有...

  • Git基本用法

    一.仓库配置及初始化 1.配置用户名:git config --global user.name "你的用户名" ...

网友评论

      本文标题:git了解和基本用法

      本文链接:https://www.haomeiwen.com/subject/istvhttx.html