欢迎光临,赤鹿小组
记录过程,分享经验

Git教程

zhang_attitude阅读(212)

综述
1.Git是一个分布式版本控制工具,它的主要特性在于:
2.区分本地仓库和远程仓库,每一处都是完整的独立副本。
3.因此在操作上会区分commit(提交到本地仓库)和push(提交远程仓库)
4.基于branch和merge模型设计 Git官方鼓励我们建立本地branch,基于本地branch开发完成后合并至master。在push远程仓库时,只需要处理master即可,不需要将本地branch全部退给远程仓库。
5.体积小、性能高
6.分布式,每一处都是完整的代码副本
7.基于工作区操作
8.开源免费

Git官方有一个操作教程,有兴趣的同学可以体验一下shell方式的操作过程:Try Git

注意:在Git中,一切都是针对本地仓库进行操作,而不是远程仓库,理解这一点对日常使用非常重要。在架构上可以粗略地认为它分为本地文件系统、本地仓库、远程仓库 三层结构。

从一个常见 Edit–>Commit–>Pull–>Commit–>Push 操作来举例说明一下可能有助于你理解这个过程:
1.Edit:正常修改/编辑本地代码
2.Commit:修改完成后,将代码提交至本地仓库。此时做Push操作,如果远程仓库有版本更新,会提示我们进行Pull操作获取最新代码。
3.Pull:此时Git会将远程仓库代码拉取到本地,然后将本地文件系统中的文件覆盖。(注意是文件系统,而不是本地仓库)
4.Commit:在做完Pull操作后,你会发现Git版本控制工具中将未提交的代码和刚刚更新的代码都会列出来,此时就需要将本地修改和远程的修改一并Commit到本地仓库。
5.Push:做完第4步操作后,本地仓库版本号以及代码就变为最新,此时就可以将本地仓库Push到远程仓库中。

最初使用Git时,可能对第3、4两部操作产生疑惑。Git并没有帮我们把远程代码覆盖至本地仓库,这点同SVN有本质不同。但这正是Git的魅力所在:Everyting is local。
Git安装

在如下地址下载Git工具后安装:
https://git-scm.com/downloads 或 ftp/software软件安装包/Git和Svn/Git/
安装完成后,右键菜单中选择 Git Bash 生成ssh密钥(用于同远程仓库验证)
在shell中输入: ssh-keygen -t rsa -C “你的名字@snsoft.com.cn”
注意需要将命令中的邮箱替换为你的邮箱,执行完成后会在你的Windows用户文件夹下生成.ssh文件夹(注意是当前的用户的.ssh文件夹下)。
里面是公钥和私钥文件如下:
id_rsa
2.id_rsa.pub
Host “sino”
2.HostName “git.sino-clink.com.cn”
3.User “git”
4.IdentityFile “~/.ssh/sino_rsa”
5.
6.Host “snsoftadk”
7.HostName “adk-git.sino-clink.com.cn”
8.User “git”
9.IdentityFile “~/.ssh/sino_rsa”
可以看到 config 文件中用于标识身份验证的文件名为 sinorsa ,因此需要将刚刚生成的两个密钥文件改为 sino_rsa,sino_rsa.pub
同时将公钥 sino_rsa.pub 复制一份重命名为 你的名字@snsoft.com.cn.pub ,这个文件需要发送给相关人员开通权限。

Git常用命令

很多时候我们会选择使用Git的一些客户端工具进行Git本地仓库的代码管理操作,但是Git的客户端反映出来的信息并不是十分准确,有时甚至会出现误导,所以更多时候我们是需要用Git的操作命令来进行验证
在进入一个仓库后右键会出现一个Git bash here的选项,点击弹出linux对话框,即可执行linux命令

1.创建新分支

git branch NEW //创建本地新分支
git checkout NEW //切换到本分支
git commit -m “备注信息” //提交到本地仓库
git push origin NEW //推送到远程分支

2.指定分支下载
git clone -b NEW xxx.git

