Git 学习整理稿

https://try.github.io/levels/1/challenges/1
git

Trygit 是一个在线学习 Git 的网站,提供了一个终端来逐步学习Git 的 各类操做github


1.1 Got 15 minutes and want to learn Git?服务器

Git 容许一个团队的成员在同一时间对相同的文档(一般是代码)进行编辑,而且能够避免彼此的工做交叉。Git 是一个分布式的版本控制系统。分布式

咱们下面的终端提示符在被叫作 octobox 的路径下,若要初始化 Git 仓库,请键入如下命令:git init学习

1.2 Checking the Status
网站

干得好!Git 告诉咱们,咱们的 octobox 目录是在 /.git/ 下的一个空的仓库,这个仓库是在 Git 管理下的一个隐藏的目录版本控制

为了保存你在这个教程中的进展,成功完成一个阶段的学习会获得一枚徽章,去建立一个Code School 的账号吧!指针

接下来,让咱们键入 “git status”命令来看看咱们的项目的当前状态是什么:调试

1.3 Adding & Committing
日志

我为你在 octobox 仓库中建立了一个叫作 octocat.txt 的文件

你应该运行“ git status ”命令以查看仓库状态的更改:

好的,看起来咱们的 Git 仓库正常工做了,你应该注意到了,Git 将 octocat.txt 归档在 untracked 下,这意味着 octocat.txt 是一个新文件

为了让Git 开始跟踪 octocat.txt 所作的更改,咱们首先应该执行“ git add ”命令将它添加到暂存区

1.5 Checking for Changes

干得好!Git 如今已经跟踪了咱们的 octocat.txt 文件,如今让咱们运行“ git status ”命令来看看咱们的状态

1.6 Committing

注意到Git 将其变动到 committed 下了吧,这个文件列表是在暂存区,它们并不在咱们的仓库中

在咱们将其存储在仓库中以前咱们能够添加活移除文件

为了存储咱们的阶段性变动,咱们运行“ commit ”命令带着咱们对变动的描述信息

1.7 Adding All Changes

很是好,若是你想要添加多个类型的文件,你也但是使用通配符。我已经添加了一些 .txt 文件到目录下

我把一些文件放在名为“ octofamily ”的目录下,其余一些放在咱们的“ octobox ”的根目录中

幸运的是,咱们能够添加一个通配符使全部的 .txt 新文件添加,记得别忘了引号

1.8 Committing All Changes

好了,如今已经添加了全部的文件到暂存区。先运行“ git status ”去查看将要提交什么文件吧!

若是一切OK, 继续下去

1.9 History

咱们如今已经提交了几回了,如今让我浏览一下看看有哪些改变

幸运的是咱们还有Git 日志,把Git 日志看做是一份期刊,它会记录到目前为止,咱们作出的全部已经提交的改变

1.10 Remote Repositories

太棒了 !咱们已经先一步,建立了新的空 GitHub 资料库供您尝试Git 的使用,在 https://github.com/try-git/try_git.git 处

要将咱们本地的改变推送到 GitHub 服务器咱们须要添加一个远程仓库

此命令带有远端的名字和仓库的URL,你如今的地址是 *********

继续运行“ git remote add ”以及以下选项

1.11 Pushing Remotely

Push 命令告诉Git 当咱们准备好提交的时候咱们要推送到哪,让咱们把本地的改变推送到远程仓库中吧

咱们默认的本地分支名字叫 master ,-u 选项能够告诉Git 记住这个参数,以便下一次咱们能够简单地进行推送

1.12 Pulling Remotely

咱们先伪装已通过了一阵子,咱们邀请了其余人加入咱们的Github 项目,他们能够拉取你的更改,也能够提交他们本身的更改

咱们能够检查在Github 仓库的更改,拉取新的更改

1.13 Differences

看起来有一些内容已经添加进来了,咱们经过“ git diff ” 命令来查看和咱们最后一次提交有什么不一样

在这种状况下,咱们想要咱们最新的提交,咱们能够参考使用头指针的 diff

1.14 Staged Differences

Diff 的另外一个重要用途是查看早就在暂存区的文件的更改。记住,暂存的文件是咱们已经告诉 Git 那些是准备提交的文件

让咱们使用“ git add ”命令添加,我只是为你把它添加到 family 中

1.15 Staged Differences (cont'd)

太好了,如今去吧,运行git diff 带这 --staged 选项能够看到暂存的更改。您也应该看到 octodog.txt 被建立了。

1.16 Resetting the Stage

您能够经过使用 git reset 命令将文件置于 unstage 状态。继续并删除 octofamily/octodog.t

1.17 Undoxt

git reset 虽然重置了 octodog.txt 可是你会注意到它还在那里,他只是再也不暂存了,若是能够回档就很是棒了

文件能够改回他们在最后提交的状态,所使用的命令是:git checkout -- octocat.txt

1.18 Branching Out

当开发人员开发一种功能或者调试一个bug 时,他们一般会建立一个分支,他们能够分别提交这些分支的代码

等到完成以后将分支合并到主要的分支中

咱们想要删除全部的使人讨厌的 octocats ,咱们建立一个分支被称为 clean_up 

1.19 Switching Branches

若是你如今输入“ git branch ”命令能够看到两个本地分支,名为 master 的主要分支和新的分支 clean_up

你可使用 git checkout <branch> 命令来切换分支

1.20 Removing All The Things

你如今就在 clean_up 分支中了,你能够经过 git rm 命令来移除你不喜欢的 octocats

删除过程当中你能够再次使用通配符

1.21 Commiting Branch Changes

如今你已经删除了全部的 octocats 须要提交你的更改

运行 git status 来检查你要提交的更改吧

1.22 Switching Back to master

你能够复制 clean_up 的分支到 master 分支

1.23 Preparing to Merge

好的,你必须将 clean_up 分支中的更改合并到 master 分支

咱们准备进入主分支,因此咱们只须要告诉Git 将 clean_up 分支合并到这

1.24 Keeping Things Clean

祝贺你!你刚刚完成你的第一次修正和合并,完成以后就再也不须要 clean_up 分支能够清理了

你可使用 git branch -d <branch name>  命令来删除一个分支

1.25 The Final Push

这是最后一步了,到如今为止我真的为你骄傲,你很好的学习了Git 

剩下的就是把一切都推送到远程仓库中!