Git学习使用(1)
工作使用Git,遇到的问题场景:
想要不提交本地的几个文件,比如本地的数据库连接,每个开发人员的本地库连接不同,没必要同步。
区分两种情况
一、该文件未被追踪,是本地新增文件
这种情况也有两种解决办法:
1、创建 .gitignore文件,实现忽略执行文件,例:*.out,out结尾的文件都会忽略add到仓库
通常参考在github上的一个项目就是维护各类语言的忽略文件。直接到github,搜索gitignore即可
2、在本地仓库的.git/info/exclude文件中,添加想忽略的文件,同上
这两种方法是实现效果是一样的,区别在于,.gitignore文件是需要上传到远程仓库,团队的其他
开发人员需要下载这个文件遵循对应的忽略规则,而本地的exclude则不需要上传到远程仓库,
可以只对本地仓库中新增的想要忽略的文件去执行。两者共同点都是忽略未被track的文件
二、该文件已经被上传到远程仓库,是已经被追踪的文件(我遇到的问题是这种情况)
git update-index --skip-worktree mall-admin/src/main/resources/application-dev.yml
上述命令实现对本地已经被追踪的指定文件,在commit时执行忽略
git ls-files -v | grep ^S,可以通过该命令查看别手动忽略的文件清单:
忽略指定文件操作该方法确实可以很好的解决本地改动的文件不上传问题,明确这个命令不会影响线上,
仅是本地操作,但当切换分支时,会提示有未提交的变更记录,禁止切换分支,报error。
切换分支errorgit stash 此时又需要使用它来解决这个问题,该命令是会暂存工作区内容,将数据存在缓存,
切换分支修改完毕后,切换原分支。
第一步:git update-index --no-skip-worktree mall-admin/src/main/resources/application-dev.yml
将原本忽略的文件恢复正常。
第二步:执行git stash
第三步:切换到想去分支git checkout master
git stash执行第四步:在master修改完成后,切回dev分支
第五步:git stash apply,将之前缓存数据恢复。