git安装
盲选下一步就可以了,安装路径可以自定义选择,比如我的安装路径是D:\git\install\Git
git卸载其实就是git的反安装,首先删除git的环境变量(如果有的话),然后就在控制面板上直接删除就可以了。
git的配置
git 的配置都是在git的安装目录下相关的配置文件里面,也就是git的配置本质上是git的一些读写文件而已
git的相关配置文件的路径
(1)系统配置,是在
安装路径/etc/gitconfig
文件下,如D:\git\install\Git\etc
(2)用户配置(global),在
个人用户路径下/.config
,如C:\Users\Administrator/.config
#查看系统的config
git config --system --list
#查看当前用户(global)配置
git config --global --list
#配置自己的用户名
git config --global user.name "your name"
#配置自己的邮箱
git config --global user.email "your email"
git也可以直接配置环境变量,但是配置环境变量是在为了能够在全局使用,但是只要正确安装好git,鼠标右键就可以在任意地方打开git,而且git默认会在path中配置环境变量的。
git的一些基本理论
git本地上有三个工作区域:工作目录(Working Directory)、暂存区(Stage/index)、资源区(Repository/Git Directory)。加上远程的git仓库(Remote Direcyory)的话可以分为四个,转换关系如下:
Working Directory:工作区,平时存放项目代码的地方
Stage/index:暂存区,用来临时存放改动的,它的本质是一个文件,保存即将提交的文件列表信息,看不到
Repository/Git Directory:仓库区,安全存放数据的位置,这里有提交的所有版本的数据,其中HEAD指向最新放入仓库的版本
Remote Direcyory:远程仓库,托管代码的服务器,比如说github、gitee
git的工作流程
- 在工作目录中添加、修改文件;
- 将需要进行版本管理的文件放入暂存区域;
git add .
- 将暂存区域的文件提交到git仓库;
git commit
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
git项目的搭建
创建工作目录与常用的指令
工作目录(Working Directory)一般的都是帮助管理的文件夹,可以是项目的目录,也可以是一个空目录,建议不要有中文
本地仓库搭建
创建本地仓库有两种方法:一种是创建全新的仓库,另一中是克隆远程仓库
- 创建全新的仓库,需要到git管理项目的根目录执行
#在当前目录上创建一个git代码库
git init
执行之后就会看到项目多了一个.git
的隐藏文件,所有的版本信息都在这个目录上
- 克隆远程仓库,就是将远程服务器上仓库完全镜像到本地
#克隆一个项目和他的整一个代码历史(版本信息)
git clone [url]
我们可以去gitee或者github克隆一个进行测试。
git文件操作
文件的四种状态
-
untracked
:未追踪,此文件在文件夹中,并没有加入到git库,不参与版本控制,可以使用git add filename
转变成staged
。 -
unmodify
:文件已经入库,没有修改,也就是版本库中的文件快照内容和文件夹中完全一致,这种类型的文件有两种去处,如果它被修改,变成modified
,如果使用git rm
就会变成untracked
文件。 -
modified
:文件已经被修改,仅仅只是修改,并没有进行其他的操作,这种文件也有两种去处,一种是通过git add filename
可以进去到暂存staged
状态,使用git checkout
则丢弃修改过,返回到unmodify
状态,这个git checkout
就是从库中提取文件,覆盖当前修改。 -
staged
:暂存状态,执行git commit
就修改同步到库中,这时候库的文件和本地文件又变为一致,文件为unmodify
状态执行git reset HEAD filename
取消暂存,文件变成modifiled
。
查看文件状态
#查看文件状态
git status [filename]
#追踪文件,添加文件到暂存区
git add filename/.
#提交暂存区内容到本地仓库,-m是提交信息
git commit -m "消息内容"
忽略文件
我们有一些文件不需要纳入到版本控制中,就可以在主目录中创建.gitignore
文件,这个文件的规则如下:
- 忽略文件中的空行,或者#号开始的行。
- 可以使用Linux的通配符,
*
星号代表任意多的字符,?
问号代表一个字符,[]
方括号代表可选字符范围,{}
花括号代表可选的字符串。 - 如果名称前面有一个感叹号
!
表示例外,不会被忽略。 - 如果名称前面是一个路径分隔符
/
,表示要忽略的文件在这个目录下,但是子目录中的文件不会被忽略。 - 如果名称最后面是一个路径分隔符
/
,表示要忽略的是这个目录下这个名称的子目录,而不是文件(默认是文件或者目录都忽略)。
*.txt #忽略所有的.txt结尾的文件,这样上传是不会被选中的
!lib.txt #但是lib.txt除外
/temp #仅仅忽略项目根目录下的TODO文件,不包括其他目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #忽略doc/notes.txt但是不包括doc/server/arch.txt
生成ssh秘钥
#进入到C:\Users\Administrator\.ssh目录
#生成公钥
ssh-keygen
把生成的秘钥直接就复制到github或者gitee就可以了。这样就实现把远程仓库和本地仓库绑定在一起
将本地仓库的文件提交到远程仓库
如果是有新内容更新的,都需要进行git init
操作
git init
git add .
git commit -m
git push
idea上集成git
- 新建项目,绑定git(最简单就是在新建的项目中,把本地上已经绑定了git的文件直接复制过来就可以了)
- 修改项目,使用idea操作git
idea上集成了git的所有命令,可以使用命令行打开,也可以直接在idea图形界面上打开
git的分支
#查看本地仓库所有的分支
git branch
#查看远程仓库所有的分支
git branch -r
#新建一个分支,新建成功后,当前还是停留在master分支上
git branch [branchName]
#新建一个分支,并且跳转到这个分支中去
git checkout -b [branch-name]
#合并分支
git merge [branch]
#删除分支
git checkout -d [branch-name]
#删除远程分支
git push origin --delete [branch-name]
master分支一般都比较稳定,是用来发布新版本的,建议不要在上面进行开发,一般开发的时候新建dev项目,等项目开发稳定后合并到master上就可以发布了。