您的位置:首页 > 其它

Git的基础用法(二)

2015-04-28 09:07 337 查看
Git的基础用法(二)
1.初始化Git仓库:
命令: git init
作用:初始化后,在当前目录下就会有一个.git目录,所有Git所需要的数据和资源都存放在这个目录中,目前只按
照既有框架初始化好了里面所有文件和目录,但是还没有跟踪管理项目中的任何一个文件。

2.从现有仓库克隆:
命令: git clone
作用:相对一个开源项目出一份力,可以用此命令把该项目 的Git仓库复制一份出来。
栗子:$ git clone git://github.com/schacon/grit.git
说明:
会在当前目录下创建一个名为grit 的目录,其中包含一个 .git的目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。进入文件可以看到项目中所有的文件,准备好后续的开发和使用。

希望克隆时,自定义要新建的项目目录名称,在命令末尾指定新名字
<span style="font-family:SimHei;font-size:14px;">	$ git clone git://github.com/schacon/grit.git mygrit</span>

这样新建目录成了mygrit
3.上一篇我们说到Git中文件有三种状态
未更新、已修改、已暂存。
命令:git status
作用:查看文件当前的状态

4. 命令:git add
作用:跟踪新文件,跟踪的文件会被放入暂存区,处于暂存状态。
注意:git add 后面指明要跟踪的文件或者目录路径。如果是目录,说明要递归跟踪目录下的所有文件。运行了git add之后又作了修改文件,需要重新运行git add把最新版本重新暂存起来:

5.一般我们总会有些文件无需纳入Git的管理。比如日志文件,或者编译过程中创建的临时文件等。
我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式.
<span style="white-space:pre">	</span>cat .gitignore
<span style="white-space:pre">	</span>*.[oa]
<span style="white-space:pre">	</span>*~
说明:第一行告诉git忽略所有以.o或者.a结尾的文件。第二行让git忽略所有以波浪符~结尾的文件。

你可能还需要忽略 log, tmp 或者 pid 目录,以及自动生成的文档等,要养成一开始就设置好 .gitignore 文件的习惯, 以免将来提交这类无用的文件文件
.gitignore 的格式规范如下:
$1. 所有空行或者以注释符号 # 开头的行都会被Git 忽略。
$2. 可以使用标准的glob 模式匹配。
$3. 匹配模式最后跟反斜杠( / )说明要忽略的是目录。
$4. 要忽略指定模式以外的文件或者目录,可以在模式前加上惊叹号( !)取反。

glob 模式:指shell所使用的简化了的正则表达式。
星号(*)匹配零个或多个任意字符;
[ abc ] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个a, 要么匹配 b , 要么 c);
问号 ( ?) 匹配任意一个字符;
如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配( 比如【0-9】 匹配所有 0 到 9 的数字。)
我们在看一个 .gitignore 的文件的例子:



查看已暂存和为暂存的更新
6. 命令:git diff
作用:git status 的显示比较简单,仅列出了修改过的文件,如果要查看具体修改了什么地方,可以使用git diff 命令。
此命令比较的是工作目录中当前文件和暂存区快照之间的差异,也就是修改之后没有暂存起来的变化内容。
git diff 会使用文件补丁的格式显示具体添加和删除的行。



说明:如果要查看已暂存起来的文件和上次提交时的快照之间的差异,可以用git diff --cached(--staged) 命令。



7.提交更新
命令:git commit
说明:直接使用此命令会启动文本编辑器以便输入本次提交说明。
另外也可以使用-m参数后面跟提交说明的参数,
<span style="white-space:pre">	</span>git commit -m "new file, commit first time."
8.命令:git commit -a
作用:跳过使用暂存区,提交时加上-a选项Git就会自动把所有已跟踪的文件暂存起来一并提交,从而跳过git add步骤。

9.命令: git rm xxx.yy
作用: 从暂存区移除文件。并连带从工作目录中删除指定的文件。
选项: -f 强制删除 (force ).
10.命令: git mv
作用: 移动文件 。
栗子: git mv file_from file_to



其实相当下面三条命令:

$ mv file_from file_to
$ git rm file_from
$ git add file_to
11. 命令 : git log
作用: 查看提交历史



默认不用参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面。每次都有一个SHA
- 1 校验和、作者的名字和电子邮件地址、提交时间,最后缩进一个段落显示提交说明。
git log 常用选项:-p 展开每次提交的内容差异,-2表示仅显示最近两次的更新。-stat 仅显示简要的增改行数。
12、命令:git commit --amend
作用:漏掉文件没有提交时,可以撤销提交,重新补充提交
说明:补充提交和上一次提交共用一个提交说明,归为一次提交
13、命令:git reset HEAD <file>

作用:取消掉加入到暂存区的文件
14、命令:git checkout
作用:取消对文件的修 (工作目录)

15、命令:git remote
作用:列出每个远程库的简单名字
说明:在克隆完某个项目后,至少可以看到一个名为origin的远程库, Git 默认使用这个名字来标识你所克隆的原始仓库
16、 命令: git remote add [shortname] [url]:
作用:添加新的远程仓库
17、命令:git fetch [remote -name]
作用:从远程库中拉取所有本地仓库中还没有的数据。之后就可以在本地访问该远程仓库中的所有分支,将其中某个分支合并到本地,或者只是取出某个分支

18、命令:git push [remote-name] [branch-name]
作用:推送数据到远程仓库
栗子:git push origin master 把本地的master分支推送到origin服务器上。
19、命令:git remote show [remote-name]
作用:查看某个远程库详细信息
20、

Git 也可以对某一时间点上的版本打上标签。发布某个软件版本时(比如:v1.0)经常这么做,
.列出所有可用的标签:


列出现有标签:
命令:git tag :
列出的标签按字母顺排列,可以用特定的搜索模式列出符合条件的标签。在Git自身的项目仓库中有超过240个标签
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: