# Git 学习之旅

# Git 与 SVN 的区别

  • 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
  • **2、Git 把内容按元数据方式存储,而 SVN 是按文件:** 所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
  • **3、Git 分支和 SVN 的分支不同:** 分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
  • **4、Git 没有一个全局的版本号,而 SVN 有:** 目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
  • **5、Git 的内容完整性要优于 SVN:**Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

Git 完整命令手册地址:http://git-scm.com/docs

PDF 版命令手册:github-git-cheat-sheet.pdf

使用 Git 前,需要先建立一个仓库 (repository)。您可以使用一个已经存在的目录作为 Git 仓库或创建一个空目录。

使用当前目录作为 Git 仓库,只需使它初始化。

git init

使用指定目录作为 Git 仓库。

git init newrepo

# 添加新文件

有一个仓库,但什么也没有,可以使用 add 命令添加文件。

git add filename

可以使用 add... 继续添加任务文件。

# 提交版本

将它们提交到仓库。

git commit -m "Adding files"

如果不使用 - m,会出现编辑器来让你写自己的注释信息。

当修改了很多文件,而不想每一个都 add,想 commit 自动来提交本地修改,可以使用 - a 标识。

git commit -a -m "Changed some files"

git commit 命令的 - a 选项可将所有被修改或者已删除的且已经被 git 管理的文档提交到仓库中。

注意,-a 不会造成新文件被提交,只能修改。

# 发布版本

先从服务器克隆一个库并上传。

git clone ssh://example.com/~/www/project.git

现在修改之后可以进行推送到服务器。

git push ssh://example.com/~/www/project.git

# 取回更新

如果已经按上面的进行 push,下面命令表示,当前分支自动与唯一一个追踪分支进行合并。

git pull

从非默认位置更新到指定的 url。

git pull http://git.example.com/project.git

# 删除

如何想从资源库中删除文件,使用 rm。

git rm file

# 分支与合并

分支在本地完成,速度快。要创建一个新的分支,使用 branch 命令。

git branch test

branch 命令不会将带入分支,只是创建一个新分支。所以使用 checkout 命令来更改分支。

git checkout test

第一个分支,或主分支,被称为 "master"。

git checkout master

对其他分支的更改不会反映在主分支上。如果想将更改提交到主分支,则需切换回 master 分支,然后使用合并。

git checkout master
git merge test

如果想删除分支,使用 - d 标识。

git branch -d test
Edited on Views times

Give me a cup of [coffee]~( ̄▽ ̄)~*

那我就让时光倒流 WeChat Pay

WeChat Pay

那我就让时光倒流 Alipay

Alipay