git问题汇总

文章目录

  • git clone 克隆项目
  • 创建分支
  • 分支合并
  • gitignore文件
  • 提交代码被拒
  • 合并后可能产生冲突
  • fatal: refusing to merge unrelated histories
  • 创建分支解决bug
  • 解决码云出现[email protected]: Permission denied (publickey).
  • gitee报错“remote: [session-1f47159e] Access denied“的解决方法

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文件用于忽略仓库的一些文件,不推送到远程仓库(会提交到本地仓库)。
如:
git问题汇总_第1张图片
.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

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

合并后可能产生冲突

git问题汇总_第2张图片
找到冲突的文件,修改冲突的部分,并重新提交,推送。

fatal: refusing to merge unrelated histories

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

git pull origin b1 --allow-unrelated-histories

创建分支解决bug

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

解决码云出现[email protected]: 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 公钥
    git问题汇总_第3张图片
    git问题汇总_第4张图片
  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

# 重新输入用户名、密码

你可能感兴趣的:(git分布式版本控制,git,github)