3.删除远程指定分支
git push origin –delete zj-4.1.x

4.本地master分支代码强推覆盖到release分支

git push origin master:release -f
安装GUI工具

在如下地址下载Git可视化工具安装:
https://git-scm.com/downloads/guis 或 公司FTP ftp/software软件安装包/Git和Svn/Git/
windows下Git可视化工具主要选择有以下几种:
1.SourceTree
2.TortoiseGit
3.Eclipse插件

我们推荐使用SourceTree或者Eclipse自带插件。

SourceTree

ST设置

SoucreTree中菜单选择工具-选项
在选项中需要配置用户全名、用户邮箱和SSH密钥文件路径。
SSH客户端选择OpenSSH

注意:需要设置提交人员的简体名称

ST克隆仓库

首选要克隆一个远程仓库到本地。这里需要设置远程仓库的URL以及本地仓库的存放路径。克隆完成后,你就得到了一个本地仓库。其中:
1.文件状态:展示本地文件修改清单
2.分支:展示本地仓库所有分支
3.远程:展示远程仓库所有分支
4.右侧列表则展示当前分支的操作日志

Pull(ST拉取

将远程仓库代码拉取到本地仓库,这里有一个选项:

立即提交合并的改动
需要勾选,该选项代表的是将远程仓库拉取到本地后,自动将远程仓库和本地仓库merge结果commit到本地仓库。

Pull(ST提交)

将代码修改提交至本地仓库。该操作在SourceTree文件状态页面进行。
文件状态页面分为 暂存区、工作区和提交注释区。如图:

所有未提交文件都会在工作区展示。提交前,将需要提交的文件拖拽到暂存区,或者使用 Stage All(暂存所有),Stage Selected(暂存所选)按钮操作。在注释区填入本次提交的注释选择提交按钮操作。

注意:在提交时,注释必须说明本次提交修改内容,因为提交只是针对本地仓库,并不影响远程仓库,我们鼓励开发同学进行提交操作,完成一块细分任务就可以提交。甚至可以新建分支进行开发任务,待完成后合并至主干。

Push(ST推送)

将本地仓库推送到远程仓库。在推送时,远程仓库会校验本次推送的版本号,因此在推送前,需要先拉取代码合并,保证本地仓库版本不能落后远程仓库。

ST冲突解决

场景1:当你开发完成后想要提交(Commit)代码,然后直接推送到远程,这时候可能会因为其他开发人员已经在你最后一次拉取代码的那个版本之后向远程推送了好一个或多个版本了,此时你直接推送到远程会报错,提示你需要先拉取(Pull)代码,此时拉取一下代码在推送即可。

场景2:在基于场景1的情况下,当你和另外一个开发人员修改同一个代码文件的时候,另外一个开发人员已经将他的修改推送到远程,此时你拉取代码有可能会发生冲突。此时项目里的文件都会报红,需要你去对比拉下来的代码和你备份的代码的不同之处,然后修改再提交推送。

场景3:在提交(Commit)代码之前先拉取(Pull)代码,此时如果有冲突会在报错时提示给你都哪些文件冲突了,这时你也可以将冲突的文件备份,然后使用未暂存区的代码还原还原这些文件,再拉取(Pull)代码,这样可以避免冲突,但这时还是需要你去对比拉下来的代码和你备份的代码的不同之处,然后修改再提交推送。

ST代码还原

场景:有时候修改了代码后发现修改的代码都是错的或者其他情况需要将文件还原到文件修改前的状态。此时选择工作区的要还原的文件右键丢弃即可还原到你本地仓库最新的版本。

ST分支管理

假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

ST创建分支

点击分支按钮创建新的分支。如果你此时正在master分支上,那么这个新建的分支是以master分支为主干的一个分支。创建完成后,在你的本地分支会出现你刚建的分支,此时是默认将代码合并过来的。
分支创建完成后你就可以按照正常的拉取(Pull)提交(Commit)和推送(Push)进行开发了。但是需要注意的是,如果新建的分支只是用于自己本地开发代码测试,并不会与其他人共享这个分支,请不要有推送(Push)操作,否则会把这个分支推送到远程仓库,对整个管理会有影响。

ST分支切换

分支的切换比较简单,直接双击本地仓库的分支名即可。
分支切换需要注意的地方
未提交文件的暂存:
场景:在新分支开发完成后(或者需要临时切换到开发使用的主干分支),需要将新分支的代码合并到开发使用的主干分支上去,这时新分支上最好不要有未提交的代码,否则会在分支切换的时候将你未提交的东西都带到主干分支上去。如果有不需要提交的文件或代码,并且这些东西并不想带到主干分支上去需要进行贮藏操作。

选择贮藏操作后,会在中间的树形导航视图出现贮藏节点,节点中有你在本仓库暂存的东西,当你在切回新分支的时候,还需要这些暂存的文件的话,右键取出来即可。

ST分支合并

这里在合并的时候需要注意方向。
首先切换到你要合并到(例如开发的主分支)的分支上去,选择要合并的分支(例如你的开发分支),右键选择合并xxx分支到当前分支。

ST冲突解决

场景:此时你在文件状态界面可以看到冲突的文件行,包括当前分支的版本,与合并分支的版本冲突的位置都有标记,如下图右侧,HEAD部分标识当前所在分支的代码,======标识下面的表示合并过来的分支的代码。\ git[/caption]

比较理想的情况是如果确定使用哪个分支版本的话就右键冲突文件解决冲选择使用我的(当前分支)版本或者他人(另外合并过来的分支)版本。
否则的话需要自己根据需要来修改冲的文件修改完成后,右键冲突文件解决冲标记为已解决,然后正常提交推送即可。

ST标签管理

Eclipse发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

Eclipse插件

Eclipse插件主要使用两个视图 Git Staging 和 Git Repositories
1.Git Staging:文件状态展示、Commit操作
2.Git Repositories:仓库展示、Push操作

注意:需要设置提交人员的简体名称

克隆仓库

Git Repositories视图中选择图中按钮,按照要求选择克隆的仓库分支即可

Pull(拉取)

Git Repositories视图右键选择要拉取的仓库,选择Pull操作。

Commit(提交)

Git Staging视图中进行操作,该视图同SourceTree类似,也区分暂存区、工作区、提交注释区。

Push(推送)

Git Repositories视图右键选择要Push的仓库,选择Push to Upstream操作。

冲突解决

场景1:当你开发完成后想要提交(Commit)代码,然后直接推送到远程,这时候可能会因为其他开发人员已经在你最后一次拉取代码的那个版本之后向远程推送了好一个或多个版本了,此时你直接推送到远程会报错,提示你需要先拉取(Pull)代码,此时拉取一下代码在推送即可。
场景2:有时候忘了拉取(Pull)代码,直接提交(Commit)代码,再推送(Push)到远程仓库时会提示要先拉取(Pull)代码,但是在拉取(Pull)代码时会有冲突,此时工程中的冲突文件会报红,此时选择冲突文件,右键”team”,选择“merge tool”,打开的视图中可以查看到修改的对比。 将每个冲突文件修改为正确的,然后进行commit步骤进行正常提交即可。
场景3:在提交(Commit)代码之前先拉取(Pull)代码,此时如果有冲突会在报错时提示给你都哪些文件冲突了,这时你也可以将冲突的文件备份,然后使用4中的代码还原还原这些文件,再拉取(Pull)代码,这样可以避免冲突,但这时还是需要你去对比拉下来的代码和你备份的代码的不同之处,然后修改再提交推送。

创建分支

Git Repositories视图中选择要创建新分支的本地库右键选择Switch To –> New Branch… 可以选择在哪个分支的基础上新建分支,输入新分支的名字,Finish后会切换到新建的分支。 注意此时新创建的分支为本地分支,只在你本地存在,如果这个新分支需要多个开发共同使用,可以在提交(Commit)代码后进行Push操作将分支推送到远程仓库,其他人员可切换到此分支。 需要注意的是,如果新建的分支只是用于自己本地开发代码测试,并不会与其他人共享这个分支,请不要有推送(Push)操作,否则会把这个分支推送到远程仓库,对整个管理会有影响。

分支切换

当功能开发完毕后需要将当前分支的代码合并到开发的主分支上的时候,可以通过选择本地仓库右键选择Switch To 选择你要切换的分支。注意切换前需要把你没有提交(commit)的代码进行暂存,否则在切换分支时会将这些没提交的代码带到另一个分支上。

分支切换需要注意的地方:

1.未提交文件的暂存:
场景:在新分支开发完成后(或者需要临时切换到开发使用的主干分支),需要将新分支的代码合并到开发使用的主干分支上去,这时新分支上最好不要有未提交的代码,否则会在分支切换的时候将你未提交的东西都带到主干分支上去。如果有不需要提交的文件或代码,并且这些东西并不想带到主干分支上去需要进行贮藏操作。 Git Repositories视图中右键选择要暂存的本地仓库,输入暂存的名字,确定此时会在仓库的目录里看到有一个Stashed Commits节点
里边有你暂存过的数据可以删除可以提取出来,这个暂存列表在各个分支上都是可见。 选择要取出暂存数据的节点,右键Apply Stashed Changes取出暂存的数据到当前本地分支,如果暂存的数据不用了可以右键删除。

2.分支的合并:
这里在合并的时候需要注意方向。
首先切换到你要合并到(例如开发的主分支)的分支上去,选择要合并的分支(例如你的开发分支),右键选择Merge。 选择要合并数据的分支Merge。此时会发现仓库显示有需要推送到远程仓库的版本,Push到远程仓库即可

3.合并冲突解决:
在合并分支的时候往往会遇到两个分支的同一个文件的同一行代码都被修改,导致合并的时候会发生冲突。在冲突的文件中Git会用<>标记出不同分支的内容。
我们根据代码本身来修改冲突位置的代码,修改完成测试通过后再提交。

代码还原

每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。

文件回退

选择要回退的文件右键:

可以选择你要恢复的版本

标签管理

Eclipse发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

快捷键

在使用中,Pull代码和Push Upstream两种操作可以设置Eclipse快捷键:

Gitosis服务器

账户管理

此功能只有拥有Git管理员权限才能使用

Git权限管理也是一个Git仓库,权限是通过公钥文件和配置文件管理的。
默认读取的配置文件目录为D:\snsoft90\gitosis-admin\gitosis.conf,如果目录不一致,需要填写配置文件路径。

保存

此界面不使用界面保存功能,由单独的保存按钮控制。
修改完成后点击保存按钮保存,注意子表修改时需要先提交行(也就是行移动)再保存。

上传公钥

点击上传按钮,选择要上传公钥文件即可,成员列是码表,上传了新的公钥后就可以在成员码表中找到对应的成员。(如果没有,就清理一下浏览器缓存。)

新加组

如果需要新加组来控制某些仓库的权限,点击新加组,按提示录入对应的分组及成员信息即可。

设计师必备网站,肯定有你没收藏到的!

PS怪兽阅读(315)

灵感对于设计师来说,像沙漠中的绿洲,对设计起着非常决定性的作用。灵感本身就属于很感性的事物,来源非常隐性,是从事设计行业必不可少的。
经常浏览各种设计网站,储备足够多的设计案例,能更好的激发设计师在创作过程中的设计灵感。

设计灵感网站

说起灵感,我们似乎觉得它非常的“无厘头”。但是作为设计师,我们需要通过一些方法来培养“灵感”,使得它可以经常“光顾”,是很必要的,并且是可以做到的。

网站推荐

1、致设计网:http://www.zhisheji.com/

2、站酷网:https://www.zcool.com.cn/

3、68 Design平台:http://www.68design.net/

4、优设:https://www.uisdc.com/

5、优优灵感:https://uiiiuiii.com/inspiration/

6、UI中国:https://www.ui.cn/

7、大作网:http://www.bigbigwork.com/

8、Collect UI:http://collectui.com/

9、Siiimple:https://siiimple.com/

10、Dribbble:https://dribbble.com/

11、Awwwards:https://www.awwwards.com/

12、GRAFOLIO:https://www.grafolio.com/works/list.grfl

13、iOS Icon Gallery:https://www.iosicongallery.com/

14、Inspirationde:https://www.inspirationde.com/

15、UPLABS:https://www.uplabs.com/

设计素材网站

找素材是一个很头疼的事,虽然网上可以搜,但是都是参次不齐的,特别是每到节日大促、老板催稿的时候,恨不得1秒钟出一张图,那么储备一些素材网站就很有必要了,可以在有灵感之后找到合适的素材填充自己的设计。

网站推荐

1、花瓣网:http://huabanpro.com/

2、千图网:http://www.58pic.com/

3、包图网:https://ibaotu.com/

4、千库网:http://588ku.com/

5、摄图网:http://699pic.com/

6、我图网:http://www.ooopic.com/

7、昵图网:http://www.nipic.com

8、90 设计网:http://90sheji.com/

设计配色网站

色彩是设计中不可或缺的重要“调味剂”,色彩是视觉中最为敏感的元素,不管是什么类型的设计作品,色彩都被作为一种重要的设计元素进行应用,力求给人们带来强烈的视觉冲击感,好的配色能为整个设计加分增色不少。

网站推荐

1、Colorschemer:http://www.colorschemer.com/

2、ColorSchemeDesigner:www.peise.net/tools/web/

3、NIPPON COLORS:http://nipponcolors.com/

4、Coolors:https://www.coolors.co/

5、Color Hunt:http://colorhunt.co/

6、Material-UI:https://www.materialui.co/

7、kuler:https://color.adobe.com/zh/create/color-wheel/

8、uiGradients:http://uigradients.com/

9、传统色:http://chinese.traditionalcolors.com/

10、渐变配色网:https://uigradients.com/#Disco

LOGO设计网站

Logo看似简单,但是设计过程中的一点一滴都很有讲究。因为Logo作为品牌的象征,要一目了然地传达给人这个品牌的思想和形象色。设计师应该掌握具象、抽象、文字等表现形式,以此为基础对标志进行创意设计。

网站推荐

1、Logodust:http://logodust.com/

2、Logoinstant:http://www.logoinstant.com/

3、LogoPond:https://logopond.com/

4、Logo Lounge:https://logolounge.com/

5、LogoFaves:http://logofaves.com/

6、LogoDesignLove:www.logodesignlove.com

7、LogoMoose:https://www.logomoose.com/

8、The Design Inspiration:http://thedesigninspiration.com/

9、Brands of the world:https://www.brandsoftheworld.com/

10、Logooftheday:http://logooftheday.com/

插画设计网站

最近几年,插画越来越流行,不止是原本身处各个领域的画手和插画师开始越来越受追捧,而且连网页、UI和动效设计师都纷纷学习插画设计,一张插画所传递的信息比文字更多更丰富,相较其他形式更有表现力。

网站推荐

1、Illustrationweb:www.illustrationweb.com.cn/

2、Pixiv:http://www.pixiv.net/

3、n8w :http://www.n8w.com/

4、uchor :http://www.uchor.com/

5、Illustration Friday:http://illustrationfriday.com/

6、Sakiroo:http://sakiroo.com/

7、ILLUSTRATION AGE:https://illustrationage.com/

8、directoryofillustration:http://www.directoryofillustration.com/

9、agent002:http://www.agent002.com/

10、Drawr:http://drawr.net/

小编今天的分享就到这里啦~你都收藏了吗?多多转发哦,有其他好的推荐也可以留言给我哒

图片来源:花瓣网