1.下载(Windows )
官方版本可以在 Git 官方网站下载。 打开 http://git-scm.com/download/win,下载会自动开始。
还有Git for Windows的项目(也叫做 msysGit),和 Git 是分别独立的项目;可访问 http://msysgit.github.io/。
2.初始设置
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:
$
git config --global user.name"***"
$
git config --global user.email **@example.com
git config --list
命令来列出所有 Git 当时能找到的配置
若你使用 Git 时需要获取帮助,有三种方法可以找到 Git 命令的使用手册:
3. 获取 Git 仓库$
githelp
<
verb>
$
git<
verb>
--help$
man git-<
verb>
3.1 克隆一个已有的仓库
git clone https://github.com/libgit2/libgit2
这会在当前目录下创建一个名为 “libgit2” 的目录,并在这个目录下初始化一个 .git
文件夹,从远程仓库拉取下所有数据放入 .git
文件夹,然后从中读取最新版本的文件的拷贝。 如果你进入到这个新建的 libgit2
文件夹,你会发现所有的项目文件已经在里面了,准备就绪等待后续的开发和使用。 如果你想在克隆远程仓库的时候,自定义本地仓库的名字,你可以使用如下命令:
$
git clone https://github.com/libgit2/libgit2 mylibgit
这将执行与上一个命令相同的操作,不过在本地创建的仓库名字变为 mylibgit
。
进入该项目目录并输入:
3.3记录每次更新到仓库$
git initgit add *.c git add LICENSE git commit -m'initial project version'
现在我们手上有了一个真实项目的 Git 仓库,并从这个仓库中取出了所有文件的工作拷贝。 接下来,对这些文件做些修改,在完成了一个阶段的目标之后,提交本次更新到仓库。工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。
git status
On branch master
nothing to commit, working directory clean
这说明你现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。分支名是 “master”,这是默认的分支名。
当出现在 Untracked files
下面。 未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围,
使用命令 git add
开始跟踪一个文件。 所以,要跟踪 README 文件,运行:
$
git add README
只要在
Changes to be committed
这行下面的,就说明是已暂存状态。 如果此时提交,那么该文件此时此刻的版本将被留存在历史记录中。
出现在 Changes not staged for commit
这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。 要暂存这次更新,需要运行 git add
命令。
git status
命令的输出十分详细,但其用语有些繁琐。 如果你使用 git status -s
命令或 git status --short
命令,你将得到一种更为紧凑的格式输出。 运行 git status -s
,状态报告输出如下:
$
git status -s
M README
MM Rakefile
A lib/git.rb
M lib/simplegit.rb
?? LICENSE.txt
新添加的未跟踪文件前面有 ??
标记,新添加到暂存区中的文件前面有 A
标记,修改过的文件前面有 M
标记。 你可能注意到了 M
有两个可以出现的位置,出现在右边的 M
表示该文件被修改了但是还没放入暂存区,出现在靠左边的 M
表示该文件被修改了并放入了暂存区。
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为.gitignore
的文件,列出要忽略的文件模式。 来看一个实际的例子:
$
cat .gitignore
*.[oa]
*~
3.5远程仓库
查看
git remote
origin
$
git remote add pb https://github.com/paulboone/ticgit
$
git remote -v
运行 git remote add <shortname> <url>
添加一个新的远程 Git 仓库
$
git fetch [
remote-name]
推送远程仓库
git push [remote-name] [branch-name]
。 当你想要将 master 分支推送到 origin
服务器时(再次说明,克隆时通常会自动帮你设置好那两个名字)
git remote rm paul
git remote rename pb paul
git status这说明你现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。分支名是 “master”,这是默认的分支名。On branch master
nothing to commit, working directory clean
Untracked files
下面。 未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围,
使用命令 git add
开始跟踪一个文件。 所以,要跟踪 README 文件,运行:
$
git add README
只要在
Changes to be committed
这行下面的,就说明是已暂存状态。 如果此时提交,那么该文件此时此刻的版本将被留存在历史记录中。
Changes not staged for commit
这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。 要暂存这次更新,需要运行 git add
命令。 git status
命令的输出十分详细,但其用语有些繁琐。 如果你使用 git status -s
命令或 git status --short
命令,你将得到一种更为紧凑的格式输出。 运行 git status -s
,状态报告输出如下:
$
git status -sM README
MM Rakefile
A lib/git.rb
M lib/simplegit.rb
?? LICENSE.txt
新添加的未跟踪文件前面有 ??
标记,新添加到暂存区中的文件前面有 A
标记,修改过的文件前面有 M
标记。 你可能注意到了 M
有两个可以出现的位置,出现在右边的 M
表示该文件被修改了但是还没放入暂存区,出现在靠左边的 M
表示该文件被修改了并放入了暂存区。
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为.gitignore
的文件,列出要忽略的文件模式。 来看一个实际的例子:
3.5远程仓库 查看$
cat .gitignore*.[oa]
*~
git remoteorigin
$
git remote add pb https://github.com/paulboone/ticgit$
git remote -v
运行 git remote add <shortname> <url>
添加一个新的远程 Git 仓库
推送远程仓库$
git fetch[
remote-name]
git push [remote-name] [branch-name]
。 当你想要将 master 分支推送到 origin
服务器时(再次说明,克隆时通常会自动帮你设置好那两个名字)
git remote rm paul
git remote rename pb paul