安装教程之类的,这里就不多做介绍,因为网络上一搜就有,还有各种情况的处理,多说无益
这里只记录一下我认为是重要的关于git的知识以及一些会经常使用到的命令
工作区域
- 本地:
- 工作目录(Working Directory)
- 暂存区(Stage/Index)
- 资源库(Respository或Git Directory或本地仓库/History)
- 远程remote:远程git仓库
工作文件夹与.git
工作流程
- 在工作目录添加修改文件
- 将需要进行版本控制的文件放入Stage
- 将Stage区的文件提交到git仓库(本地)
对应三种状态:已修改(modified)、已暂存(staged)、已提交(commited)
项目搭建
常用的6个命令
本地搭建项目
git init #可以在目录下新建一个本地git仓库
克隆远程仓库
git clone url #url-远程仓库的路径
删除项目
把.git文件删掉
文件操作
文件的状态
- untracked:未跟踪的,没有包含到git仓库里面,
add
可以添加到暂存区,变成 staged - staged:文件的修改或新加入只是存在于暂存区,还没有添加到git仓库。
- 通过
commit
提交到git仓库,变为 unmodify - 通过
git reset HEAD filename
可以取消暂存,之前是什么状态就是什么状态
- 通过
- unmodify:文件包含在git仓库里面,接受版本控制,且git仓库里面的文件与工作目录的没有差别,也就是说上一次提交之后就没有修改文件。
- 修改文件之后,文件就是已经修改过的状态 modified
- 通过
git rm
可以移出版本库,变成未跟踪的文件
- modified:修改过的文件,与库中的文件不同
查看文件状态
git status [文件名]
git add .
git commit -m ""
忽略文件
一些不想要接受版本控制的文件,但是又在git项目下,就可以用这个来忽略一些文件
.gitgnore文件
# 注释
*.txt #忽略所有txt文件
!aa.txt #忽略所有txt文件了,但是aa.txt除外
/temp #忽略temp目录以上的,但是temp目录不会忽略
build/ #忽略所有build目录下的文件
doc/*.txt #忽略doc/nate.txt, 但是不会忽略doc/test/ar.txt
码云
设置本机绑定SSH公钥,实现免密码登录
# 在用户目录下的.ssh文件
# 生成公钥
ssh-keygen -t rsa #后面是加密方式
之后在码云中添加公钥
IDEA集成Git
只需要把 远程克隆的项目目录复制进 新建的项目目录
刷新一下
Git分支
可以在历史版本上,分出几个新的分支,每个分支可以往不同的方向发展
多人合作也可以建不同的分支
之后可以合并,但是合并会出现代码冲突,就必须解决,选择哪一个
分支操作
git branch # 列出所有分支
git branch -r # 远程分支
git branch dev # 新建一个dev分支
git checkout -b dev # 切换到dev分支
git checkout -d dev # 删除dev分支
远程仓库
#本地新建分支提交到远程之后可以直接建立远程分支
#删除远程仓库
git branch origin --delete dev
git branch -dr dev
合并操作
git merge dev #将dev分支合并到当前分支
冲突的话,选择保存哪个就行了