Gitbash命令行管理项目

现在写代码一般都用各种工具集成好的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'.

因为当时时间比较紧,并未找到解决这个问题的方法,而是重新拉项目,将修改复制进去提交的,项目不大,且修改的不多,重新拉下也可
现在有时间了,但是复现不出来,只能根据网上解答记录下 https://blog.csdn.net/guoguo295/article/details/8205875

问题原因

可能是因为当时分支是在 *(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命令切换分支 https://blog.csdn.net/zhanghanlun/article/details/81806077
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

posted @ 2020-09-04 11:59  iHADream  阅读(417)  评论(0编辑  收藏  举报