书看了一段时间,是时候开始维护自己的个人资料了。正所谓工欲善其事必先利其器,开发先从环境搭建开始。而环境搭建先从自己的GitHub账号搞起。
首先,任何Git初学者应该先看一下廖雪峰老师的教程,这点非常重要!!!
1.先去官网下载一个Git for Windows的安装包,安装完成。
2.开始菜单打开Git Base,设置一下你的用户名和email
$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"
3.创建你的ssh秘钥,成功之后在我的系统用户文件夹下出现.ssh文件夹,里面有两个文件
$ ssh-keygen -t rsa -C "youremail@example.com"
现在从你的GitHub账号登陆后右上角图标点击后的settings进入用户设置->SSH and GPG keys->New SSH key。title随便填,下面的把刚才生成的id_rsa.pub用记事本打开把内容贴进去,提交。完成之后:
4.创建一个与GitHub关联的代码仓库。这里我要在D:/workspace下创建一个叫webdemo的工程,在git base中输入
cd D:/cd workspace
然后在GitHub中创建一个也叫webdemo的仓库,记得把这里√上,这样会初始化一个README.md
现在本地仓库克隆GitHub上的远程仓库,第一次要验证RSA认证,输入yes,然后本地出现webdemo文件夹里面有README.md文件。
$ git clone git@github.com:GrayWind33/webdemo.git
5.尝试使用git push提交你的修改
现在我在文件夹下添加一个test.txt,然后在git base中输入
$ git add -A $ git commit -m 'add test.txt' $ git push origin master
第一行添加文件,第二行是添加修改描述,第三行上传文件至远程仓库。
这里是直接上传文件到远程仓库的master分支,必须是ssh key在账户设置中的本地仓库才能上传否则是没有权限的。
可以看到GitHub的代码仓库已经多了一个文件了。
6.创建新的分支与合并
这里的提交是直接把代码上传覆盖了主分支,随之而来的问题是,GitHub只起到了保存代码的作用,没有起到管理的作用。现实状态下我可能需要暂时提交未全部完成的代码,或者我不确定这次的开发部分是否正确,要是这部分直接合并上去,我的主分支就不能正常运行了,更加不便于版本管理。以工作中的开发来说,我需要保证主分支上是可以生产发布的正式版本,同时我应该有开发版本,ST测试版本等多个版本。这些不同的版本可以认为就是分支。当我确认当前的工程足以交付之后,我再把最新的分支合并至主分支进行发布。另一点来说,如果我想要发起或参与一个多人项目,显然我不能把master的权限给所有人,仅有管理员可以直接管理主分支才是正确的。
现在我创建一个新的分支dev,并切换到该分支上。通过git branch可以查看所有分支,通过git checkout 分支名可以切换到该分支上。
$ git checkout -b dev
现在作为测试,我把test.txt给删除掉,然后提交修改至dev分支
$ git add -A$ git commit -m 'add new branch,and delete test.txt'$ git push origin dev
现在看GitHub上出现了一个新的分支
尝试切换到dev分支,发现test.txt没有了而master分支仍然存在。
现在从dev分支上发起一个new pull request,输入些说明后,点击create pull request。
现在管理员也就是我的账号可以看到pull request,我选择合并之后master分支上的test.txt文件就被删除了,两个分支合并完成。当然,我发现这次开发部分问题太大要从头来过,我自然是不会合并,从主分支新建一个分支从新开发再提交。
7.已有工程关联远程仓库
已一个Java工程来说,通常的顺序是先建立Java工程,再上传到GitHub。反过来通常是不行的,因为eclipse的初始化工程会报错。那么,现在我已经建立完webdemo这个Java工程,然后也在GitHub建立了相应的repository。按照以下步骤进行关联:
$ git remote add origin git@github.com:GrayWind33/webdemo.git$ git pull origin master
现在就可以像之前一样进行pull和push操作了
8.添加.gitignore文件
对于一个J2EE工程来说,我们最关心的是java源码、xml文件等,对于编译产生的.class文件、target目录下文件可以通过自动构建生成,为了避免编译环境不同造成的问题以及减少代码传输量,我们需要设置某些类型的文件不传输到GitHub上。
$ touch .gitignore
此时目录下产生.gitignore文件,编辑它,参考配置如下:
# Lines that start with '#' are comments.
# IntelliJ IDEA Project files.idea*.iml*.ipr*.iwsout# Eclipse Project files.classpath.project.settings/bin/gen/target/local.properties.DS_StoreThumbs.db*.bak*.tem*.temp#.swp*.*~~*.*总结一下,我们现在学习了如何从头开始安装并搭建一个Git仓库,以及如何新建分支、提交修改、发起合并请求、合并代码。其余版本回退,冲突解决等一些问题下次有机会再补充。现在,可以开启新的代码之旅了!