现在写代码一般都用各种工具集成好的IDE直接编写,比如IDEA集成Git使用就比较方便,当没有集成的工具时,再使用命令感觉不熟,在此记录下使用中常用到的命令。
本次的场景是需要从git上下载文档,进行修改更新。
1.首先克隆git项目到本地
取出git项目地址的http地址
在想要放项目的文件夹中打开git bash
执行 git clone http://****/product_doc.git
>如果要用ssh地址下载git的话,需要配置公钥私钥,暂且留空
2.切换/检出到自己需要分支
git branch //查看当前所在分支
git checkout -b apidoc origin/develop //切换到develop分支,本地命名为apidoc
3.工作区修改完文件后,添加文件到缓存区,本地仓库
git status //查看当前项目中文档状态,红色表示未添加git控制的,绿色表示已添加到git控制未commit
git add . //添加当前目录下工作区中所有未被git控制的文件到缓存区
git commit -m "此处写备注" //将缓存区的文件提交修改到本地仓库
git pull origin apidoc //拉取远程apidoc分支代码,保证远程和本地代码除自己修改部分,其他代码一致
4.将本地仓库文件推送到远程仓库
git push -u origin apidoc //将本地仓库中的修改推送到远程仓库的新分支,因为我们开发分支是被protected的,所以只能提交新建分支,然后合并
遇到问题:
问题1:! [remote rejected] master -> master (pre-receive hook declined)
问题原因:
该分支被protected,权限不允许不能进行提交
解决方法:
有三种解决办法,
一是取消该分支的protected权限;
二是修改要提交protected分支用户的权限;
三是提交到自己新建的分支,然后提交一个合并请求。
问题2:Branch '' set up to track remote branch '' from 'origin'.
因为当时时间比较紧,并未找到解决这个问题的方法,而是重新拉项目,将修改复制进去提交的,项目不大,且修改的不多,重新拉下也可
现在有时间了,但是复现不出来,只能根据网上解答记录下
问题原因:
可能是因为当时分支是在 *(no branch) 状态下
解决方法:
有两种解决方法
一是新建一个分支 git checkout -b newBranch;
二是将当前分支 *(no branch)合并到其他分支 develop,则首先执行git log命令,记住第一行的id号,
然后执行git checkout develop命令,此时出现的第一行信息中也会出现一个id号,与之前执行git log中第一行出现的id号是一致的,
此时就已经切换到了开发分支上来了,然后执行git merge id将*(no branch)软件合并到开发分支;
问题3:error: src refspec dev does not match any
出现环境:上文写的1,3,4步骤之后
问题原因:
Reference Specification简称refspec
在执行push或fetch操作时,refspec用以给出本地Ref和远程Ref之间的映射关系
问题应该是出在了本地分支和远程当前分支不匹配上
解决方法:
meng@LAPTOP-RS4U1TR2 MINGW64 ~/Desktop/7天/product_doc (develop)
$ git push -u origin dev
error: src refspec dev does not match any
error: failed to push some refs to 'http://****/product_doc.git'
注意,我本地的分支是develop,而我要提交的是dev分支,需要修改本地分支的名称或者新建一个名为'dev'的本地分支
方法一:git branch -m develop dev //git branch -m oldName newName
方法二:git checkout -b dev //git branch -b newBranchName
上述操作完之后记得pull下
关于这个问题网上找个一大堆文章,其中这位老哥说的比较好,https://www.wandouip.com/t5i358509/
命令总结:
Git命令切换分支
Git语法之Checkout使用 https://www.jianshu.com/p/37f3a7e4a193
切换分支:git checkout existBranch
新建分支:git checkout -b newBrach
Git branch使用 https://www.jianshu.com/p/305723736c7c
修改分支名称:git branch -m oldname newname
查看本地分支:git branch -a