版本控制
SVN集中式
GIt分布式
环境配置
系统配置: /GIT/etc/gitconfig
用户配置:C:/用户/用户名/.gitconfig
git config --global user.name "名称"
git config --global user.email xxxx@xx.com
基本理论
工作区域
Git本地有三个工作区域︰工作目录(Working Directory )、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下∶
项目搭建
本地初始化
git init # 在当前目录新建git代码库
远程克隆
git clone url # url 在远程服务器上找http链接
提交
git status # 状态查询
git status [文件名]# 特定查询
git add . # 将当前项目放入暂存区 (追踪)
git commit -m "提交描述信息" # 将暂存区文件提交到本地仓库
git push # 提交到远程
忽略文件
一个项目并不是所有文件都需要纳入版本控制,这时需要在提交时忽略一些文件
在主目录下新建 .gitignore 文件,此文件中遵循如下规则:
1.忽略文件中的空行或以井号(# )开始的行将会被忽略。
2可以使用Linux通配符。例如∶星号(*)代表任意多个字符,问号( ﹖)代表一个字符,方括号( [abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
3.如果名称的最前面有一个感叹号( ! ),表示例外规则,将不被忽略。
4.如果名称的最前面是一个路径分隔符(/ ),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
5.如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
*.txt # 忽略所有 .txt结尾的文件
!lib.txt # 不忽略lib.txt
bin/: #忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin: #忽略根目录下的bin文件
/*.c: #忽略 cat.c,不忽略 build/cat.c
debug/*.obj: #忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
**/foo: #忽略/foo, a/foo, a/b/foo等
a/**/b: #忽略a/b, a/x/b, a/x/y/b等
配置SSH公钥
idea集成git
在idea项目目录下新建git项目或者clone远程git
提交
分支
git branch # 列出所有本地分支
git branch -r # 列出所有远程分支
git branch 分支名 # 新建分支
git checkout -b 分支名 # 新建分支并切换过去
git merge 分支名 # 合并指定分支到当前分支
git branch -d 分支名 # 删除
master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。