北京千锋教育
做良心的教育
带你感受IT的魅力
快速咨询千锋教育始终坚持秉承"用良心做教育"的理念。
唯一敢推出"2周免费试听 ,不满意不缴费",让学员更真实的了解千锋、了解自己是否适合做软件开发再做决定。
零学费入学,工作后分期还清学费,学员毕业薪水高,培训就业协议指明薪水保障,平均薪水专科5000、本科6000、硕士7000。
师资阵容强大,具责任心、懂教学、强技术、有大型项目经验实战派讲师授课,由专家及企业技术骨干组成。
自主研发QFTS教学保障系统,拥有自主知识产权的开发培训课程体系,讲练学结合,课程内容紧贴实用技术和企业实际需求。
企业级项目实战训练,从千锋科技及合作企业项目中研发出十个企业级教学项目,让学员参与真实的企业级项目研发,让学员能够独立设计开发自己的上线项目。
严格、科学、负责的教学就业管理,就业、班主任全程跟班,把握每个学员的学习状态,并有职业素养课和就业指导课,有教学就业质量。
加入千锋开发者联盟,为会员提供技术支持及终身就业服务,参加千锋举办的各类技术沙龙和活动。
第一阶段(4周) 前端页面重构
第二阶段(8周) JavaScript高级程序设计 PC端全栈开发
第三阶段(8周) Node.js后端开发 Vue.js前端框架...
互联网+政策的提出和渗透,为互联网领域创造了更大的就业空间,也使得前端开发人才呈现爆发性增长,带动了Web前端开发行业的快速兴起。专业人才非常紧缺,薪资待遇高的行业现状,使得HTML5开发已经成为众多IT学子选择就业的首选。千锋web前端学校,是全栈前端工程师的成长之路。
千锋教育副总经理、千锋Unity教学总监。中国移动互联网开发培训“教父”,受邀担任MITT项目专家委员会委员。近十年IT培训从业经验,有多款应用成功发布在Android Market及App Store。长期从事移动互联网开发、Unity 游戏开发相关课程的教学工作,混合式开发高级讲师,精通HTML5、iOS等,具有丰富的教学经验。
千锋HTML5教学总监,千锋UI教学总监,千锋北科校区校长。原中科院计算所专家,曾任北京市高校师资培训中心特邀讲师,多年担任北京市属高校师资培训工作。11年的UI、WEB前端开发教育培训经验,4年HTML5开发经验,深刻理解教学研究、教学管理工作,热爱教育事业。精通HTML5.0及CSS3.0、JavaScript等前端技术。
千锋教育大数据教学总监,曾担任广东电信北京分公司移动事业部项目经理,开发过微软中国平台考试系统。10年多软件开发经验,7年多教学经验,精通Java企业平台技术、企业搜索引擎、Hadoop大数据、以及分布式架构,开发过山西省旅游局智能化平台等大型项目、炎黄盈动企业OA平台、微软中国平台考试系统。
十多年软件开发经验,六年多教学经验,精通C++、Objective-C等语言,精通手机及PC平台软件开发。开发过的项目:p2p流媒体解决方案,火电厂燃烧优化系统,个人门户平台,房地产管理平台,iOS平台的多款应用。授课实战性强,并将企业团队开发模式带入课堂,累积教授的学员超过2000名,被学员赋予“大杜老师”称号。
首先要从基本的HTML语言开始学起。网页的所有内容都是建立在HTML的基础之上,要想学好HTML,不要去使用任何集成工具,而是使用文本编辑器,直接从最简单.....
因为地区与机构的不同,费用也是不等的,目前市面上的费用一般在1万-1.6万左右。学费看似不低,但是毕业后的收入同样不菲。 根据部分网友在部分一线城市.....
北京化妆学校哪个好?在北京学习化妆到底哪家好呢?这个问题在很多同学选择学校时都成了很大的困扰,现在的化妆行业发展的这么好,都想从中分一杯羹,到底要怎么选择学校怎.....
北京的计算机培训机构几乎都有web前段的课程。不同的机构课时、学费、课程安排等等都是不一样的。选择学校的时候可以重点从师资、课程设置、学生就业服务三方面考虑。你.....
在去年写过一篇文章“分享关于Git服务器相关配置之心得”,介绍了Git服务器配置和一些爬坑案例,没看过的童鞋可以去学习下。
GIT和SVN有些相似之处,用过SVN的童鞋发现,有些操作类似,如果有你有SVN的基础,在学习git项目操作的时候入门比较快的。那么有童鞋就要问了,GIT和SVN有什么区别呢?
Git 与 SVN 区别GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。
Git 与 SVN 区别点:
1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。3、GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。4、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。5、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
Git 安装配置Linux 平台上安装Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。
在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命令安装:
各 Linux 系统可以很简单多使用其安装包管理工具进行安装:
Debian/Ubuntu:
Debian/Ubuntu Git 安装命令为:
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev $ apt-get install git-core $ git --version git version 1.8.1.2Centos/RedHat
如果你使用的系统是 Centos/RedHat 安装命令为:
$ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel $ yum -y install git-core $ git --version git version 1.7.1Windows 平台上安装在Windows 平台上安装 Git很简单,下载个压缩包就可以了,这里就不多说了,有疑问的可以加入我们的群(295431592)讨论。安装包下载地址:http://msysgit.github.io/。
完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。
在开始菜单里找到"Git"->"Git Bash",会弹出 Git 命令窗口,你可以在该窗口进行 Git 操作。
Mac 平台上安装在 Mac 平台上安装 Git 最容易的当属使用图形化的 Git 安装工具,下载地址为:https://sourceforge.net/projects/git-osx-installer/
安装界面如下所示:
OK,GIT基本介绍就这么多内容,接下来我们需要了解如何使用GIT在项目中的操作。其实GIT操作可以分位两种方法,一种是跟SVN差不多的,如下图:
这种方法就不多介绍,玩过SVN的,掌握很简单,如果您有不懂加群。另外一种GIT操作就是GIT命令来操作项目文件,这是我们本次分享的主题。
常用Git命令GIT命令有很多,在网上看了下一些大神们的总结,各有千秋。接下来就我收藏的一些GIT命令方法:
1、新建库文件$ git init该命令执行完后会在当前目录生成一个 .git 目录。使用我们指定目录作为Git仓库。
接下来我们初始化GIT代码库:
$ git init jiangweishan初始化后,会在 jiangweishan 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。
如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:
$ git add *.c $ git add README $ git commit -m '初始化项目版本'以上命令将目录下以 .c 结尾及 README 文件提交到仓库中。
如果我们想从代码库中把代码拷贝到本地,可以运行以下命令:
git clone如果我们需要克隆到指定的目录,可以使用以下命令格式:
git clone参数说明:
repo:Git 仓库。
directory:本地目录。
比如,要克隆 Ruby 语言的 Git 代码仓库 Grit,可以用下面的命令:
$ git clone git://github.com/schacon/grit.git执行该命令后,会在当前目录下创建一个名为grit的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录。
如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
$ git clone git://github.com/schacon/grit.git mygrit2、配置信息在代码库建好后,我们还需要配置一些信息,比如你团队旗下的成员等信息。
Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。
这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:
/etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。
在 Windows 系统上,Git 会找寻用户主目录下的 .gitconfig 文件。主目录即 $HOME 变量指定的目录,一般都是 C:\Documents and Settings\$USER。
此外,Git 还会尝试找寻 /etc/gitconfig 文件,只不过看当初 Git 装在什么目录,就以此作为根目录来定位。
1) 用户信息
配置个人的用户名称和电子邮件地址:
$ git config --global user.name "jiangweishan" $ git config --global user.email test@jiangweishan.com如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。
2) 文本编辑器
设置Git默认使用的文本编辑器, 一般可能会是 Vi 或者 Vim。如果你有其他偏好,比如 Emacs 的话,可以重新设置:
$ git config --global core.editor emacs3) 差异分析工具
还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。比如要改用 vimdiff 的话:
$ git config --global merge.tool vimdiffGit 可以理解 kdiff3,tkdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,和 opendiff 等合并工具的输出信息。
当然,你也可以指定使用自己开发的工具。
4) 查看配置信息
要检查已有的配置信息,可以使用 git config --list 命令:
$ git config --list3、增加/删除文件# 添加指定文件到暂存区 $ git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录 $ git add [dir] # 添加当前目录的所有文件到暂存区 $ git add . # 添加每个变化前,都会要求确认 # 对于同一个文件的多处变化,可以实现分次提交 $ git add -p # 删除工作区文件,并且将这次删除放入暂存区 $ git rm [file1] [file2] ... # 停止追踪指定文件,但该文件会保留在工作区 $ git rm --cached [file] # 改名文件,并且将这个改名放入暂存区 $ git mv [file-original] [file-renamed]4、代码提交# 提交暂存区到仓库区 $ git commit -m [message] # 提交暂存区的指定文件到仓库区 $ git commit [file1] [file2] ... -m [message] # 提交工作区自上次commit之后的变化,直接到仓库区 $ git commit -a # 提交时显示所有diff信息 $ git commit -v # 使用一次新的commit,替代上一次提交 # 如果代码没有任何新变化,则用来改写上一次commit的提交信息 $ git commit --amend -m [message] # 重做上一次commit,并包括指定文件的新变化 $ git commit --amend [file1] [file2] ...5、分支# 列出所有本地分支 $ git branch # 列出所有远程分支 $ git branch -r # 列出所有本地分支和远程分支 $ git branch -a # 新建一个分支,但依然停留在当前分支 $ git branch [branch-name] # 新建一个分支,并切换到该分支 $ git checkout -b [branch] # 新建一个分支,指向指定commit $ git branch [branch] [commit] # 新建一个分支,与指定的远程分支建立追踪关系 $ git branch --track [branch] [remote-branch] # 切换到指定分支,并更新工作区 $ git checkout [branch-name] # 切换到上一个分支 $ git checkout - # 建立追踪关系,在现有分支与指定的远程分支之间 $ git branch --set-upstream [branch] [remote-branch] # 合并指定分支到当前分支 $ git merge [branch] # 选择一个commit,合并进当前分支 $ git cherry-pick [commit] # 删除分支 $ git branch -d [branch-name] # 删除远程分支 $ git push origin --delete [branch-name] $ git branch -dr [remote/branch]6、标签# 列出所有tag $ git tag # 新建一个tag在当前commit $ git tag [tag] # 新建一个tag在指定commit $ git tag [tag] [commit] # 删除本地tag $ git tag -d [tag] # 删除远程tag $ git push origin :refs/tags/[tagName] # 查看tag信息 $ git show [tag] # 提交指定tag $ git push [remote] [tag] # 提交所有tag $ git push [remote] --tags # 新建一个分支,指向某个tag $ git checkout -b [branch] [tag]7、查看信息# 显示有变更的文件 $ git status # 显示当前分支的版本历史 $ git log # 显示commit历史,以及每次commit发生变更的文件 $ git log --stat # 搜索提交历史,根据关键词 $ git log -S [keyword] # 显示某个commit之后的所有变动,每个commit占据一行 $ git log [tag] HEAD --pretty=format:%s # 显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件 $ git log [tag] HEAD --grep feature # 显示某个文件的版本历史,包括文件改名 $ git log --follow [file] $ git whatchanged [file] # 显示指定文件相关的每一次diff $ git log -p [file] # 显示过去5次提交 $ git log -5 --pretty --oneline # 显示所有提交过的用户,按提交次数排序 $ git shortlog -sn # 显示指定文件是什么人在什么时间修改过 $ git blame [file] # 显示暂存区和工作区的差异 $ git diff # 显示暂存区和上一个commit的差异 $ git diff --cached [file] # 显示工作区与当前分支最新commit之间的差异 $ git diff HEAD # 显示两次提交之间的差异 $ git diff [first-branch]...[second-branch] # 显示今天你写了多少行代码 $ git diff --shortstat "@{0 day ago}" # 显示某次提交的元数据和内容变化 $ git show [commit] # 显示某次提交发生变化的文件 $ git show --name-only [commit] # 显示某次提交时,某个文件的内容 $ git show [commit]:[filename] # 显示当前分支的最近几次提交 $ git reflog8、远程同步# 下载远程仓库的所有变动 $ git fetch [remote] # 显示所有远程仓库 $ git remote -v # 显示某个远程仓库的信息 $ git remote show [remote] # 增加一个新的远程仓库,并命名 $ git remote add [shortname] [url] # 取回远程仓库的变化,并与本地分支合并 $ git pull [remote] [branch] # 上传本地指定分支到远程仓库 $ git push [remote] [branch] # 强行推送当前分支到远程仓库,即使有冲突 $ git push [remote] --force # 推送所有分支到远程仓库 $ git push [remote] --all9、撤销# 恢复暂存区的指定文件到工作区 $ git checkout [file] # 恢复某个commit的指定文件到暂存区和工作区 $ git checkout [commit] [file] # 恢复暂存区的所有文件到工作区 $ git checkout . # 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变 $ git reset [file] # 重置暂存区与工作区,与上一次commit保持一致 $ git reset --hard # 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变 $ git reset [commit] # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致 $ git reset --hard [commit] # 重置当前HEAD为指定commit,但保持暂存区和工作区不变 $ git reset --keep [commit] # 新建一个commit,用来撤销指定commit # 后者的所有变化都将被前者抵消,并且应用到当前分支 $ git revert [commit] # 暂时将未提交的变化移除,稍后再移入 $ git stash $ git stash pop # 生成一个可供发布的压缩包 $ git archive10、冲突处理一个项目,多个成员维护,有时候难免出现文件冲突的情况,所以我们要养成“每次完成项目修改后,即时提交到代码库”的好习惯。那么一旦出现冲突,我们如何处理呢?
一般采用的是合并冲突,合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改。接下来我们可以模拟下冲突处理:
准备新的feature1分支,继续我们的新分支开发:
$ git checkout -b feature1Switched to a new branch 'feature1'修改readme.txt最后一行,改为:
Creating a new branch is quick AND simple.在feature1分支上提交:
$ git add readme.txt $ git commit -m "AND simple"[feature1 75a857c] AND simple 1 file changed, 1 insertion(+), 1 deletion(-)切换到master分支:
$ git checkout master Switched to branch 'master' Your branch is ahead of 'origin/master' by 1 commit.Git还会自动提示我们当前master分支比远程的master分支要超前1个提交。
在master分支上把readme.txt文件的最后一行改为:
Creating a new branch is quick & simple.提交:
$ git add readme.txt $ git commit -m "& simple" [master 400b400] & simple 1 file changed, 1 insertion(+), 1 deletion(-)现在,master分支和feature1分支各自都分别有新的提交,这种情况下,Git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突,我们试试看:
$ git merge feature1 Auto-merging readme.txt CONFLICT (content): Merge conflict in readme.txt Automatic merge failed; fix conflicts and then commit the result.果然冲突了!Git告诉我们,readme.txt文件存在冲突,必须手动解决冲突后再提交。git status也可以告诉我们冲突的文件:
$ git status # On branch master # Your branch is ahead of 'origin/master' by 2 commits. # # Unmerged paths: # (use "git add/rm我们可以直接查看readme.txt的内容:
Git is a distributed version control system. Git is free software distributed under the GPL. Git has a mutable index called stage. Git tracks changes of files. <<<<<<< HEAD Creating a new branch is quick & simple. ======= Creating a new branch is quick AND simple. >>>>>>> feature1Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存:
Creating a new branch is quick and simple.再提交:
$ git add readme.txt $ git commit -m "conflict fixed" [master 59bc1cb] conflict fixed用带参数的git log也可以看到分支的合并情况:
$ git log --graph --pretty=oneline --abbrev-commit * 59bc1cb conflict fixed |\ | * 75a857c AND simple * | 400b400 & simple |/ * fec145a branch test ...最后,删除feature1分支:
$ git branch -d feature1Deleted branch feature1 (was 75a857c).冲突搞定。
总结GIT是我们必须掌握一项基本技能,相对于SVN,它更加稳定;在管理远程库文件的时候,目前它是首选。
从入门到精通,需要大家花更多的时间去实践和研究,还没了解过的童鞋,还不赶紧行动起来。
千锋隶属于北京千锋互联科技有限公司,一直秉承“用良心做教育”的理念,致力于打造IT教育全产业链人才服务平台,公司总部位于北京,目前已在深圳、上海、郑州、广州、大连、武汉、成都、西安、杭州、青岛、重庆、长沙、哈尔滨成立了分公司,全国14个城市年培养优质人才20000余人,同期在校学员5000余人,合作院校超500所,合作企业超10000家,每年有数十万名学员受益于千锋教育组织的技术研讨会、技术培训课、网络公开课及免费教学视频。
千锋的6年多历程精彩纷呈,获得荣誉包括:中关村移动互联网产业联盟副理事长单位、中国软件协会教育培训委员会认证一级培训机构、中关村国际孵化软件协会授权中关村移动互联网学院、教育部教育管理信息中心指定移动互联网实训基地等。
千锋教育11大学科包含HTML5培训、UI交互设计培训、PHP培训、Java+云数据培训、大数据开发培训、VR/AR/Unity游戏开发培训、Python人工智能培训、Linux云计算培训、全栈软件测试培训、Android培训、iOS培训,采用100%全程面授高品质、高成本培养模式,教学大纲紧跟企业需求,拥有全国一体化就业保障服务,成为学员信赖的IT职业教育品牌。