第二章-第二题(练习使用git的add/commit/push/pull/fetch/clone等基本命令)--梁绍楠
题目描述:
每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别。
使用步骤:
(1)创建版本库
选择一个合适的地方,创建一个空目录HelloWorld。而后通过git init把这个目录变成Git可以管理的仓库(目录下会多出了一个.git目录,该目录是git跟踪管理版本库的,勿轻易修改):
编辑hello文件,内容如下:
(2)将文件hello放到git仓库
首先,需要设置用户名、邮箱信息:
而后,便可将文件hello放到git仓库,分两部进行:
第一步,使用git add告诉git,把文件添加到仓库(可用git status查看提交状态):
第二步,使用git commit告诉git,把文件提交到仓库(git commit命令中,-m后面输入本次提交说明,为之后从历史记录中方便地找到改动记录):
可用git log查看提交记录,其中commit id为版本号,可以通过 git reset –hard commit id实现版本回退:
(3)在github上建立远程仓库并添加SSH KEY
1、创建SSH KEY。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell,创建SSH Key:
2、在github上添加SSH KEY
3、新建远程仓库
(4)将本地仓库添加到远程库
在本地的HelloWorld仓库下运行(远程库的名字一般为origin):
而后,便能将本地库的内容推到远程库上:
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告(这个警告只会出现一次,后面的操作就不会有任何警告了):
这时候查看github上对应的仓库,发现已经同步:
(5)git pull/fetch/clone 的使用
1、git pull
在协同开发时,为了保证团队开发的统一,当某人对代码进行修改并push到远程库之后,可通过命令git pull origin master取回远程主机某个分支的更新,再与本地的制定分支合并。(相当于合并了fetch和merge)为了简便,现在github的远程仓库下新建一个新的文件pulltest:
而后在本地pull下来:
2、git clone
即从远程主机上克隆一个版本库。
$ git clone <版本库的网址> <本地目录名>
即可在本地新建一个目录,
clone
本实验中的
HellloWorld
项目:
3、git fetch
一旦远程主机的版本库有了更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令。
$ git fetch <远程主机名>
上面命令将某个远程主机的更新,全部取回本地。
git fetch命令通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响。
为了简便,现在github的远程仓库下新建一个新的文件pulltest:
而后,在本地fetch下来:
可以通过merge进行合并: