五分钟开始你的Git之旅

不少人认为Git太混乱或太复杂而没有把它当作版本控制工具。然而Git正在成长,另外不少颇有意思的事情也随之发展起来。这篇文章瞄准了想开始用Git的人群,一般是从Subversion(另外一个版本控制工具)转过来的。这篇文章将包含你须要学会的大部分最经常使用的基本技能。

让咱们开始吧

       使用Git你得安装一个版本库。你能够用一个已经存在的目录来作一个Git库,或者建立一个空目录。
 
       把当前的目录设置为一个Git库咱们只须要初始化:

       git init

       要作一个新目录当作Git库的话,咱们须要指定一个目录:

       git init newrepo

       从如今起,除非另有说明,咱们假设你一直都在这个Git库的根目录。

添加新文件

       因此咱们只有一个什么都没有的库。你能够用add命令来添加文件:

       git add filename

       想添加你目录里的全部文件你能够用这个:

       git add

提交版本

       如今咱们已经添加了一些文件,咱们想让它们真正的存在Git库里。能够经过下面这条命令这把它们提交给Git库:

       git commit -m “Adding files”

       若是遗漏了-m,你须要本身在编辑器里写上信息。

编辑文件

       当你对某些文件作出改变时,你能够试试git status来看看提交后会发生什么事。你会注意到一个修改文件的列表,以及一条信息:

       no changes added to commit (use “git add” and/or “git commit -a”)

       因此除非你明确地用git add添加文件并提交到git库,否则git commit一点用也没有。若是你正在找能自动提交本地修改文件的提交命令能够加上-a标识:

       git commit -a -m “Changed some files”

       或者若是你只想把某些文件,而不是运行git add,咱们能够传递一些指定的文件:

       git commit -m “change some files” file1 file2

       必定要注意-a不会提交新文件,而只会提交修改后的文件。

发布你的Git库

       把你的库放到服务器上咱们须要从创建一个空库开始,而后把你的Git库上传到服务器上。

       cd /tmp

       git clone --bare ~/your/repo/path project.git

       scp -r project.git ssh://example.com/~/www/

       如今若是咱们我不少提交文件并想把它们推送到那个位置:

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

       若是你不喜欢每次都敲URI咱们能够从一个克隆的项目记着它的地址来采起点便利方法:

       cd..

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

       如今git push就会推送至他克隆来的URI。你能够经过在你的库里手工编辑.git/config来实现这一点。

获取上游的改变

       若是你已经照上面把推送安装好了:

       git pull

       上面这个命令将会把库里的改变获取回来而且把它们结合起来。从非默认路径获取只须要指定URI:

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

五分钟以外的奖励

        提交

       你已经注意到了,Git以“提交”的方式在思考。这些提交被一个hash值惟一地标记。你能够用git log命令浏览提交历史和相应的hash值。每一个提交都包含了改动信息,新文件和那些被移除的文件。Add命令会把一个文件放到提交里面。git reset HEAD会把计划提交里的一切都移除掉,但不改变文件里的内容。

        移除

       若是你想从你的Git库里吧一个文件移除,咱们用rm命令来把它从之后的提交里移除:

       git rm file

        分支与合并

       分支是在本地迅速完成的。咱们用branch命令来创建一个新分支:

       git branch test

       branch命令并不会把咱们移动到咱们创建的那个分支里去,它只会建立。咱们用checkout命令来变换到不一样的分支里去:

       git checkout test

       第一个分支,或主要分支,被称为“master”。

       git checkout master

       然而你在分支里提交的改变并不会在主分支里体现出来。当你完成后,或者想推送改变到主分支的时候,切换到主分支并使用merge命令:

       git checkout master

       git merge test

       另外若是你再也不须要这个分支的时候你能够用branch命令传送-d标识来删掉它:

       git branch -d test

        穿越时空

       你能够再次使用checkout命令很快地恢复Git库到之前的状态:

       git checkout HASH

       没有提交的改变将会和你一块儿穿越。用git checkout master命令来恢复到预置状态,普通分支也的作法也同样。若是你在过去提交的分支是自动建立的,你对文件作出的改变会与前面的内容结合起来。

        之后被掩盖的真相

       当在分支之间切换的时候,你本地的改变也会随着变化。有时你想切换分支但又不想提交或让这些改变随着变化。Stash命令容许你把改变放到一个安全的存储里。

       git stash

       你能够经过传递一个apply或pop参数来从新得到它:

       git stash apply

       apply和pop命令之间的不一样其实很简单。apply把隐藏状态找出来并加以运用,但在隐藏处还保持它原来的状态(至关于复制出来文件并加以运用,原来的安全存储区域不变)。pop命令会找到隐藏状态,加以运用,而且会把隐藏状态删除掉。git stash clear命令会把隐藏区域的内容清空。
相关文章
相关标签/搜索