git 开发基本使用 (过滤文件,解决冲突)
在多人合同开发时,在没有很好地 计划时,开发人员彼此之间代码会有一些重叠(代码冲突)
解决代码冲突(dev分支提交代码 跟 master分支冲突)
思路:现在dev分支 拉取最新代码 切换到master分支 同步最新代码 在dev分支 合并master 在本地解决冲突,再 提交
1、git checkout dev 或 git checkout -b dev 切换到dev分支
2、git pull 或 git fetch origin dev 同步下dev 最新代码
3、git checkout master 切换到master分支
4、git pull 同步下master 最新代码
5、git merge master 将master代码同步到dev分支上
6、 本地解决冲突
7、git add . ----- git commit -m '...' ----- git pull ----- git push 完美
git fetch <远程主机名> 将某个远程主机的更新,全部取回本地。也可git fetch origin master 取回origin主机的master分支。
实现代码不上传 同步远程代码
1、在idea中,支持不提交本地更改,而直接拉取代码
2、在git bash中,使用如下命令:
git stash list:查看本地的暂存区栈
(1)git stash:暂存本地修改
(2)git pull:拉取最新代码
(3)git stash pop 或者可以使用:git stash apply stash@{0} :回到拉取之前的本地状态;此时若出现文件冲突,酌情解决即可;至于是git stash apply stash@{0} 还是git stash apply stash@{1} ,可以通过 git stash list 查看去确定。
可选 git stash clear:清空本地暂存栈信息
Git过滤文件和文件夹
第一步:添加".gitignore"文件
往项目根目录添加一个文件".gitignore"。这文件和".git"文件夹同级。
但是在windows下无法创建".gitignore"文件名,必须把文件名改成这样".gitignore.",
在文件名最后加一个英文句号就可以了。
第二步:设置过滤条件
bin/ 过滤所有bin文件夹
obj/ 过滤所有obj文件夹
ValorNAV_deploy/ 过滤所有ValorNAV_deploy文件夹
*.dll 过滤所有dll文件,这个最好不要使用dll,因为项目中像lib文件夹我们会放一些dll包。
第三步:把".gitignore"文件提交并且push到服务器
其它的协作成员可以通过pull获取这个文件,其它人的过滤规则保持一致了。
1.如果新建一个空的Git仓库。直接拉取就可以了。
2.如果是一个已经使用了Git仓库,如果需要应用规则,则需要通过命令把相应要过滤的目录
的缓存删除。
git rm --cached <文件名> 删除文件的缓存
git rm --cached -r <目录名> 删除目录下的所有文件的缓存
通过上面的命令把缓存删除后,commit后再push到服务器。
其它的团队成员可以直接pull,过滤功能就能正常使用了。
git update-index --assume-unchanged 的真正用法是这样的:
你正在修改一个巨大的文件,你先对其 git update-index --assume-unchanged,这样 Git 暂时不会理睬你对文件做的修改;
当你的工作告一段落决定可以提交的时候,重置改标识:git update-index --no-assume-unchanged,于是 Git 只需要做一次更新,这是完全可以接受的了;
提交+推送。