第二章作业第二题——刘祉成
问:每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别。
答:
GitHub练习心得
(1)准备阶段
在GitHub个人主页新建一个远程仓库,命名为“Abe_HelloWorld”,
然后在本机桌面新建“HelloWorld”文件夹,并在其中建立“Abe_HelloWorld.java”文件。内容如图:
安装Git,打开Git Bash,首先设置自己的用户名和邮箱
然后用git init命令将HelloWorld文件夹变成本地仓库
然后生成SSH KEY,在用户文档的.ssh文件夹下找到地址,复制,进入GitHub个人主页的Setting界面,点击SSH选项,将复制的内容填入地址栏
(2)add, commit, push
首先将Abe_HelloWorld.java添加到暂存区,然后提交到本地仓库
之后,建立本地仓库与远程仓库的联系,然后将本地仓库的.java文件上传到远程仓库
尴尬的事情发生了,push失败,不过别着急,错误的原因是本地仓库并没用pull到最新的远程仓库,也就是远程仓库的的最新文件没有更新到本地仓库,这时只要pull一下再push就好了
这样,远程仓库里就有了这个.java文件了
(3)pull, fetch, clone
上一步骤是将本地上传至网络,这一步骤则是于从网络下载到本地有关。这里主要说一下这三个命令的区别。
clone:就是将远程仓库的文件拷贝到本地仓库并不会考虑冲突和重复性;
这时候在本地仓库已经可以看到远程仓库的文件夹
fetch:查看远程仓库的内容,并不会同步;
先修改本地仓库的.java文件
然后fetch后比较不同
可以看到不同之处被标绿
pull:将远程仓库的内容同步到本地仓库,但是当出现同名文件且文件内容不一致时pull会停止,系统会要求删掉本地内容才能同步。
这时虽然显示pull进行成功,但是本地仓库并没有被修改,因为远程仓库没有被修改,这时需要使用checkout命令
如果将远程仓库的文件修改
这时再进行pull操作,会发现本地仓库已经被修改
(4)Tips:push前一定先pull一下,这应该是一个好习惯。