文章目录
0.前言
- 我们团队开发的时候,需要在本地编写代表,之后提交到统一的远程仓库中,以便管理。
- 这个时候,我们需要思考一下,我们本地开发的时候,不仅仅有代码,还有jar包,还有编译之后的target,这些东西是否需要一起放在远程仓库呢?答案是不需要的,比如jar包,其他人clone你的项目,肯定会有pom.xml文件,那么让他直接本地下载就好了,target直接让他本地编译就好了。
- 因此,我们需要让git 忽略对某些文件的管理,即需要一个.gitignore文件。
1.忽略文件
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等
在主目录下建立".gitignore"文件,此文件有如下规则:
- 忽略文件中的空行或以井号(#)开始的行将会被忽略。即是注释
- 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
- 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
- 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
- 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#为注释
*.txt #忽略所有 .txt结尾的文件,这样上传就不会被选中!
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
2.idea中使用Git
1. 构建项目
-
先创建一个maven工程,并编写一个简易demo并运行,如下:
-
在此项目的根目录下,创建.git文件,使这个项目被git管理。
-
我们会看见两个变化的地方。第一,工具类添加了一些其他的东西,第二,文件名颜色发生改变了。
-
在项目的根目录下创建 .gitignore文件 忽略某些不必要的文件。
target # 忽略target目录下的所有文件 .idea # 忽略.idea文件 *.jar # 忽略jar包 *.war # 忽略war *.iml # 忽略.iml结尾的文件 *.class
2. Git在idea中的相关操作
- 在idea中我们需要记住怎么操作就好了。
- 下面是常用的按键位置:
3. 将当前项目push到码云仓库
- 不必先add,直接点击提交按钮添加到本地仓库。
- 将本地仓库push到远程仓库,点击push按钮,remote远程仓库。
- 在码云中,查看。
4. 将远程仓库 pull拉取到本地
- 在idea中,VCS中下找到Git---->找到clone,点击。
- 查看内容,是否一致。
5. 提交冲突
- 分别让两个项目都对demo01 修改,如下:
- 先让F盘的提交到远程仓库,然后再让E盘的提交到远程仓库。
- 接下来让E盘的项目也提交。却会出现如下错误:
- 之后保留你想要的,然后重新提交,push即可。但是这里可能会出现一个bug,就是我选择了E盘的demo 那句话,此时,使用idea的提交与push还是失败,因为在你提交的时候,idea认为你与之前的版本没有区别,不准让你commit。但是我实际上是跟冲突后进行筛选的。此时,请打开idea下面的终端。
6. 如何分支
1. 如何创建新的分支,如dev
2. 切换分支