前些天带着两个朋友一块儿仿照淘宝写了个项目练练手,不过能力有限完成的并不是很好.现在想着总结一下,巩固巩固.
我们用IDEA新建了一个maven项目,框架用的是SSM,应用Git和码云同步团队项目,Git教程可以去廖雪峰老师的官方网站,他把Git的简单应用介绍的很详细,其中比较重要的是分支(branch)和时光机(我们团队因为头一次用Git和码云多次同步会有冲突,并且有时还会把码云仓库中存储的项目也搞坏掉,这个时候时光机就显得很重要).
下面简单的介绍一下GIt以及Git中我认为十分必要去学习的指令:
根据以上的命令,我们就可以在码云上创建一个仓库,并且选取本地的一个文件夹当做本地仓库,和码云上的仓库做克隆同步.下面就是我们搭建远程仓库并且同步的步骤了.
生成秘钥后可以在C:\Users\你的电脑名称\.ssh目录下找到生成的秘钥,此时的目录中会有以下两个文件.
用记事本或者notepad++等编辑器打开id_rsa.pub文件,将内容全选并复制.
登录码云后,点击右上角然后点设置,
进入页面后点击SSH公钥
在添加公钥中把刚才复制的公钥粘贴进去:
点击确定之后,公钥就设置完成了.现在,我们的码云账户就有访问git的权限了.下面开始建库.
点击新建仓库,然后填填写写的.其中需要注意的是以下这些:
如果选择不开源的话,就需要通过分享链接的形式将自己小组中的其他成员添加进来.语言的话选择自己的开发语言就可以,.gitignore建议先不要设置(如果设置了的话以后用的过程中可能遇到缓存中的.gitignore和自己.gitignore不一样的问题,这时候清空git的缓存就可以了).建库成功后,我们就可以把码云上的库克隆到本地上了.
建好仓库后,点进去,点击克隆/下载,选择SSH,把它复制下来.接下来就是去找一个好的地方当作自己的本地仓库,创建好文件夹之后,右键git bash Here,输入git clone [email protected]:shenshaoming/taobao.git.
这时,我们发现目录下出现了一个新的文件夹,名字是我们刚才建的仓库的名字,用cd命令(跟linux,和windows框的cd命令相同)进入该文件夹.
现在,我们要讲当前的这个文件夹,建立成我们本地的仓库.如果你的仓库是空的,那么就会显示empty Git repository.
此时文件夹中就会多出来一个.git文件夹.
现在我们就可以和远端仓库就可以进行同步操作了.
用IDEA新建一个Maven项目并且配置完所有的东西后,就可以把项目移动到刚才同步的文件夹中.然后在IDEA中 Close Project,进入下面的页面,点击Import引入刚才文件夹中的pom文件.
一般来说IDEA中是不支持Git的,如果需要的话,可以在File -> Setting -> Plugins -> installed把Git下载下来.
下载完成后,应该就会看到自己项目中所有的文件都变了颜色,这是因为在Git中,你的这些文件都还存放在工作区中,没有添加到你的仓库中,所以才会标红.不过不要着急添加到库里,还记得我们之前说的.gitignore吗,下面我们来简单的介绍一下.
我之所以会把.gitignore是因为这个东西实在是太烦了,我们在这吃了好多的亏,所以独立成一个章节.
首先,.gitignore是用来告诉git那些我们不需要上传到远端仓库(码云)中的东西.如果不配置.gitignore的话,你项目的配置文件就会在你上传和下载的时候发生冲突.比如说IDEA自身的.idea文件夹中都是IDEA自己根据你的项目和设置生成的,每个人电脑的环境如果有一丢丢的不一样都会发生冲突.所以为了避免它,我们就要把它加进去,一下是我用到的,可能会有不全面的地方,大家加油吧.
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
target/
.idea/
好了,配置完之后我们就要准备上传到远端仓库了,以下是可能会用到的命令:
git diff和git status区别:
@ git status主要检索本地仓库的文件更新状态
@ git diff 主要是查看文件更新的具体内容
首先我们需要了解下文件状态类型,分为已追踪文件和未追踪文件
已追踪文件:在仓库之前的版本快照中包含文件的记录,在用户工作一段时间过后,这些文件同样能被追踪到(如文件的修改和删除)
未追踪文件:一些文件的新增
@ git status 命令显示出来的文件总共有三种状态分别是
1.已添加至暂存区,未提交的(add后未commit的文件)
2.已修改,未暂存的
3.为追踪到的文件
在添加之前,我们先来看一下git的工作图:
这个图说的很清楚了,工作区通过add命令存储到暂存区,暂存区通过commit命令提交到本地仓库,本地仓库通过push向远程仓库传输,pull操作同步本地和远程操作,pull下来的文件存储在自己的工作区中(在IDEA中貌似不会改变颜色).
参考博文:https://www.cnblogs.com/qdhxhz/p/9757390.html
所以说,我们的命令顺序为:
git add . , git commit -m "remark",在commit之前可以用diff和status查看文件状态.commit之后用git pull和仓库同步(如果有冲突,则pull失败),如果没有用pull命令的话,是无法进行push操作的.
当通过pull操作同步和远端仓库中的版本发生冲突时,要和发生冲突的哪一位进行合理的沟通解决冲突,解决之后再pull同步并push上传自己的更改.
为了将冲突的可能性降低到最低,分配工作一定要合理,减少因为功能实现而导致在同一文件中进行增加和修改,小组内成员一定要多多交流,如果要对别人的代码进行修改或增加一定要提前打好招呼.