1.1 .花15分钟学习一下git
Git是一个分布式版本控制系统,它允许多人同时操作同一个文件并且相互之间并不影响。
我们的终端指令现在在一个名叫“octobox”的目录下。要在这里初始化Git仓库,输入下面的命令:
(点击git init,会在控制台输入相应的命令,输入问结果如图,返回success则表示命令运行成功)
1.2查看状态
很棒!Git告诉我们,现在在目录”octobox“下的/.git/.创建了一个空的仓库.这是一个Git操作的隐藏的目录。
通过学习这个旅程你将将你的进度进行保存--当你结束学习后将获得一个勋章--访问网站create a free Code School account.( https://www.codeschool.com/users/sign_in)。我们在那里等你。
接下来,运行命令git stataus查看我们的工程目前的状态:
(所有的步骤都是点击上方灰色背景蓝色字体的按钮后命令自动生成,然后按enter键自动执行)
1.3增加&提交
我为你在octobox仓库里创建了一个octocat.txt文件,(你可以在浏览器的下方看到)
再次执行命令git status查看仓库状态的改变
1.4添加改变
很好,看起来我们的Git一切正常。Git说octocat.txt没有追踪是什么意思呢?意思是Git认为octocat.txt是一个新的文件。
告诉git开始追踪文件octocat.txt的变化,我们首先需要通过命令git add将该文件添加到暂存区。
git add octocat.txt
1.5检出改变
做的好!现在git已经开始追踪我们的文件octocat.txt了。现在通过再次运行命令git status查看我们目前在什么地方
1.6提交
Git所说的提交改变是什么意思?这里列出的文件是在暂存区,现在还不在远程仓库里。在我们将该文件保存到远程仓库之前,我们可以从远程仓库添加或者移除文件。
通过运行一个有描述信息的命令commit来保存状态的改变。输入下面的命令:
git commit -m "Add cute octocat story"
(-m表示message,后面双引号中的内容为描述信息)
1.7添加所有的改变
很棒!如果你想添加许多同类型的文件你也可以使用通配符。你应该注意到我已经在你所处的目录下添加了许多.txt文件。
我在文件夹octofamily中放了一些文件在octobox的根目录中也放了一些文件。幸运的是,我们可以通过通配符git add将所有的这些文件进行添加。不要忘记单引号!
1.8提交所有的改变
好了,你已经将所有的text文件添加到了暂存区。你可以随便运行命令git status来查看你所提交的内容。
看起来一切正常,现在继续:
git commit -m 'Add all the octocat txt files'
1.9.历史
到现在为止我们已经做了几次提交。现在让我们看一下我们都做了哪些改动。
幸运的是,我们可以使用命令git log。Git的日志就像一个日记,将到目前为止我们所做的提交按提交顺序记录了下来。现在运行一下这个命令:
git log
1.10远程仓库
非常好!我们将继续从https://github.com/try-git/try_git.git
.创建一个空的GitHub仓库。为了将本地repo推送到GitHub服务端推,我们需要添加一个远程的仓库。
这个命令需要一个远程仓库的名称和URL.这个例子中URL用的是https://github.com/try-git/try_git.git
.
继续运行命令git remote add:
git remote add origin https://github.com/try-git/try_git.git
1.11推送到远程
push命令告诉git我们将提交到哪里并且已经准备好提交了。那么让我们将我们本地的改变提交到我们的origin repo(在GitHub上)
远程的名字是origin,默认的本地分支是master。-u告诉git记住这个参数,这样我们可以简单地运行命令git push,Git就知道该如何做。现在继续运行命令并推送!
git push -u origin master
1.12、拉取远程
让我们假设过了一段时间。我们邀请了其他人参与到我们的GitHub项目中,他们拉取了你提交了的改变的代码,并且他们自己也提交、推送了他们自己的代码。
我们可以在自己的GitHub仓库中检出这些改变并通过下面的命令拉取任何新改变的文件:
git pull origin master
1.13不同
啊噢,看起来octocat家族的文件有些增加和改变。让我们通过git diff命令来查看与我们最近一次提交的文件的不同。
假如我们想看与最近一次提交的差异,我们可以用HEAD头
git diff HEAD
1.14暂存区的不同
diff命令的另一个用处是查看暂存区的文件的改变。记住,暂存区的文件是告诉git已经准备好要提交的文件。
让我们通过git add命令向暂存区添加文件octofamily/octodog.txt,又向家族中添加了新的成员。
git add octofamily/octodog.txt
1.15暂存区的不同
很好,现在运行以--staged为参数的git diff命令来查看暂存区中的文件的改变。你可以看到新建了文件octodog.txt。
1.16重置缓存文件
现在文件octodog已经是家族中的一员了,octocat已经不受欢迎了。由于我们更加喜欢octocat而不是octdog,我们要将文件octodog.txt移除。
你可以通过git reset命令来取消暂存文件。现在继续运行移除文件octofamily/octodog.txt
git reset octofamily/octodog.txt
1.17恢复
git reset命令的确移除了暂存文件octodog.txt,但是你会发现这个文件还存在。它只是不暂存了。如果你可以回过头去看一下之前octodog是如果过来并毁掉了派对就好了。
通过命令git checkout --
git checkout -- octocat.txt
1.18创建分支
当开发人员专注于一个功能或者是bug时他们可能会拷贝一份可以单独提交的代码。然后可以将分支合并到主分支master分支上。
我们想要移除所有讨厌的octocats,让我们先创建一个处理我们所有工作的叫clean_up的分支。
git branch clean_up
1.19切换分支
很棒!现在输入命令git branch你可以看到两个本地分支:一个主分支master和你新建的分支clean_up。
你可以通过命令git checkout
git checkout clean_up
1.20移除所有
好了,现在你已经在clean_up分支了。你可以通过git rm命令来移除所有讨厌的octocats,这个命令不仅将文件移除并且会从暂存区移除。
你现在很可能想再一次使用通配符扫描一下来查看所有的octocats文件,继续运行:
1.21提交分支的改变
既然你已经移除了所以的cats,现在你需要将改变提交。
你可以随便运行命令git status来查看你所提交的改变。
1.22.切换到master分支
很好,你现在已经删除掉了cata...嗯,解决了bug,你需要切换回到master分支,这样你可以复制(合并)在clean_up分支上修改的内容到master分支。
继续运行并检出master分支:
git checkout master
1.23 准备合并
好了,现在到了将在clean_up分支的改变合并到master分支的时刻了。深呼吸,这并不恐怖。
我们现在在master分支,所以我们只需要告诉Git将其与clean_up分支进行合并:
git merge clean_up
1.24保持干净
祝贺!你刚刚完成了首次的bug修改和合并。现在所要做的是清除。由于已经将clean_up分支合并,你并不再需要该分支了。
你可以通过命令git branch -d
git branch -d clean_up
1.25 最终提交
现在我们到了最后一步。我很骄傲你可以走这么远,和你一起学习Git也很棒。你现在所要做的是将刚才对远程仓库的所有修改进行提交,现在结束了!
git push
很棒,你现在浅尝了一下Git的好处。你可以在结束页查看关于Git和GitHub更多的信息,噢,当然还有的勋章!
原文地址:https://try.github.io/levels/1/challenges/1