- git命令(终端输入)
- MrBin:~ zhangbin$ cd /Users/zhangbin/Desktop/今天的任务/ZBBDJ
- MrBin:ZBBDJ zhangbin$ git init
- MrBin:ZBBDJ zhangbin$ git add . --all
- MrBin:ZBBDJ zhangbin$ git commit -m "哈哈"
- 然后打开xcode修改某处内容,再选择Source Control-->Commit.
- 在弹框界面的左侧-->选择对号对应的行-->然后就可以看到修改的内容-->点击右下角的Commit 2 Files
- 另外如果提示下面的内容,按照下图操作
- 对上述命令的解释:
- git init执行后,项目文件中就会出现.git
常见错误
- 执行git add .时候出现如下错误
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
- 错误原因: 本地版本库(.git)没有增加新内容,就是说从服务器上下载下来的文件夹,你并没有在这个文件夹添加任何内容
- 解决办法:向从服务器上下载下来的文件夹里面添加文件即可。添加的文件不能为空文件,否则还提示这个错误
- 注意:如果本地版本库中之前有文件,你现在把这个文件删除了,执行git add .不会出现上述错误,因为这个和上面有本质区别
必须知道+精华
如果需要用git add命令,一定用git add .命令,不要用git add main.m ,用后面的命令可能会出错,用前面的命令一定不会出错
共享版本库 = 远程仓库 = 服务器
tag = 打标签 = 备份
右键删除本地版本库(.git)中的文件,如果这个个文件之前已经在本地版本库的分支的管理之下,一定要记得执行 git add . 以及git commit -m "删除了某个文件",如果不执行,分支中就不会知道你删除了这个文件,所以你得发命令告诉分支,:"这个文件被删除了啊,你记录一下"
命令行的git add . 就是Xcode中文件后面的 “M” 标记或”“A”标记
命令行的 git commit -m "XXXXX" 就是XCode中Source control里面的Commit
因为命令行中你没有执行git add . ,就无法成功执行git commit -m "XXXXX" 就是XCode中的Commit
所以Xcode中的没有M或者A,就无法执行Commit命令行的git push 就是Xcode中Source control里面的push
因为命令行执行git push,就会把在本地版本库分支中的文件上传到github网站上
同样xcode中执行push,就会把在本地版本库分支中的文件上传到github网站上Xcode中的文件后面的“?标记,表明该文件没有在本地版本库(.git)的管理之下,需要修改该文件使之变为"M"标记或者“A”标记
等价于向本地版本库(.git)里面复制了一个新的文件,但是并没有执行 git add .操作重点:之前已有的xcode项目拖到本地版本库必须执行git add .
在本地版本库新建的xcode不需要执行git add .
不要问为什么,就是这么规定的,因为底层在创建xcode项目,默认已经执行了git add .仅仅add,如果没有commit,即使push成功,服务器也收不到你add的内容,必须add->commit->push,这是固定顺序,少了哪个,服务器都收不到add的内容【已验证】
放在了本地版本库的暂缓区的文件,如果没有commit,是不会添加到本地版本库的分支中,那就更不可能添加的共享版本库中(远程仓库)了。因为底层是这个层级关系,不可跳级:
本地版本库的暂缓区的文件->本地版本库的分支->远程仓库
bare的值为 false表示为本地版本库,为true表示为共享版本库
xcode7.0之后不能识别文件夹里面的内容
通过命令行的方式,将服务器的内容下载到本地。发现需要xcode,之前我改了xcode的文件名,所以提示需要我安装xcode才能到本地。说明,服务器的文件内容本很就是通过在xcode中修改,再push到共享版本库,缓存区的东西不能直接push到共享版本库
分支在本地,本地版本库,共享版本库都有,所以都得删除掉(必须依次删除掉,注意)
A文件和M文件 都是放在了暂缓区 ,而缓存区里的东西,先添加到commit到本地版本库
命令行的git push,就是Xcode中Source control里面的push
-
命令行的git push
- Xcode中Source control里面的push
利用git查看这个项目比上一个项目多了具体什么内容
- 就是Source中的History
git命令大解析
1. 切换到自己文件夹中用来作为仓库
cd /Users/zhangbin/Desktop/study
2. 在study文件夹中初始化一个git仓库
(可以看到.git这个隐藏文件里面有很多文件)
(git所管理的范围是:和.git文件同级的目录+ .git文件的子目录)
git init
3.给当前的git仓库创建一个本地的用户名和邮箱
(查看本地的用户名和邮箱:选择.git隐藏文件打开,找到config右键打开)
git config user.name "zb"
git config user.email "zb@163.com"
4.配置全局的用户和邮箱
(查看全局的用户名和邮箱:Mac上方->前往->个人->.gitconfig,然后右键打开)
(目的:优先使用本地的用户名和邮箱,如果本地没有用户名和邮箱,就使用用这个全局的用户名和邮箱)
(本地的用户名和邮箱、全局的用户名和邮箱可以不一样,看自己的需求了)
git config --global user.name "zb"
git config --global user.email "zb@163.com"
5.项目经理初始化项目(例如main.m文件)
5.1 创建main.m文件
touch main.m
// 5.2和5.3步骤不可互换位置,如果先执行了5.3,系统提示你必须先执行5.2,把文件add到暂缓区中
5.2 将main.m添加到本地版本库(.git文件)的暂缓区中(main.m的文件状态由红色变为绿色)
(暂缓区就是stage)
git add main.m
或者git add . 把不在暂缓区中的所有文件添加到暂缓区
5.3 将暂缓区的所有内容(main.m)提交到本地版本库中HEAD指针指向的分支
(分支就是master)
(本地版本库就是 .git文件.本地版本库包括暂缓区+分支,也就是.git文件包括暂缓区+分支)
git commit -m "初始化项目"
6. 查看git所管理的范围中的文件状态
(文件为红色:该文件仅仅存在和.git同级的目录中,不在.git目录里面的暂缓区, )
(绿色为绿色:该文件不仅存在和和.git同级的目录中,也在在.git目录里面的暂缓区中,但是该文件没有提交到本地代码仓库)
(如果该文件已经在暂缓区了,这时候你修改了该文件,查看文件状态,该文件又会变成红色.所以还得依次5.2和5.3步骤)
git status
7. 给git的命令起别名(格式 alias.xxxxxxx)
(例如给status命令起别名)
(例如给commit命令其别名)
(查看给本地的git起别名的存储路径:选择.git隐藏文件打开,找到config右键打开)
(查看给全局的git起别名的存储路径:Mac上方->前往->个人->.gitconfig,然后右键打开)
//以后既可以通过git status查看状态,也可以通过git zhuangtai查看状态
git config alias.zhuangtai "status"
//以后既可以通过git commit -m " "提交文件,也通过git tijiao来提交文件
git config alias.tijiao "commit -m"
// 给git的命令起一个全局的别名
git config --global alias.tijiao "status"
8. 删除文件
(删除文件注意点:删除main.m文件,这个main.m文件之前必须执行了5.3操作,
也就是main.m必须提交到了本地版本库的分支中,否则删除不了main.m文件)
(你动脑子想一想:你得让main.m在本地版本库.git中啊,不然.git里面根本就没有main.m 你让它删除一个它里面根本就没有的文件,你觉得可能吗)
(即使删除了,该文件仍然存在本地版本库的分支中,所以必须把删除文件的操作提交到本地版本库分支,这样分支就会把里面的main.m真正的删除了))
git rm main.m
9. 查看版本号(内容包括:用户名+邮箱+提交时间+提交时写的注释+40位的版本号)
(多人开发时,例如甲乙把本地版本库中的代码分别提交到同一个共享版本库中,如果甲乙的版本号一样
共享版本库就不知道用哪个了,所以版本号不能一样,因此用了sha1算法生成的40位哈希值作为版本号,保证每次提交的版本号都不重复)
git log
// 可以查看版本回退的所有记录
git reflog
10. 版本回退
git reset --hard HEAD :回退到当前版本
git reset --hard HEAD^ :回退到上一个版本
git reset --hard HEAD^^ :回退到上上个版本
git reset --hard HEAD~100 :会退到前100个版本
git reset --hard HEAD 版本号(至少前五位):回退到指定的一个版本
11.如果想将回退的操作提交到服务器,在10的基础上,再执行如下命令
git push --force
这样之前的版本在服务器中就不存在了
参考链接:https://segmentfault.com/q/1010000000115900
利用版本回退来实现删除GitHub上之前的commit
- git reset --hard HEAD命令
- git reset --hard commit_id命令
git的工作原理(呕心沥血)
版本回退,耗费两小时,只为以后一看就懂
共享版本库(4种方法,选其中一个)
- 方法1:自己搭建git的服务器,作为共享版本库.
- 方法2:U盘作为共享版本库.
- 方法3:自己创建的文件夹作为共享版本库.
- 方法4:托管到GitHub或者OSChina上.
方法3:自己创建的文件夹作为共享版本库
1. 切换到自己创建的Server文件夹中用来作为共享版本库
cd /Users/zhangbin/Desktop/Server
2. 初始化了一个空的本地共享版本库(没有.git文件哦)
git init --bare
3. 项目经理将Server上的共享版本库下载到自己的Manager文件夹中
3.1 项目经理先切换到自己的Manager文件夹
cd /Users/zhangbin/Desktop/Manager
3.2 项目经理将Server上的共享版本库下载到自己的Manager文件夹中
(下载到自己的Manager文件夹之后,这个文件夹里面就多一个Server文件夹)
(在多出的Server文件夹里面,有一个.git文件夹.虽然共享版本库没有,但是只要下载了共享版本库,就默认有.git文件。系统底层自己加上的,我们不要深究)
(多出的这个.git就是本地版本库。注意.git只有本地版本库才有)
git clone /Users/zhangbin/Desktop/Server
4. 创建忽略文件.gitignore
(忽略文件一定要放在Server文件夹中哦,即和.git同级的目录)
(.gitignore文件的名字不能用别的,规定)
所以先切换目录
cd /Users/zhangbin/Desktop/Manager/Server
再创建忽略文件
touch .gitignore
4.1.忽略文件的内容去github上搜索
(在github上搜索gitignore,找到github/gitignore项目
在项目里找到Objective-C.gitignore文件并单击单开该文件,复制里面的内容,然后把复制的内容粘贴到到4创建出来的.gitignore文件中)
4.2. 把.gitignore这个忽略文件添加到本地版本库(.git文件)的暂缓区中
(最好使用git add . 这样.DS_Store也会被添加的哦啊暂缓区中)
git add .gitignore
4.3 将暂缓区的.gitignore提交到本地版本库中HEAD指针指向的分支中
git commit -m "添加了忽略文件"
5.在Manager的Server文件夹下创建xcode项目
(创建xocode项目,不要勾选.git文件哦,因为Mangager的Server文件夹下已经有.git文件了。所以你想勾选也没法勾选啊)
6.把Xcode项目Commit到本地版本库,push到共享版本库
Xcode-->Source Control-->Commit-->写上注释--勾选左下角的Push和右下角的Commit即可将,XCode项目push到共享版本库。别人下载在共享版本库时就可以看到里面有你刚才push的Xcode了。
7. Staff员工验证Xcode文件是否push到了共享版本库
7.1 创建Staff文件夹
7.2 切换到Staff自己的目录
cd /Users/zhangbin/Desktop/Staff
7.3 下载共享版本库中的文件到Staff文件中
git clone /Users/zhangbin/Desktop/Server
7.4 验证成功,从共享版本库中下载的文件中有Xcode项目
方法3动态截图
方法3的注意点
注意1: xcode中进行版本回退做法:Source Control--> Discard All Changes
注意2: 经理在xcode项目中只要修改了文件,经理必须Commit到本地版本库,push到共享版本库,这样员工下载项目时候才会看到你修改的文件。
注意3: 在和.git同级的目录中创建了一个xcode项目(因为有.git,所以创建xcode不勾选.git),
创建出来这个xcode项目的类后面都为A,A就是Add的意思
就是Xcode项目已经在本地版本库(.git)的暂缓区了
所以我们要把项目添加到本地版本库的分支中时,只需要Commit即可
xcode的bug
- 甲利用xcode无法从共享版本库中pull项目到本地,
- 方法1:在终端执行git reset --hard才可以
- 方法2:删除掉甲之前的项目,然后在终端执行 git clone 共享版本库的地址
- 方法3:简单粗暴,卸载重装即可解决[我就是这么解决的]
在方法3的基础上实现版本备份(所以要备份,必须先执行方法3的步骤)
主要轮廓:
1. 1.0版本开发完毕,上传到AppStore,第1.0版本进行备份(打标签)
2. 将标签上传到共享版本库
3. 开始开发2.0版本
4. 发现1.0版本有bug,新建一个文件夹用来修复bug
5. 将服务器所有的内容下载到新建的文件夹中
6. 切换到1.0的标签
7. 创建分支并切换到该分支
8. 将该分支上传到共享版本库
9. 在分支中修复bug
10. 对修复完bug的版本,上传到AppStore,进行备份,并上传到共享版本库
11. 对2.0版本进行合并
12. 删除分支
详细:
1. 1.0版本开发完毕,上传到AppStore,第1.0版本进行备份(打标签)
1.1 在WeChat项目中增加两个NSLog的内容commit并commit到共享版本库,就表示是1.0版本开发完毕,模拟嘛.
(这个WeChat项目在Manager的Server文件夹下)
1.0版本的内容就是下面两行代码
NSLog(@"员工A开始开发1.0版本");
NSLog(@"开发1.0版本已经开发完毕");
1.2 通过终端中的命令打标签(在Manager的Server文件夹下打标签)
git tag -a WeChat1.0 -m "这个是微信1.0版本"
1.3 查看标签
git tag (结果为WeChat1.0)
1.4. 将标签上传到共享版本库的origin
git push origin WeChat1.0
2. 开始开发2.0版本
2.0版本的内容如下
NSLog(@"员工A开始开发1.0版本");
NSLog(@"开发1.0版本已经开发完毕");
NSLog(@"开始开发2.0版本");
3. 2.0版本还没有开发完成(也就没有打标签),这时经理发现1.0版本有bug,
经理就在自己的文件夹中新建一个文件夹用来修复bug.
不是之前Manager的Server文件夹下的WeChat哦.之前的WeChat千万不要动它,不要用它来修复bug。
3.1 经理在Manager文件夹下新建的用于修复bug的文件夹为 WeChat1.0FixBug
3.2 切换到用于修复bug的WeChat1.0FixBug目文件夹
cd /Users/zhangbin/Desktop/Manager/WeChat1.0FixBug
4. 将服务器(共享版本库)中所有的内容下载到新建的文件夹WeChat1.0FixBug中
git clone /Users/zhangbin/Desktop/Server
5. 将目录切换到WeChat1.0FixBug的Server目录中
cd /Users/zhangbin/Desktop/Manager/WeChat1.0FixBug/Server
6. 查看当前WeChat1.0FixBug目录标签
git tag (结果为WeChat1.0,所以克隆到WeChat1.0FixBug中的项目是1.0版的WeChat)
7. 打开WeChat1.0FixBug中的WeChat项目,里面有"开始开发2.0版本",但是这个内容并不是1.0版的内容
因为1.0版本打标签之后,才有"开始开发2.0版本"这个内容的哦
8. 切换到1.0的标签
git checkout WeChat1.0
9. 再次查看WeChat项目项目,发现"开始开发2.0版本"不见了
因为1.0版本的WeChat根本就没有"开始开发2.0版本"这个内容.
10. 创建分支并切换到该分支
git checkout -b WeChat1.1FixBug
10.1你怎么知道确实切换到了WeChat1.1FixBug了呢?
答:打开WeChat1.1FixBug文件中的项目->Source Control->下拉列表第二行有 Server WeChat1.1FixBug
因为之前的是Server Master分支,现在是 Server WeChat1.1FixBug,说明确实切换到了Server WeChat1.1FixBug分支
11. 将该分支上传到共享版本库(可做可不做)
因为步骤12不仅会将修复的bug上传到共享版本库,而且也会将bug所处的分支Server WeChat1.1FixBug上传到共享版本库
(底层的规定:只要执行push操作,分支和修改的内容都会被上传到共享版本库)
git push orign WeChat1.1FixBug
12. 在分支中修复bug
12.1在WeChat1.1FixBug文件的WeCHat项目中输入如下内容
下面的内容被存在了暂缓区中(因为该项目被修改了,在xcode中只要修改了文件,就等价于Add)
-(void)FixBug{
NSLog(@"修复了1.0bug的1.1版本");
}
12.2 将暂缓区中的文件commit到本地版本库,并push到共享版本库
Soucce Control ->Commit并Push
13. 对修复完bug的版本,上传到AppStore,进行备份,并上传到共享版本库
(标签和标签的名称不能一样,分支和分支的名称也不能一样,分支和标签的名称更不能一样,要保证唯一性)
13.1 对修复完bug的版本进行备份(打标签)
git tag -a WeChat1.1 -m "这是修复了1.0bug的1.0版本"
13.2 将标签上传到共享版本库
git push origin WeChat1.1
14. 对之前 正在开发2.0版本时出现bug的WeChat进行合并(2.0版本的内容就是步骤2中的内容.2.0之前并没有打标签哦,更没有上传app哦。)
14.1 打开之前的2.0版本
Manager->Server->WeChat->WeChat.xcodeproj
14.2 合并到Manager的本地版本库的分支中,不是暂缓区中哦,已经从暂缓区中添加到分支中了
Source Control->Pull->在下拉列表中选择origin/WeChat1.1FixBug->Pull
14.3 push到共享版本库的master分支中
Source Control-> Push ->在下拉列表中选择origin/master分支
15. 查看标签
git tag(结果: WeChat1.0 WeChat1.1 )
拓展:删除标签(不要删除哦) git tag -d WeChat1.1
16. 查看所有分支
git branch -r
(结果:
origin/HEAD -> origin/master
origin/WeChat1.1FixBug
origin/master )
17. 查看当前在哪一个分支
git branch
(结果
* WeChat1.1FixBug
master
)
18. 删除分支(必先切换到master分支)
18.1 切换到master分支
git checkout master
(可以发现WeChat1.1FixBug文件的WeCHat的Xcode项目由之前的 Server WeChat1.1FixBug分支 切换到了Server Master分支)
18.2 删除本地的分支
git branch -d WeChat1.1FixBug
18.3 删除本地版本库的分支
git branch -r -d origin/WeChat1.1FixBug
18.4 删除共享版本库的分支
git push origin --delete WeChat1.1FixBug
方法4:托管到GitHub上(HTTPS认证)
1.1.在GitHub上创建一个空壳项目,用于存储本地的项目,本地项目只有上传到这个空客项目中,这个空壳项目才有内容哦
https://github.com/new
2. 空壳项目的地址
https://github.com/zb553828497/WeChat
3.复制空壳项目地址界面中HTTPS后面的链接
https://github.com/zb553828497/WeChat.git
4. 将HTTPS后面的链接复制到XCode中
点击Xcode图标->Preferences->Accounts->左下角Add Repository
Address:为HTTPS后面的链接
Type:为Git
Authentication:为User Name and Password
User Name:为GitHub的账户
Password: 为GitHub的密码
5.将空壳项目的地址的内容下载到本地cangku文件夹
点击Xcode->Check Out->下拉并选中至最后一个(Item)WeChat->Next->指定下载到cangku文件夹并Download
6.在cangku/WeChat/ 文件夹下创建Xcode项目(xcode项目一定和.git同级哦)
7. 打开xcode,发现所有的类都变为了A,说明Xcode项目在本地版本库的暂缓区中,所以我们不需要Add操作
只需要Commit到本地版本库的分支,然后再Push到共享版本库(远程仓库,也就是空壳项目)
Source->Commit->添加注释、Push to remote、Commit xx Files
8. 在共享版本库(远程仓库,也就是空壳项目)中发现多了TecentWeChat项目,则托管成功
-
动态截图
对方法4的HTTPS认证认证的扩展:
- 方法4是在之前没有Xcode的项目时,把Xcode托管到GitHub的远程仓库上
- 如果之前本来就有Xcode项目,如何把Xcode托管到托管到GitHub的远程仓库上呢?
1. 将TecentWeiBo项目放在和.git同级的目录
2. 执行 git add .或者 git add 项目名,使项目添加到本地版本库的暂缓区中。
3. 打开TecentWeiBo项目,发现里面的类全部变为A
(如果不执行2,打开Animal,所有的类为?,问号说明项目没有添加到本地版本库的暂缓区中)
(执行了2,打开Animal,所有的类变为A,A就是Add,说明项目已经添加到本地版本库的暂缓区中)
4. 在Xcode执行Commit操作,使在本地版本库的暂缓区项目提交到本地版本库的分支中
5. 在xcode执行push操作,将本地版本库的分支中的项目提交到共享版本库(也就是远程仓库)中
6. 打开GitH上的共享版本库(远程仓库),发现增加TecentWeiBo项目
- 动态截图
方法4:托管到GitHub上(SSH认证)
1.在GitHub上创建一个空壳项目,用于存储本地的项目,本地项目只有上传到这个空客项目中,这个空壳项目才有内容哦
https://github.com/new
2.空壳项目的地址
https://github.com/zb553828497/xm
3. 在终端中切换到随便一个目录,例如hub
cd /Users/zhangbin/Desktop/Hub
3.在终端生成私钥和公钥
3.1 输入如下代码
ssh-keygen -t rsa -b 4096 -C "邮箱"
3.2 输入文件名作为私钥和公钥的文件名(两个如果,哪个都可以)
(如果输入了文件名,那么私钥和公钥存在于Hub目录.这里我们输入了文件名哦)
(如果不输入文件名,直接按Enter键跳过,那么私钥和公钥存在于 /Users/zhangbin/.ssh文件中,私钥id_rsa,公钥id_rsa.pub)
Enter file in which to save the key (/Users/zhangbin/.ssh/id_rsa)
3.3. 输入密码和确认密码(不输入也可以)
Enter passphrase (empty for no passphrase)||Enter same passphrase again:
4. 将生成的公钥添加到github 上
选中github账户的头像->Settings->SSH and CPG keys->NEW SSH key->Title随便写->将公钥添加到Key选项中—>Add SSH key
5. 将步骤2空壳项目中SSH选项后面的链接复制下来
git@github.com:zb553828497/xm.git
6. 将链接放到Xcode中认证
点击Xode图标->Preferences->Accounts->点击左下角+按钮->Add Respository
在Address后面输入复制的链接 https://github.com/zb553828497/xm
Type为Git
Authentication为 SSH Keys
Public Key:在GitHub文件中生成的公钥
Private Key:在GitHub文件中生成的私钥
Passphrase为空
点击Add之后,GitHub服务器中存储的公钥就会和Public Key的公钥对比,如果对比成功,则认证成功
因为选项中用户自己的Public Key一定对应的是自己的Private Key,所以服务器只需要认证两个公钥是否相等即可。
私钥只有用户自己知道,服务器看不了,只能通过比对公钥。
注意点:由于步骤3.2输入了私钥和公钥的文件名,所以四月和公钥存在于Hub目录中.
但是Public Key和Private Key选项去/Users/zhangbin/.ssh文件中找公钥和私钥.
因为我们没有将私钥、公钥放在.ssh文件中,所以系统找不到公钥和私钥会弹出如下截图
我们必须选择Generate来在.ssh文件中生成公钥,否则无法进行下一步.
然后我们必须得把Private Key改成Hub目录中的真正的私钥,点击Private Key后面的文件夹,来找到Hub中的私钥,此时Public Key也自动换成了真正的公钥
7. 校验证书,将.git仓库下载到本地,下载到哪里都行,这里放到我们创建的Hub文件中就行
选中Xcode中的Source Control->Check Out
最终会生成空壳项目文件夹(里面有.git和.gitignore和LICENSE)
8. 自己创建一个Xcode项目放到和.git同级的目录下
9.将xcode项目Commit、Push到GitHub上,可以看到Xcode项目添加到了空壳项目中
- 步骤6截图
- 动态截图
对方法4的SSH认证的扩展:
- 方法4是在之前没有Xcode的项目时,把Xcode托管到GitHub的远程仓库上
- 如果之前本来就有Xcode项目,如何把Xcode托管到托管到GitHub的远程仓库上呢?
做法:
1. 将Animal项目放在和.git同级的目录
2. 执行 git add .或者 git add 项目名,使项目添加到本地版本库的暂缓区中。
3. 打开Animal项目,发现里面的类全部变为A
(如果不执行2,打开Animal,所有的类为?,问号说明项目没有添加到本地版本库的暂缓区中)
(执行了2,打开Animal,所有的类变为A,A就是Add,说明项目已经添加到本地版本库的暂缓区中)
4. 在Xcode执行Commit操作,使在本地版本库的暂缓区项目提交到本地版本库的分支中
5. 在xcode执行push操作,将本地版本库的分支中的项目提交到共享版本库(也就是远程仓库)中
6. 打开GitH上的共享版本库(远程仓库),发现增加了Animal项目