首页 > 代码库 > Step 2---有关Github的几个问题

Step 2---有关Github的几个问题

1.取得项目的Git仓库的方式

第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。

要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行: $ git init

初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。
 
第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来。
如果想对某个开源项目出一份力,可以先把该项目的 Git 仓库复制一份出来,这就需要用到 git clone 命令。Git 收取的是项目历史的所有数据(每一个文件的每一个版本)。
 
2.记录每次更新到仓库
接下来,对这些文件作些修改,在完成了一个阶段的目标之后,提交本次更新到仓库
对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存 (staged)。
Git 管理项目时,文件流转的三个工作区域:Git 的工作目录暂存区域,以及本地仓库
工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。
  • 已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。
  • 其他文件都属于未跟踪文件。它们既没有上次更新时的快照,也不在当前的暂存区域。初次克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,且状态为未修改。
编辑过某些文件之后,Git 将这些文件标为已修改。我们逐步把这些修改过的文件放到暂存区域,直到最后一次性提交所有这些暂存起来的文件,如此重复。
附:
3.可以对文件进行的操作
  1. 检查当前文件状态可以用 git status 命令
  2. 跟踪新文件,使用命令 git add开始跟踪一个文件
  3. 暂存已修改文件,要暂存这次修改,运行 git add 命令(这是个多功能命令:可以开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等)
  4. 忽略某些文件,有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。
  5. 查看已暂存和未暂存的更新, git status 的显示比较简单,仅仅是列出了修改过的文件,如果要查看具体修改了什么地方,可以用 git diff 命令。单单 git diff 不过是显示还没有暂存起来的改动,而不是这次工作和上次提交之间的差异。
  6. 提交更新,命令 git commit,在暂存准备好可以提交前,一定要确认还有什么修改过的或新建的文件还没有 git add 过,否则提交的时候不会记录这些还没暂存起来的变化。所以,每次准备提交前,先用 git status 看下,是不是都已暂存起来了,然后再运行提交命令 git commit
  7. 跳过使用暂存区域,尽管使用暂存区域的方式可以精心准备要提交的细节,但有时候显繁琐。Git 提供了一个跳过使用暂存区域的方式,在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。
  8. 移除某个文件,要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。
  9. 文件移动,不像其他的 VCS 系统,Git 并不跟踪文件移动操作。 mv 命令。要在 Git 中对文件改名,可以这么做:
    $ git mv file_from file_to

    其实,运行 git mv 就相当于运行了下面三条命令:

    $ mv README.txt README #move$ git rm README.txt    #remove$ git add README       #跟踪新文件

    如此分开操作,Git 也会意识到这是一次改名。

4.查看提交历史

  • 在提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用 git log 命令查看。
  • 默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面。git log 有许多选项可以帮助你搜寻感兴趣的提交,接下来我们介绍些最常用的。git log -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新。
  • git log 还提供了许多摘要选项可以用,比如 --stat,仅显示简要的增改行数统计,等等。
  • 除了定制输出格式的选项之外,git log 还有许多非常实用的限制输出长度的选项。
  • 随 Git 一同发布的 gitk 就是这样一种工具,基本上相当于 git log 命令的可视化版本。