Git练习题
Git测验题
Git测验题
Git测验(A卷)
在深圳做Git培训和项目管理软件实施,这是一份Git培训的测验题,通过率不高。因为不合格的还要重考,答案就不公布了。
单项选择题
1.如果提示提交内容为空、不能提交,则最为合适的处理方式是:_____
a) 执行 git status 查看状态,再执行 git add 命令选择要提交的文件,然后提交。
b) 执行 git commit --allow-empty ,允许空提交。
c) 执行 git commit -a ,提交所有改动。
d) 执行 git commit --amend 进行修补提交。
2.如果把项目中文件 hello.c 的内容破坏了,如何使其还原至原始版本? _____
a) git reset -- hello.c
b) git checkout HEAD -- hello.c
c) git revert hello.c
d) git update hello.c
3.修改的文档meeting.doc 尚未提交,因为错误地执行了git reset --hard 导致数据丢失。丢失的数据能找回么? _____
a) 不能。执行硬重置使工作区文件被覆盖,导致数据丢失无法找回。
b) 能。可以通过 git checkout HEAD@{1} -- meeting.doc 找回。
c) 不确定。如果在重置前执行了 git add 命令将 meeting.doc 加入了暂存区,则可以在对象库中处于悬空状态的文件中找到。
d) 不能。因为未提交所以无法找回。
4.仅将工作区中修改的文件添加到暂存区(新增文件不添加),以备提交,用什么命令标记最快? _____
版本控制工具考试
版本控制工具考试
(答案见尾页)
一、选择题
1. 版本控制工具中,Git和SVN分别属于哪一类别?
A. 集中式版本控制系统
B. 分布式版本控制系统
C. 以上都不是
2. Git和SVN在项目管理中的主要区别是什么?
A. Git是分布式版本控制系统,而SVN是集中式版本控制系统。
B. Git使用SHA-1哈希算法进行文件校验和,而SVN使用MD5哈希算法。
C. Git支持多个开发者在同一仓库上并行工作,而SVN要求每个开发者独立工作。
D. Git将所有数据存储在本地仓库,而SVN将数据存储在中央服务器上。
3. 在Git中,以下哪个命令用于创建一个新的分支?
A. git checkout -b
B. git branch
C. git merge
D. git rebase
4. Git中,以下哪个命令用于将本地分支推送到远程仓库?
A. git push
B. git pull
C. git fetch
D. git merge
5. Git中,以下哪个命令用于撤销本地分支上的提交?
A. git revert
B. git cherry-pick
C. git reset
D. git restore
6. SVN中,以下哪个命令用于查看文件详细信息?
A. `svn log`
B. `svn info`
C. `svn diff`
D. `svn blame`
7. SVN中,以下哪个命令用于将修改的文件添加到版本库?
A. `svn add`
B. `svn commit`
C. `svn update`
D. `svn merge`
信息系统项目管理师练习题(含答案)
信息系统项目管理师练习题(含答案)
一、单选题(共100题,每题1分,共100分)
1、由 IEEE 管理,硬件制造者指定,任何两个网卡都不会相同的是 ()
A、软件地址
B、物理地址
C、逻辑地址
D、IP 地址
正确答案:B
2、区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构并以密码学方式保证的不可篡改和不可伪造的分布式账本。主要解决交易的信任和安全问题,最初是作为 ( ) 的底层技术出现的。
A、电子商务
B、证券交易
C、比特币
D、物联网
正确答案:C
3、以下关于外包和外包管理的叙述中,不正确的是 ()。
A、外包是为了专注发展企业的核心竞争力,将其它的职能都外包给具有成果和技术优势的第三方供应商(或业务流程外包商)
B、将以前内部自行管理的领域外包后,该领域的整体品质有可能会降低
C、从外包风险管理的角度考虑,应尽可能将项目外包给同一家供应商
D、需要根据合同的承诺跟踪承包商实际完成的情况和成果
正确答案:C
4、业务流程分析工具中,() 反映现有系统各部门的业务处理过程和它们之间的业务分工与联系,以及连接各部门的物流、信息流的传递和流动关系,体现现有系统的边界、环境、输入、输出、处理和数据存储等内容。
A、Petri网
B、UML 活动图
C、N-S 图
D、业务流程图
正确答案:D
5、配置项的状态有三种:草稿、正式发布和正在修改。以下叙述中,不
正确的是 ()
A、已发布的配置项通过了 CCB 的审批同意修改,此时其状态变为“正在修改”
B、配置项刚建立时状态为“草稿”,通过评审后,状态变为“正式发布”
Git版本控制使用技巧面试问答
Git版本控制使用技巧面试问答在进行Git版本控制的面试过程中,经常会涉及到一些技巧和常见问题。下面是一些常见的Git版本控制使用技巧面试问答,旨在帮助读者更好地准备面试。
问:什么是Git版本控制系统?
答:Git是一种分布式版本控制系统,用于跟踪文件的变化并协调多人在同一项目上的工作。它能够记录文件的每次修改,并允许用户在不同的分支上进行开发,最后将这些分支合并到一个主分支上。
问:如何创建一个新的Git仓库?
答:要创建一个新的Git仓库,可以使用命令`git init`在本地文件夹中初始化一个空的Git仓库,或使用`git clone`从远程仓库克隆一个已存在的仓库到本地。
问:如何将本地修改提交到远程仓库?
答:可以使用以下步骤将本地修改提交到远程仓库:
1. 使用`git add`命令添加要提交的文件到暂存区。
2. 使用`git commit -m "提交信息"`命令将文件从暂存区提交到本地仓库。
3. 使用`git push`命令将本地仓库的改动推送到远程仓库。
问:如何撤销对文件的修改?
答:可以使用以下命令撤销对文件的修改:
- `git checkout -- <filename>`:撤销对某个文件在工作区的修改。
- `git reset HEAD <filename>`:将已添加到暂存区的文件从暂存区移除。
问:如何在Git中切换分支?
答:可以使用以下命令在Git中切换分支:
- `git branch`:查看所有分支。
- `git branch <branchname>`:创建一个新的分支。
Git基础考试题
Git基础考试题
Git:
1.在windows上搭建git环境,成功后查看版本号
Linux安装
sudo apt-get install git -y
yum install git -y
windows直接安装exe
查看版本号:git version
2.git与svn的区别
(1)git是分布式的,svn是集中式的
(2)git把内容按元数据的⽅式存储,svn是按⽂件存储,git的内容完整性优于svn
(3)git和svn分⽀不同
(4)git没有⼀个全局的版本号,⽽svn有
(5)git不需要联⽹就可以使⽤,svn需要联⽹
3.在现有版本,完成⼀次版本提交的过程
git status
git add .
git diff
git commit -m "提交信息"
git push [remote-name]
4.还原刚刚提交的内容
(1)git log 查询刚才提交的commit id
(2)git reset --hard commitId
或 git checkout commitId
5.查看提交记录并截图
git log
6.⼀个⼤的需求从开发到上线,代码执⾏的过程
(1)需求开发阶段,创建主分⽀master/开发分⽀dev/和⼀些具体的功能分⽀,进⾏开发
(2)需求开发完合并代码阶段,将具体功能分⽀上的代码合并到开发分⽀dev上
(3)需求测试阶段,从dev分⽀上拿代码进⾏测试
(4)需求正式投产阶段,从dev分⽀上拉出⼀个release分⽀,⽤来发布⽣产代码,投产完成后,合并到master分⽀和dev分⽀上
(5)需求投产后bugfix阶段,需要从master分⽀上拉出bugfix分⽀,⽤于修改bug,修改后合并到master分⽀和dev分⽀上
Git练习题
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库。
信息系统项目管理师习题库(附参考答案)
信息系统项目管理师习题库(附参考答案)
一、单选题(共100题,每题1分,共100分)
1、Before a project schedule can be created,the schedule maker should have a(),an effort estimate for each task,and a resource list with availability for each resource
A、plan
B、software requirements specificatio
C、work breakdown structure
D、baseline
正确答案:C
2、()算法采用模拟生物进化的三个基本过程“繁殖(选择)→交叉(重组)→变异(突变)”。
A、蚁群
B、人工神经网络
C、遗传
D、粒子群
正确答案:C
3、在演示文稿中,插入超级链接时,所链接的目标不能是()。
A、某张幻灯片中的某个对象
B、其他应用程序的文档
C、另一个演示文稿
D、同一演示文稿的某一张幻灯片
正确答案:A
4、回收的问卷调查表中,很多表都有一些没有填写的项。处理缺失值的办法有多种,需要根据实际情况选择使用。对于一般性的缺值项,最常用的有效方法是()
A、将缺失的数值以该项己填诸值的平均值代替
B、删除含有缺失值的调查表
C、填入特殊标志,凡涉及该项的统计则排除这些项值
D、用某种统计模型的计算值来代替
正确答案:C
5、对高级语言源程序进行编译或翻译的过程可以分为多个阶段,解释方式不包含()阶段。
A、语义分析
B、词法分析
Git版本控制使用技巧面试题全收录
Git版本控制使用技巧面试题全收录Git是目前最流行的版本控制系统之一,它的强大功能和灵活性使其成为开发者必备的工具。在面试中,Git的使用技巧往往是被考查的内容之一。本文将全面收录一些常见的Git版本控制使用技巧面试题,并给出详细的回答。
1. 如何初始化一个Git仓库?
使用命令`git init`可以在当前文件夹中初始化一个Git仓库。此命令会在该文件夹中生成一个隐藏的.git文件夹,用于存储Git的版本控制信息。
2. 如何将代码提交到Git仓库?
首先,使用命令`git add <file>`将指定文件添加到暂存区。然后,使用命令`git commit -m "commit message"`将暂存区的文件提交到本地仓库。
3. 如何查看Git提交记录?
使用命令`git log`可以查看当前分支的提交记录。该命令会显示提交的哈希值、作者、日期、提交信息等信息。
4. 如何创建一个新的分支?
使用命令`git branch <branch_name>`可以创建一个新的分支。此命令会在当前提交的基础上创建一个指向该提交的新分支。
5. 如何切换到另一个分支?
使用命令`git checkout <branch_name>`可以切换到指定的分支。该
命令会切换到指定分支的最新提交。
6. 如何将一个分支合并到当前分支?
首先,切换到目标分支上,使用命令`git merge <branch_name>`将
指定分支合并到当前分支。Git会尝试自动合并修改,如果有冲突需要
GitLab面试题
GitLab面试题
1.什么是GitLab?
答案:GitLab是一个基于Git的开源版本控制系统,用于追踪和管理文件的变化。它提供了一个集成的开发环境,包括代码托管、版本控制、项目管理等功能。
2.GitLab有哪些主要特点?
答案:GitLab的主要特点包括:
分布式版本控制系统,与Subversion类似,但具有更多的功能和灵活性。
提供完整的开发环境,包括代码托管、版本控制、项目管理等功能。
可扩展性强,可以轻松地与外部工具集成。
提供强大的访问控制和权限管理功能。
支持多种分支管理策略。
3.GitLab的工作原理是什么?
答案:GitLab基于Git进行版本控制,每个开发者都有一个完整的代码仓库副本,可以在本地进行工作,无需依赖中央服务器。当提交时,GitLab会创建一个指向该快照的指针,并将该指针添加到版本历史中。GitLab使用分支来指向不同的提交,从而支持并行开发和特性隔离。
4.如何使用GitLab进行代码管理?
答案:使用GitLab进行代码管理需要以下步骤:
创建一个新的代码仓库或克隆一个现有的代码仓库。
在本地进行开发和测试。
将修改后的代码提交到本地Git仓库。
将代码推送到远程Git仓库。
通过Pull Request向团队成员提交更改。
由团队成员审查和合并Pull Request。
5.如何使用GitLab进行团队协作?
答案:使用GitLab进行团队协作需要以下步骤:创建一个新的项目或加入一个现有的项目。
在目中创建不同的分支以进行开发和特性隔离。通过Pull Request向团队成员提交更改。
git面试题选择填空
git面试题选择填空
以下是一些常见的 Git 面试题,以选择和填空的形式呈现:选择题:
1. Git 是什么?
A. 一种版本控制系统
B. 一种代码托管平台
C. 一种编程语言
D. 一种数据库管理系统
2. Git 的工作原理是什么?
A. 通过比较文件的差异来跟踪更改
B. 通过记录每个文件的哈希值来跟踪更改
C. 通过标记每个文件的修改时间来跟踪更改
D. 通过比较文件夹的大小来跟踪更改
3. Git 中的 HEAD 是什么?
A. 指向当前分支的指针
B. 指向最新提交的指针
C. 指向最新修改的指针
D. 指向整个仓库的指针
4. Git 中的 master 是什么?
A. 一个默认的分支名称
B. 一个特殊的提交标识符
C. 一个默认的远程仓库名称
D. 一个特殊的标签名称
5. 在 Git 中,如何将文件添加到暂存区?
A. git add .
B. git commit -m "message"
C. git checkout --file
D. git diff --cached
填空题:
1. 在 Git 中,使用 _______ 命令可以将文件添加到暂存区。
2. 在 Git 中,使用 _______ 命令可以提交暂存区的更改到仓库中。
3. 在 Git 中,使用 _______ 命令可以查看仓库的状态。
4. 在 Git 中,使用 _______ 命令可以创建新的分支。
Git的常见问题以及面试题汇总
Git的常见问题以及⾯试题汇总
本⽂链接:
说明新建⼀个的步骤,提供每个步骤的指令,并对指令进⾏说明。
答:Git branch name 创建名字为name的branch
Git checkout xxx_dev 切换到名字为xxx_dev的分⽀
Git pull 从远程分⽀拉取代码到本地分⽀
Git checkout -b main_furture_xxx 创建并切换到main_furture_xxx
Git push origin main_furture_xxx 执⾏推送的操作,完成本地分⽀向远程分⽀的同步
说明GIT合并的两种⽅法以及区别。
答:Git代码合并有两种:Git Merge 和 Git ReBase
Git Merge:这种合并⽅式是将两个分⽀的历史合并到⼀起,现在的分⽀不会被更改,它会⽐对双⽅不同的⽂件缓存下来,⽣成⼀个commit,去push。
Git ReBase:这种合并⽅法通常被称为“衍合”。他是提交修改历史,⽐对双⽅的commit,然后找出不同的去缓存,然后去push,修改commit历史。
如何查看⽂件的提交历史和分⽀的提交历史。
答:使⽤git log查看⽂件提交历史
Git log filename
使⽤git log查看分⽀提交历史
Git log branch file
我们在本地⼯程常会修改⼀些配置⽂件,这些⽂件不需要被提交,⽽我们⼜不想每次执⾏git status时都让这些⽂件显⽰出来,我们该如何操作?
答:在Git⼯作区的跟⽬录下创建⼀个特殊的.gitignore⽂件,然后把忽略的⽂件名编辑进去,Git就会⾃动忽略这些⽂件。
23年最新git面试题
1.什么是 Git?
Git 是一个版本控制系统,用于跟踪文件和目录的更改。它可以帮助团队协作开发项目,并记录项目的历史版本。
2.什么是 Git 的分支
Git 的分支是一种在一个项目中维护多个版本的方式。每个分支都有自己的提交历史和文件状态,可以独立于其他分支进行开发。分支可以帮助团队协作开发项目,并允许多人同时在项目中进行不同的更改。
在 Git 中,每个项目都有一个默认的主分支,通常被称为 "master"。开发人员可以在主分支上创建自己的分支,在其上进行开发。当开发工作完成后,可以将分支上的更改合并到主分支上。
分支还可以用来管理不同版本的项目,比如说发布版本,开发版本,等等。在分支上进行开发工作,然后合并到主分支上,这样就可以保证主分支上的代码始终是稳定的,而不影响开发的进度.
3.什么是 Git 的暂存区
Git 的暂存区,也叫缓存区或索引,是一个临时存储文件修改的地方。在 Git 中,文件的修改分为两个阶段:工作目录和暂存区。当您对文件进行修改时,它们会在工作目录中更改,但不会立即提交到版本库。
要将文件的修改提交到版本库,需要先将它们添加到暂存区。这可以通过使用git add 命令来完成。一旦文件被添加到暂存区,它们就可以被提交到本地版本库。提交的过程是通过 git commit 命令来完成的。
暂存区的好处是可以在提交之前多次对文件进行修改,并在每次修改后将文件重新添加到暂存区。这样可以确保每次提交都是完整的、符合需求的。暂存区还可以通过 git reset 命令来清除已经添加到暂存区但未提交的修改。
Git版本控制系统使用练习题参考答案
Git版本控制系统使用练习题参考答案
Git是一款常用的分布式版本控制系统,广泛应用于软件开发项目中。通过Git,开发者可以轻松地管理代码的版本、协同开发、撤销更改等操作。下面是一些Git版本控制系统使用练习题的参考答案,供大家参考使用。
练习题一:创建Git仓库并添加文件
1. 在本地创建一个文件夹,作为Git仓库的根目录。
2. 打开命令行工具,进入该文件夹。
3. 初始化Git仓库,使用以下命令:git init
4. 创建一个新文件,比如test.txt,并添加一些内容。
5. 将test.txt文件添加到Git的缓存区,使用以下命令:git add test.txt
6. 提交文件到本地Git仓库,使用以下命令:git commit -m "Initial commit"
练习题二:查看和比较版本差异
1. 查看Git仓库的提交历史,使用以下命令:git log
2. 比较两个版本之间的差异,使用以下命令:git diff 版本号1 版本号2
(版本号可以通过git log命令获取)
3. 查看具体文件的修改历史,使用以下命令:git log 文件名
练习题三:分支管理
1. 创建一个新的分支,使用以下命令:git branch 新分支名
2. 切换到新的分支,使用以下命令:git checkout 新分支名
3. 在新分支上进行开发,进行一些修改。
4. 将新分支合并到主分支,切换回主分支,使用以下命令:git merge 新分支名
练习题四:远程仓库管理
1. 创建一个新的远程仓库,比如使用GitHub。
2. 将本地仓库与远程仓库关联,使用以下命令:git remote add origin 远程仓库地址
git测验参考答案
git测验参考答案
Git测验参考答案
Git是目前最流行的分布式版本控制系统之一,它的使用广泛应用于软件开发领域。为了检验对Git的理解和掌握程度,许多公司在招聘过程中会进行Git测验。下面是一份Git测验参考答案,希望能够帮助大家更好地准备和应对Git测验。
一、选择题
1. Git是一种:
A. 集中式版本控制系统
B. 分布式版本控制系统
C. 并行式版本控制系统
D. 无版本控制系统
答案:B
2. Git的核心功能是:
A. 代码托管
B. 分支管理
C. 冲突解决
D. 代码合并
答案:B
3. Git的工作区、暂存区和版本库之间的关系是:
A. 工作区->版本库->暂存区
B. 工作区->暂存区->版本库
C. 版本库->工作区->暂存区
D. 暂存区->工作区->版本库
答案:B
4. Git中用于创建新分支的命令是:
A. git branch
B. git checkout
C. git merge
D. git clone
答案:A
5. Git中用于将分支合并到当前分支的命令是:
A. git branch
B. git checkout
C. git merge
D. git clone
答案:C
二、填空题
1. Git中用于提交代码的命令是:
答案:git commit
2. Git中用于查看提交历史的命令是:
答案:git log
3. Git中用于撤销最近一次提交的命令是:
答案:git revert
4. Git中用于将远程仓库克隆到本地的命令是:
答案:git clone
5. Git中用于将本地分支推送到远程仓库的命令是:
git 面试题
git 面试题
Git面试题
Git是一种分布式版本控制系统,被广泛应用于软件开发中。面试时,面试官可能会提出一些与Git相关的问题。下面是一些常见的Git
面试题,帮助你更好地应对面试。
1. 什么是Git?请简要介绍Git的基本概念。
Git是一种分布式版本控制系统,可以有效地管理和追踪文件的变更。它具有以下基本概念:
- 仓库(Repository):Git用来存储文件变更历史记录的地方。
- 提交(Commit):提交是将文件变更保存到仓库的操作。
- 分支(Branch):分支是仓库的一个独立副本,用于开发者在不
同的功能上进行独立的工作。
- 合并(Merge):将一个分支的变更合并到另一个分支的操作。
- 远程仓库(Remote Repository):远程仓库是存储在网络上的仓库,用于多人协作开发。
- 克隆(Clone):从远程仓库复制一个完整的仓库到本地。
2. 如何创建一个新的Git仓库?
要创建一个新的Git仓库,可以使用`git init`命令。在命令行中进入
要创建仓库的目录,然后运行该命令。Git会在目录中创建一个名为
`.git`的隐藏文件夹,作为仓库的存储空间。
3. 如何将修改的文件提交到Git仓库?
要将修改的文件提交到Git仓库,可以使用以下命令:
- `git add <file>`:将文件添加到暂存区。
- `git commit -m "message"`:将暂存区的文件提交到仓库,并添加
提交信息。
4. 如何查看Git提交记录?
可以使用`git log`命令查看Git的提交记录。该命令会显示每个提交
tryGit练习
tryGit练习
1.1用15分钟如何学习Git
Git能够让团队在同一时间同一文档下进行工作,不会踩到别人的脚趾,互不干扰。Git是一个分布式的版本控制系统我们下面的终端命令当前所在目录为我们称之“octobox”的目录。为了在这初始化一个Git仓库,输入以下命令:git init
1.2检查状态
很好!Git刚提示我们,我们的“octobox”目录下现在有了一个空仓库在/.git/。这个仓库是一个隐藏的目录,Git
在其中进行操作。当你通过这个指导,想要保存你的进度和想当你成功完成后想获得一枚徽章,那就去创建一个免费的Code School账号吧。我们会在这里等你。接下来,让我们输入git sataus 命令来看看我们的项目现在的状态是什么:
git status
1.3添加&提交
我在“octobox”仓库为你创建了一个命名为“octocat.txt”的文件。(你可以在浏览器下面看到)
你应该再次运行一次git status命令,看看仓库的状态有什么改变。
1.4添加改变
好滴,这看起来我们的Git仓库正在恰当地工作着。注意注意Git是如何说octocat.txt是“不露痕迹”?这意味着Git知道octocat.txt是一个新的文件。
1.5 检查改变
很好! Git现在可以跟踪octocat.txt文件啦。让我们再次运行一次git status 看看我们现在所处的地方:
git status
1.6 提交
注意Git是怎么描述改变被提交的?这里所列的这些文件现在在一个暂存区,然而它们还没有存在于我们的仓库。在我们将它们存放在仓库之前,我们可以从暂存区增加或者移除文件。为了存放我们的阶段性变化,我们可以运行commit命令并附上信息描述我们做了什么修改。现在让我们试一下,输入一下命令:
- 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中的区别: