一、安装git
去官网下载(www.git-scm.com),然后直接安装就行
二、git的一些基本知识和基本命令(个人理解,错误请指正)
git工作流程 三棵树
在自己的工作目录修改或添加文件
将需要进行版本管理的文件,放在暂存区---------暂存区 index
将暂存区的文件提交到git仓库------------也叫head
新建文件夹,初始化git--------git init
将工作目录的文件,放到git仓库需要两步(将文件放入暂存区,将文件提交到git)------git add 文件名字;git commit -m “说明”
将工作目录的全部文件,放到git仓库--------------------------------git commit -am “说明”
查看当前项目下的文件状态--git status 红色为没有放入暂存区,绿色为放入了暂存区
将暂存区的文件,恢复到工作目录(会覆盖当前工作的同名文件)----git restore 文件名
撤销暂存区的更改,不会影响工作目录的文件-----git restore --staged 文件名
查看提交的日志,通过提交的id,可以找到提交的不同的版本---git log
reset的三种用法(不写 默认--mixed)
1、移动head的指向,将其指向上一个快照
2、将head移动后指向的快照,回滚到暂存区域
git reset --mixed head~
1、移动head的指向,将其指向上一个快照
git reset --soft head~
1、移动head的指向,将其指向上一个快照
2、将head移动后指向的快照,回滚到暂存区域
3、将暂存区的文件还原到工作目录
git reset --hard head~
回滚指定id的快照-----git reset id的前五位
回滚指定的文件----git reset 版本快照 文件名或者路径(此时head的指针不会改变)
比较暂存区和工作目录的文件---git diff(-代表暂存区,+代表工作目录)
比较两个仓库的历史快照---git diff 快照id 快照id
比较仓库和工作目录的快照----git diff 快照id(-代表仓库,+代表工作目录)
比较暂存区和仓库的快照----git diff --cached 快照id(-代表仓库,+代表暂存区)
将缓存区提交并更新最近的一次提交,不产生新的提交----git commit --amend(会进入一个编辑模式,可以编辑提交说明)
不进入编辑模式,直接提供说明,将缓存区提交并更新最近的一次提交-------------git commit --amend -m "说明的文字"
删除添加到暂存区的文件-------------git rm --cached 文件名
将工作目录和提交到缓存区的文件,重命名-----------git mv 旧文件名 新文件名
git实现分支,只是分配一个指针,指向一个快照,将这个指针删除了,快照还是存在的
创建分支----------git branch 分支(创建的分支,指向的是仓库最近的提交版本)
查看git日志,并且显示所有分支---------git log --decorate
切换分支,也就是把head指针,指向创建的分支-----------git checkout 分支名(切换分支后,会根据该分支指向的版本,还原缓存区和工作目录);git switch 分支名
切换已经删除的分支,指定一个快照id--------------------git checkout -b 分支名 快照id
以图形化的形势显示日志--------git log --decotate --oneline --graph --all
查看所有分支,*号标识的就是当前分支---------------git branch
冲突:两个分支中存在文件名相同但是同一行内容不同的文件
解决冲突:git需要你来决定保留哪一个文件,去掉哪一个文件
合并分支到本分支--------git merge 分支名(合并有冲突,冲突的文件不会提交到缓存区,还在工作目录。需要手动提交到缓存区并提交到仓库)
合并存在冲突时,终止合并---------git merge --abort
删除已合并的分支--------------------------------git branch -d 分支名
删除未合并的分支-----------git branch -D 分支名
把远程仓库克隆到本地----------git clone 远程仓库地址(如果用的是ssh地址,需要本地生成密钥,在gitee点克隆会有生成密钥的提示步骤)
将本地仓推送到远程仓库---------git push
查看当前本地仓库关联的远程仓库名和地址-------git remote -v
本地仓库与远程仓库建立连接
1、本地和远程都要存在一个仓库
2、与远程仓库建立连接------git remote add origin(远程仓库的别名,一般叫这个) 远程仓库的地址
3、推送本地分支并建立远程分支---------git push -u origin(远程仓库的别名,一般叫这个) master:master(本地分支名称:远程分支名称,名字一样可以写成master)
拉去远程仓库到本地仓库,git会自动进行一次合并,如果有冲突就合并失败,需要手动解决冲突-------git pull 远程仓库别名 远程仓库名字:本地仓库名(git pull origin master:master)
将本分子变基到目标分支--------git rebase 目标分支名(会将本分支与目标分支,分叉的提交快照,添加到目标分支上,形成一条直线)