【git add忽略某个文件】 先添加所有文件,再排除某个文件
git add -u
git reset -- static/js/dashboard.js
【删除远程文件】 对于一个已经在远程仓库中存在的文件,本地ignore文件加上该文件上传之后是不会删除成功的
添加文件到远程仓库
1.在根目录下新建一个text文件,文件里添加内容
测试ignore
2.将工作区全部文件添加到缓冲区
git add .
3.将缓冲区文件添加到本地仓库
git commit -m "将测试文件上传到远程仓库”
4.将本地仓库内容上传到远程仓库
git push
查看远程仓库,测试文件已经上传成功
ignore文件添加文件名
1.在ignore文件中添加忽略文件
nohup.out
opbin/log
runtime
vendor
composer.lock
/report
.idea
.DS_Store
bart
2.提交到缓冲区
git add .
解释:这个时候缓冲区是存在bart文件的,ignore文件只会阻止这次将bart文件加到缓冲区,但是缓冲区之前已经有bart文件,并不会删除
3.缓冲区提交到本地仓库
git commit -m "ignore 添加bart"
4.本地仓库上传到远程仓库
git push
远程仓库还是会有bart文件
解决方法
1.先把缓冲区清理干净,里面的文件全都删除掉
git rm -r --cached .
可以看到删除文件中包含bart文件,也就是此时缓冲区已经没有bart文件
2.把所有文件添加到缓冲区
git add .
这里工作区有bart文件,但是ignore文件阻止了bart文件添加到缓冲区,缓冲区没有bart文件
3.缓冲区添加到本地仓库
git commit -m "清理缓冲区后上传文件"
4.本地仓库文件上传
git push
这个时候远程仓库就没有bart文件了
上面操作适用于在本地工作区不想删除文件,只是不想上传到远程仓库,如果想要从工作区就删除这个文件,可以直接本地删除,然后提交到缓冲区,一路上传即可
附注:
或者从第一步就直接把文件从缓冲区删除掉
git rm --cached bart/internal/dao/repository/mongodb/技术文档.md
然后commit ,push即可
【合并到master分支有冲突】
提示
The source branch is 45 commits behind the target branch
说明当前分支从master分出来后,有人在master分支提交了新的代码
解决方法:
//本地切换到master分支
git checkout master
//git pull 远程最新代码到本地
git pull
//再切换到自己分支
git checkout dev
//合并master分支
git merge master
//这个时候会有冲突,git diff查看哪里有冲突,IDE也会标红有冲突的地方
git diff
【本地和远程分支分散】
远程和本地的父commit是一样的,但是两个commit是不在一条线上的,可能是有人merge到了远程,本地同时也commit了导致的,这个时候需要rebase 把远程的最新commit合并
解决:
git pull --rebase
本地 git log --oneline 就会看到远程的commit已经合并进来了