Git练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Git练习题
说明:
本文使用了不同的字体来表示不同类型的文字:
输出:output
输入:input
替换:replaced
一些特殊的符号:
$ 表示shell提示符
[text] 表示文字“text”是可选的,你可以输也可以不输
一些典型的例子:
$ git --version
git version 1.7.1
$ echo Insert your text [here]
Insert your text here
访问练习git库的方法:
服务器: (192.168.9.142)
用户:exercise
密码:123456
注:git使用密码访问没有问题,但是使用repo sync下载代码时会要求输入很多次密码,因为每个git库都会要求输入密码。这里我们提供一个简单的方法(在你的机器上操作):1、建立一个新用户(比如叫test)
$ sudo useradd -m test
2、切换到该用户
$ sudo su - test
3、把服务器上的exercise用户目录下的.ssh目录拷贝过来
$ scp -r exercise@192.168.9.142:.ssh .
4、测试连接服务器是否不需要密码了
$ ssh exercise@192.168.9.142
如何不需要密码就可以连接上服务器就说明配置已经成功了,你在做下面的练习的时候就不需要输密码了。
练习1:
在你的本机配置git和repo
在这个练习中,我们将在你的本机上配置git和repo环境。包括具体的用户设置(.gitconfig 文件)和gerrit的设置。我们也会下载练习的git库。
步骤1:在~/.gitconfig文件中设置用户名和邮件地址。
1、打开一个终端,运行下面的命令(你可能需要替换一些变量为你希望的值,下同):
$ git config --global "FirstName Lastname"
$ git config --global user.email youremailaddress@
(eg: git config --global user.email scm@)
2、配置你的默认编辑器(设置为vim)
$git config --global core.editor vim
你也可以设置为其他你喜欢的编辑器,emacs或nano
3、配置git的颜色
$ git config --global color.ui auto
3、检查你的设置
$ cat ~/.gitconfig
你应该看到类似下面的内容:
[user]
name = Firstname Lastname
email = youremailaddress@
[color]
ui = auto
[core]
editor = vim
步骤2:使用repo下载git库。
1、创建一个exercises的目录:
$ mkdir ~/exercises
2、进入~/exercises目录
3、用repo下载练习git库:
$ repo init –u exercise@:manifest.git
$ repo sync
用ls命令查看是否把所有的库都下载下来了(可以和.repo/manifest.xml文件中的project项
对比)。
4、用repo start命令将所有git库切换到正确的分支上:
$ repo start test --all
5、检查分支是否切换正确:
$ repo branches
* test | in all projects
练习2:
在这个练习中,我们主要关注如何恢复(reset)你的工作目录(working directory)和索引(index)。这在出问题后我们想重新开始的时候是很有用的。我们将实践增加和删除文件。
在做练习之前,需要对git库做一些准备工作,请进入scripts目录执行exercises.sh脚本。
练习2a
创建一个新文件并暂存到index中。同时从index中取消暂存。
1、进入代码目录,例如~/exercises/exercise-2a/
2、用编辑器创建一个新文件,保存成newfile.txt
3、用git status命令查看状态。你的文件现在在上图中的哪个状态下?
4、现在运行git add newfile.txt
5、再运行git status命令查看状态。你的工作目录下发生了什么变化?这次你的文件在上图中的哪个状态下?
6、现在,我们尝试取消暂存状态。运行命令:
$ git reset -- newfile.txt
这次你的文件在上图中的哪个状态下?
提示:如果运行git reset后面不指定具体的文件,那么所有文件都会被取消暂存。
练习2b
如何恢复所有内容
1、进入~/exercisers/exercise-2b目录。这实际是另外一个git库。如果你运行命令git status,
2、你想取消所有的操作回到上次的提交(HEAD),这可以用命令git clean和git reset –-hard来实现。第一个命令是用来清除所有的编译结果(新生成的)文件的,并且它只会影响这些文件。
3、现在我们运行git clean -f来清除编译结果文件。
4、检查哪些文件被清除了。
5、现在恢复其他的修改到HEAD。
$ git reset –-hard HEAD
6、运行git status检查一下,看看和上表相比它影响了哪些文件?是所有文件吗?
练习3:
在这个练习中,我们会查看git库的历史信息,比较工作目录,index和分支。
步骤1:用git log检查提交日志。
1、进入目录~/exercises/exercise-3
2、运行命令git log查看git库的历史信息
$ git log
3、运行命令git branch查看所有的本地分支,分支名前面有*的表示当前分支。在这个
列表中你还可以看到其他的一些分支,现在我们来看看分支feature的历史:
$ git log feature
4、查看指定文件或目录的历史也是可以的,可以用下面的命令:
$ git log –- file
步骤2:使用git diff来显示提交和提交之间、提交和工作目录之间的修改。
1、进入~/exercises/exercise-3目录
2、修改任意一个文件
3、用命令git diff显示你的工作目录和index中的区别: