git问题汇总

git clone 克隆项目

默认克隆master分支

# 默认克隆master分支
git clone url
# 指定分支
git clone -b xxxbranch url

# 修改后,本地提交
# 推送远程前,先拉取当前分支的最新内容(远程无当前分支时,可以直接推送)
git pull origin xxxbranch  # 增量式
git push origin xxxbranch
  • 后续也是在对应的分支上,push(推送)/ pull(更新);
  • git命令行操作必须在仓库的根目录
  • 本地推送到远程的目录中不包含的远程文件,则在远程删除(覆盖式)。
  • 分支合并时,合并的目录&文件名,以覆盖的方式合并到目标分支;目标分支中原来的没有被覆盖的文件则删除。
  • git pull 拉取更新是增量式
  • 尽量不要多人修改同一个文件,会产生冲突!!
     

创建分支

# 当前分支复制,拉出新分支
git checkout -b new_branch

# 查看分支
git branch -v
# 切换分支,切换前 原分支需要提交
git switch xxbranch #
# 切换分支时,注意保存修改,提交本地 

# 删除分支
git branch -d xxbranch  # -D

# 合并分支
git switch b1
git merge b2  # 将b2合并到b1分支
  • dev分支的内容更新后,pull 拉取更新;
  • 创建新分支release,并pull远程release(存在该远程分支的情况下);
  • 然后将更新后的dev分支,本地合并到release(覆盖式),提交本地;
  • 最后推送到远程release分支。
     

分支合并

  1. 本地合并,一个b1分支合并到b2分支;
  2. 个人仓合并,一个dev分支 合并到 release分支
  3. 个人仓向公共仓合并,对等分支或交叉分支合并。
  4. 公共仓fork到个人仓后,后续公共仓的更新、分支创建都不会同步到个人仓,只有本地pull公共仓,进行更新,然后提交到个人仓,最后向公共仓合并。
  5. 本地新建的分支是落后于远程分支的,必须pull,然后修改,提交。
  6. 合并到公共仓冲突时,若无法解决冲突,则可以考虑删除个人仓库(合并自动关闭),然后重新fork,重新克隆到本地,修改、提交、合并(pull request)…
     

gitignore文件

.gitignore文件用于忽略仓库的一些文件,不推送到远程仓库(会提交到本地仓库)。
如:
在这里插入图片描述
.idea是用户pycharm的配置信息;
.vscode是vscode工具的配置信息;
cache是缓存文件或者临时的文件

  • 会扫描每个目录,去忽略目标文件
  • 第一次提交前就要编辑好.gitignore,确定要忽略那些文件;否则后续可能出现不符合预期的情况;
  • .gitignore 谨慎使用!!谨慎忽略文件。
  • 不想提交的文件,可以提前删除,然后再提交。
     

提交代码被拒

Updates were rejected because the tip of your current branch is behind its remote counterpart. Integrate the remote changes (e.g. ‘git pull …’) before pushing again.
若远程仓库没有对应的分支,则可以直接推送;
若有分支,则需要pull拉取更新,然后再推送。
报以上错误,因为推送时, 本地仓库分支的版本低于远程的版本

解决:pull 合并更新

# 拉取远程, 并合并
git pull origin  xxxbranch

# 推送
git push origin xxxbranch

切忌强制推送,会使用当前仓库进行远程覆盖!后续合并到公共仓也可能冲突。
 
 

合并后可能产生冲突

在这里插入图片描述
找到冲突的文件,修改冲突的部分,并重新提交,推送。

fatal: refusing to merge unrelated histories

在使用git pull拉取更新,合并分支内容时,报错!
解决:

git pull origin b1 --allow-unrelated-histories

创建分支解决bug

创建临时分支(复制),在临时分支解决bug,然后合并到主分支(覆盖),即可解决。
 

解决码云出现git@gitee.com: Permission denied (publickey).

因为这是ssh地址,需要配置ssh公钥

  1. 生成ssh秘钥
# git bash  生成rsa 非对称性秘钥
ssh-keygen -t rsa -C "注释信息"
# 一直回车

# -t type  类型
# -C 注释信息
  1. 找到ssh公钥
# windows  /C/User/lenevo/.ssh/id_rsa.pub
# 打开复制即可
  1. 配置gitee的ssh 公钥
    在这里插入图片描述
    在这里插入图片描述
  2. 然后就可以使用ssh的仓库地址,推送仓库,从而保证连接的安全性。

不再需要用户名、密码

gitee报错“remote: [session-1f47159e] Access denied“的解决方法

属于账号切换问题

$ git config --system --unset credential.helper

# 重新推送https地址(需要gitee用户名、密码)
git remote -v
git remote add origin https://xxx
git remote remove origin htts://xxx
git push origin master

# 重新输入用户名、密码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

laufing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值