我的一个git(码云)之旅
合作开发项目,你就会用到git,现在码云比较简单,因为是中文化界面,学习起来难度比较低,又支持5人以下项目免费,所以学习码云更好入手一点。
下面的东西适合一些个基础比较低的用户学习,因为我就是啊。。。我都配图啦,共勉。
(1)我现在要上手啦,新建了一个mayunDemo文件夹,切个图纪念纪念。
(2)我已经有注册码云了,注册是个前提工作,你去注册一个先。。。
网址给你:https://gitee.com
(3)你已经注册了一个码云账号啦!
点击右上角个人用户,你就进入了用户界面了,你需要一个SSH公钥,没有公钥就生成一个。
使用SSH公钥可以让你在你的电脑和码云通讯的时候使用安全连接(Git的Remote要使用SSH地址)。
(4)生成公钥,人家已经有提示啦,我只是给你截个图!
。。。仔细一想,算啦,截图都懒得给你截。
(5)因为我需要的问题,所以先交删除。。。
我的马云。。。码云,仓库,查看你的库存。。。然后当然是点开它咯!
点击管理,进入管理界面
按照流程提示,一步一步删除。。。难度系数不高,请自行实践。
删除仓库的时候,会反复提醒,反复验证,挺人性化的。
在这里先删为敬!
(6)现在要开始创建仓库了!你应该知道下面的操作,因为上面提到仓库了,你点击新建仓库就行了。
自己玩就建个私人的。
码云仓库会自带文件,关于使用性能优化的(哈哈,是我瞎猜的),额,
强烈建议你仔细看完这几行代码,设置了用户和邮箱,会为后面身份识别省很多事。
(7)找个文件夹下面,空白处右键,打开你的git(很像cmd小黑窗口)
纳尼?你没有。。。天啊
好吧,补了一篇git安装,自己点开看看。
(8)说句实话,我的实力已经不够了,正在参考资料
我们想修改仓库里的文件,是不是应该先下载那一份呢。。。
https://www.oschina.net/question/82993_133520
这个网址,是官网带的连接博客,名叫 “ 如何导入外部Git仓库到中国源代码托管平台(Git@OSC)”,
名字威武霸气,提供了3中情况下的导入方案。
我们实践第一种,其他的我也不会撒。
git clone --bare https://github.com/bartaz/impress.js.git (例子)
他说我克隆了一个空仓库,我丢~
于是乎,我把他提示的代码,就是几行简单的入门命令,输了一次。。。
好吧,错的东西即使翻译之后也不知道怎么该,尝试最后两行代码。。。
我往mayunDemo里面放了一个文件,然后我的编译器后面出现了一个绿色的u
除非你上传了改变,这个u才会消失,但是暂时只能这样。。。不甘呀。。。
(9)那就提交呗。。。查资料,怎么提交呢?
1 提交代码: 2 1) git add . 3 2)git commit -m "分支名" 4 3)git push (如果有代码冲突,先git pull 在git push)
我们直接打开还没有操作的库,所在的分支就是master,因为你git clone克隆的分支就是默认分支。
下面介绍以下git add
git add -A和 git add . git add -u在功能上看似很相近,但还是存在一点差别
git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)
git add -A :是上面两个功能的合集(git add --all的缩写)
(10)好了,更新库的绿帽子已经没有了!
这个黄点点是啥呢?
绿色,已经加入控制暂未提交
红色,未加入版本控制
蓝色,加入,已提交,有改动
白色,加入,已提交,无改动
灰色:版本控制已忽略文件。
这里显示我们已经提交上去了!而界面上呢,许多功能因为你的库的存在,可以使用了!
(11)早上好!又到了博客凑字数时间!
好了,我们进入昨天的文件,进去之后呢,直接就进入了master分支
我们查看分支git branch
(12)分支的意义
分支对于团队来说作用太大了。比如说一个项目现在是1.0版,那么开发团队可能要同时进行1.1版和2.0版的开发,这样代码就会出现较大分歧。这时候就需要用到分支了,不同的任务组在不同的分支上开发,互相之间不会影响。再比如说,需要向项目中添加一个新功能,一般的团队都不会直接在主分支上修改,都会新建一个分支,在上面更改代码。这样做的好处就是保证主线代码的完整性和可用性,也就是说,主线上都是稳定的代码,可以直接拿来发布的。
再说说分支在GIT上的特点:GIT的技术可以说是非常强大,说一切开发都依赖于分支一点都不过分。一般项目的master分支都是稳定的代码,可以直接发布或者被项目之外的人使用。新特性和BUG修改都在不同的分支上进行开发和测试。这样规范了整个软件的开发流程。分支之间的互不影响这种特性可以增加团队合作的效率。GIT分支的另外一个重要特性就是可以合并不同软件仓库(fork)的分支。大体就是:开发团队有一个主软件仓库,开发者可以fork这个仓库,相当于克隆了一个私有的软件仓库,然后开发者就可以在自己的软件仓库中建立分支并开发测试,测试完毕之后,可以向主软件仓库提交merge request,这样新开发的特性就会被合并到主软件仓库的某个分支中。这种特性极大地推动了开源项目,多年前参加开源项目都是神话,自从GIT出现后,每个人都可能成为开源项目的贡献者,就是基于这种特性(请参照Github的pull request,和merge request是同一个东西)。
(13)新建一个本地分支 : git branch 分支名
新建一个本地分支newDemo,然后查看,嗯啊,就有啦
(14)切换分支 : git checkout 分支名
切换本地分支newDemo,下面一行代码最后分支显示我们切换了分支。
Git checkout 分支名,执行后,你本地的数据,,目录结构,都会自动更新成该成员的分支的内容我又新建了一个分支,修改了其中一条,但是呢,如果添加了一个文件,没有add的话,git会不动
(16)合并分支。。。:git merge 分支名
合并之后,newDemo2还在。
(17)删掉他!。。。删除本地分支: git branch -D 分支名
好了,nbewDemo2删除掉了。
(18)我们查看码云界面,你修改本地不会引起远程服务器的改变
推送一下远程就好了。
(19)代码有冲突,就需要下拉,这里不演示了,等项目遇到说。
提交代码:1) git add . 2)git commit -m "分支名" 3)git push (如果有代码冲突,先git pull 在git push)
(20)git 回退到某个历史版本: git reset --hard 1123123bbb9c00bbdca96(分支ID)
(21)、修改推到远程服务器:git push -f -u origin 分支名
总结:反正就这么下来了,一边研究一边敲,输出式学习比输入式学习强太多,以后做作业用git简单提交下,慢慢熟悉,慢慢看bug。