1、Git培训培训目的n为什么和如何使用Git进行开发nGit常用命令n使用GUI操作Git库n开发环境配置Window下Git安装nmsysgit是windows下的Git,是命令行工具n如果用EGit可以不用安装msysgitn下载和安装Git,下载地址:n安装过程参考: Windows下Git的配置 n以下主要是解决中文问题以下主要是解决中文问题nC:Program FilesGitetcgitconfig 添加: core autocrlf = falsegui encoding = utf-8i18n commitencoding = GBKuser email = name = 某某某
2、 nC:Program FilesGitetcinputrc 修改两行为: set output-meta on set convert-meta off nC:Program FilesGitetcgit-completion.bash 末尾增加:alias ls=ls -show-control-chars -color=auto nC:Program FilesGitetcprofile 末尾增加: export LESSCHARSET=utf-8 关键的Git文件或目录n/.gitconfign.git在库的顶级目录当中包含项目的所有对象、提交记录、配置n.gitignore记录要忽略
3、的文件Git简介nGit是一个开源的分布式版本控制系统。与SVN、CVS相比n分布式不需要中心仓库nGit的版本号都是生成的一个哈希值,比如:bbaf6fb5060b4875b18ff9ff637ce118256d6f20 n性能分支与合并是比较简单对比快存储空间少术语nRepository 包括本地库和远程库nPull / Push / Checkout / FetchnBranchnMergenConflictnCommitnRevertnWorking DirectoryGit一此常用命令n获得仓库git initgit clonen提交git addgit commitn获取信息git
4、 helpgit statusgit diffgit loggit show (显示改动情况) Git命令的备忘第一个Git库n告诉Git你是谁git config global user.name “xucons”git config global user.email “”n创建一个库git initn克隆一个库git clone git:/git.kernel.org/scm/git/git.gitPull与Fetch区别ngit fetch:相当于是从远程获取最新版本到本地,不会自动merge n git pull:相当于是从远程获取最新版本并merge到本地,相当于git fetch
5、 和 git merge n在实际使用中,git fetch更安全一些。因为在merge前,我们可以查看更新情况,然后再决定是否合并 分支与标记n分支创建分支ngit branch ngit branch 删除分支ngit branch -d 查看分支ngit branchngit branch -r” /remote branch转动某一分支ngit checkout ngit checkout -b 分支合并ngit merge /合并指定的分支到当前分支n标记标记只是一个方便人识别某次提交的一个标签git tag Rebasenrebase命令执行后,实际上是将分支点从C移到了G,这样分
6、支也就具有了从C到G的功能 revert和resetnreset将当前的工作目录完全回滚到指定的版本号 nrevert还原一个版本的修改,必须提供一个具体的Git版本号,例如git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20 n区别reset是指将当前head的内容重置,不会留任何痕迹。 revert是撤销某次提交,但是这次撤销也会作为一次提交进行保存。 Git的工作流程 n与远程仓库同步(pull,fetch)n修改文件n查看变更(show,status)n载入变更(add or a)n提交载入的变更(commit)n重复n上传(push)
7、Git文件的状态变化 载入的概念(stage)n通过git add可能将文件改为staged状态n文件修改了后提交时加-a来载入GUI for GitnTortoiseGitnEGit (Eclipse 插件)注:GUI未实现Git所有的功能,有些情况下还得在命令行进行操作 EGit的安装n插件安地址:GitHub介绍nGitHub是一个基于web与git的托管项目服务,你可以这里托管你的代码。n网址: 开发平台的设置n设置工作空间编码nIVY的设置n设置Git的SSHnGit主目录的设置设置工作空间编码IVY的设置n如果有本地的maven库,可以配置为本地库n如查没有本地库,不用设置,默认使
8、用中央库,速度较慢SSH-目录设置SSH-生成公钥和私钥Git主目录的设置n本地库的路径不要放在eclipse工作空间当中,因为在删除项目时,会删除本地库n当clone和新建一个本地库时,将项目导入到eclipse当中。使用EGit和GitHubn在Github上注册一个用户n将公钥(id_rsa.pub)添加了GitHubn从GitHub导入现有的eclipse项目n将Eclipse项目上传到GitHubn在Eclipse执行Git操作在Github上注册一个用户将公钥添加了GitHub-1将公钥添加了GitHub-2n用记事本打开以前生成的id_rsa.pub文件,拷贝所有内容到Key文本
9、框中Git Repository Exploring透视图克隆GitHub库克隆GitHub库2n输入你生成公钥和私钥时的密码克隆GitHub库3n选择一个分支,默认分支为mastern点下一步n选择保存路径后点完成即可导入项目n右击工作目录,选择Import Projectsn按照向导提示,将项目导入到Eclipse工作空间。Eclipse执行Git操作n进入java透视图n从右键菜单中可以对Git进行操作Eclipse执行Git操作2n在这个菜单中可以对Git进行操作提交上传到远程库从远程库下载同步分支合并添加显示历史Question and AnswernQuestion and Answer :)