团队开发git使用各种问题
参考:https://www.cnblogs.com/schaepher/p/4933873.html
问题-3:保持github上项目干净,对于在不同机器上运行会不同的文件不予维护(如.idea/workspace.xml)
建议:对于项目输出在项目目录中的文件不予维护
对于IDE自动生成且与项目所在目录有关的文件不予维护
将这些文件全都ignore之后可以呼叫队友来克隆项目验证一下
问题-2:不想用命令行
windows下我们使用idea开发,idea是可以配置git的
参考https://jingyan.baidu.com/article/922554466dcecb851748f464.html
问题-1:作死建议
如果想尝试一些容易导致很多错误的操作(比如和队友代码合并)
可以先再当前分支基础上新建test分支,然后进行测试
测试失败直接删掉测试分支,测试成功就merge一下或者回到原来分支重现操作即可
问题0:我们的github维护准则
由一人建立主仓库,并同时建立develop分支,主仓库下有了master和develop分支
然后每个开发者fork主仓库拥有自己的仓库,自己的仓库除了master分支,自己再建立一个dev分支用于开发
当个人dev分支稳定之后,可以把自己的dev分支合并到自己的master分支
当master分支基本完成一些功能后,把自己的master分支pull给主仓库的develop分支
主仓库的develop分支运行稳定后,把develop分支合并到主仓库的master分支
主仓库的master分支就是我们运行稳定的发布版本
问题1:切换分支命令忘记了
使用 git checkout master 即可切换到master分支
问题2:.idea/workspace.xml文件会记录本地相关内容,合并时会引起冲突
解决方法:忽略该文件,根目录下打开 git Bash
notepad .gitignore 创建.gitignore文件
在该文件下输入要忽略的文件 .idea/workspace.xml
然后把修改push到远程仓库,打开远程仓库,发现因为我们忽略了workspace.xml文件
所以我们的远程仓库都已经没有workspace.xml了
如果之前已经手滑提交到远程仓库了,那么我们只修改.gitignore文件是不够的
需要本地 git rm --cached <filename> 把忽略的文件删掉(不需要打尖括号!!!)
再push到远程仓库就可以了
问题3:git push不能直接使用/如何把我的代码同步到我自己的远程仓库上
解决方法:
git push origin HEAD 是把当前分支push到我们自己的远程仓库对应的分支
一般来说本地master分支都对应远程仓库的master分支
其他分支,如果建立分支的时候有明确对应哪个远程分支,那么是可以的
如果没有明确,那么改命令会运行失败
使用 git push origin HEAD:develop 指定push到哪一个远程分支即可
(目前我不确定会不会出现权限问题,应该不会,我猜)
问题4:如何把我自己的dev分支合并到我自己的master分支上
解决方法:切换到master分支
然后 git merge dev
会把指定分支合并到当前分支,无冲突的话会自动合并完成
问题5:如何把我自己代码推送给源仓库/主仓库
解决方法:参考一开始的链接里的描述,发送pull request
等待对方同意合并或给你其他反馈
问题6:如何把源仓库/主仓库的代码同步到我的本地
解决方法:参考一开始的链接里的描述,设置好upstream
git fetch upstream 即可获取团队项目最新版本
比如我想要把主仓库的develop分支合并到我的dev分支
那么切换到自己的dev分支,然后git merge upstream/develop即可
问题7:如何删除本地分支
解决方法:git branch -d 要删除的分支名字
问题8:github项目克隆到本地后找不到master外其他分支
解决方法:git checkout -b 本地分支名字 origIn/dev
即可让新建的本地分支继承远程仓库的dev分支
问题9:我在开发分支下作死了现在有好多冲突我不想一个一个改想回退到之前的版本
解决方法:git log 查看git日志
然后找到想要回退到版本 git reset --hrad xxxxx(版本号前5位)
参考:https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192
问题10:我在本地新建了分支,想让他对应到我一个远程分支,怎么操作
解决方法:git branch --set-upstream-to=origin/remote_branch local_branch
关联之后,直接git push就会推送到关联的远程分支了