git 相关问题与解决方案

git分支创建(从master或者特定分支都可以创建分支)

选择一个专用目录下右击打开git bash

# 环境配置
git config --global user.name "Your Name" # 修改为你的用户名
git config --global user.email "email@example.com"  # 修改为你的邮箱

# 初始化仓库
mkdir 文件夹名
cd 文件夹名
git init

# 克隆仓库代码(克隆master分支或者其他指定分支都可以)
git clone <仓库URL>    # 不同仓库地址不同,默认克隆master代码
git clone -b <分支名> <仓库URL>   # 克隆指定分支代码

# 创建分支
cd 文件夹名  # 此处文件夹名是上一步clone出来的文件夹
git checkout -b 分支名  #自己创建一个分支的名字

# 将本地库推送到远程库上
git push origin 分支名  #上一步创建的分支名

如何将本地代码提交到创建的分支

# 将本地库推送到远程库上
git add .
git commit -a -m '修改ID' # 修改ID填写的内容可以是修改的次数、提交的修改内容等等能够区别每次提交即可
git push origin 分支名

定期拉取master内容到自己的分支

      假设你正在开发一个新功能,还没开发完成。但是团队成员A最近开发了B功能,这个功能最近上线后合并到master了,此时你要拉取master最新代码到你的分支中。

# 1. 首先要将本地修改的代码推送到自己创建的分支上
git add .
git commit -a -m 'fix' 
git push origin 分支名

# 2. 切换到master主分支上
git checkout master

# 3. 将master更新的代码拉取到本地
git pull

# 4. 再切换到自己的分支上, 假设为: myTree
git checkout myTree

# 5. 合并master到自己的分支myTree上
git merge master

# 5、提交合并后的代码
git add .
git commit -m "merge master"

# 6、提交到远程仓库
git push origin myTree

git拉取master被覆盖,如何恢复

git reflog  # 查看提交记录,找到对应的commitId
git reset --hard 版本号   # 如git reset --hard HEAD@{n}即可回到对应的版本

git push到远程仓库出错

① ! [rejected] error: failed to push some refs to ‘…….git’

错因1:可能是因为在网页中手动修改了远程仓库中的文件,导致一些文件在本地仓库和远程仓库上不一致,故而引发该错误。

对应解决方法:使用命令 git pull --rebase origin 分支名 将远程仓库同步到本地,然后再重新add、commit、push就行了。

② Please commit your changes or stash them before you switch branches

      从当前分支想要切换到另一个分支,但是由于当前的修改没有提交,所以会提示【Please commit your changes or stash them before you switch branches.】
      但是自己这个分支的功能还没有开发完,去commit提交的话感觉不完整。这时候如果要切换到其他分支的话就可以执行git stash。
      git stash这条指令的作用就是将已经修改但未提交的代码隐藏起来,执行完之后代码回复上一次提交的状态,不会展示出已经修改的代码,然后再执行git checkout就可以进行切换了。
      当又回到之前正在开发的分支时,需要执行git stash pop这条指令来还原之前隐藏的代码。

③ interactive rebase in progress;onto

      由于之前使用过 git pull --rebase origin 命令拉取代码,使用过git rebase执行代码覆盖,但是上一次进程还没有完成导致,解决方法:

git rebase --continue

      执行之后,需要重新提交,解决一下当前的代码冲突之后重新提交直至没有rebase提示,就可以正常提交了。解决冲突后,如果此时还出现rejected错误,可以考虑执行

git push origin 分支名称 -f   # 强制推,覆盖原来上传的所有内容, 
# 注:除非你确定本地的分支比远程的分支完善,不然不要使用这条命令

④ git clone 报错HTTP Basic: Access denied

       原因:本地git配置的用户名、密码与gitlabs上注册的用户名、密码不一致。解决方法:进入控制面板 —> 用户账号 —> 管理你的凭据(有的电脑是凭据管理器)—> windows凭据 —> 普通凭据,在里面找到git,点击编辑密码,更新为最新的密码,如下图所示。密码更新完成后,重新打开git命令窗口进行clone/commit/push即可。
在这里插入图片描述

⑤ git push 到自己分支 报错remote: You are not allowed to push code to this project

       报错如下图所示,一般这种情况是该项目没有对你开放“开发者权限”,需要找到管理员确认一下,开启开发者权限即可。
在这里插入图片描述

⑥ git分支名后面多了 | REBASE 怎么解决

可以试一下 git rebase --continue
           或者 git rebase --skip
           或者 git reset --abort
           或者直接删除当前目录下的.git/rebase-apply
测试使用git reset --abort后问题解决,可以重新提交代码。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值