当前位置:   article > 正文

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_fatal: unencrypted http is not supported for githu

fatal: unencrypted http is not supported for github. ensure the repository r

【GIT】错误集锦及解决方案

【GIT】本地和远程test关联

  1. git branch -u origin/test 本地和远程test关联
  2. 返回:Branch 'test' set up to track remote branch 'test' from 'origin'.关联成功
  3. 备注:确保当前本地分支正确。

【GIT】当前本地分支与远程关系解除(及解除后再次绑定)

  1. git branch --unset-upstream 当前本地分支与远程关系解除
  2. 返回:Branch 'test' set up to track remote branch 'test' from 'origin'.关联成功
  3. 再次绑定
  4. git branch --set-upstream-to origin/dev-caoke
  5. 返回:Branch 'test' set up to track remote branch 'test' from 'origin'.关联成功

【GIT】分支校验

git branch -r 参看远程分支

git branch -a 参看本地及远程分支

git branch -vv 参看本地分支和远程分支的关系

【GIT】基于IDEA使用GIT提示:无法将“awk"项识别为 cmdet、数、脚本文件或可运行程序的名称。请检查名称的排写,如果包括

解决:不要在IDEA上用。 直接项目文件夹,右击->git Bash Here,原始界面运行命令

【GIT】看时间段内个人代码行数(记得修改作者名跟时间段,其他不要动)

git log --author=作者名(下面那个可以看) --since='2023-03-11 00:00:00' --until='2023-04-30 23:00:00' --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s,total lines: %s", add, subs, loc }' 

【GIT】看个人名称

git log --pretty="%an"

【GIT】源仓库新建分支同步到fork的自有仓库

  1. 1:git checkout -b 分支名 mindspore/分支名
  2. (切换并新建)本地分支并将远程仓库mindspore的分支同步过来
  3. mindspore:源仓库
  4. 2:git push -u origin 分支名
  5. 将本地新建的分支推到远程仓库(自有的,非源)
  1. 这条命令git checkout -b r1.8 mindspore/r1.8的意思是在本地仓库中创建一个名为r1.8的新分支,并将远程仓库mindspore中的r1.8分支的内容拉取到新分支中。
  2. 具体解释如下:
  3. git checkout -b r1.8:这部分表示要创建并切换到名为r1.8的新分支。如果该分支已经存在,则直接切换到该分支。如果不存在,则创建该分支,然后切换到新创建的分支。
  4. mindspore/r1.8:这部分表示要从远程仓库mindspore中的r1.8分支拉取内容。mindspore是源仓库的名称,r1.8是源仓库中的分支名称。
  5. 综合起来,执行这条命令会在本地仓库中创建一个名为r1.8的新分支,并从远程仓库mindspore的r1.8分支中拉取内容到这个新分支中。这样您就可以基于源仓库的r1.8分支进行后续的开发工作或跟踪源代码的变化。
  1. git push -u 命令用于将本地分支的更改推送到远程仓库,并建立本地分支与远程分支的追踪关系。
  2. 具体解释如下:
  3. git push: 用于将本地分支的更改推送到远程仓库。
  4. -u 或 --set-upstream: 用于在推送的同时,建立本地分支与远程分支的追踪关系。
  5. 当您第一次将本地分支推送到远程仓库时,可以使用 git push -u 命令。这将会在推送的同时,将本地分支与远程分支关联起来,使得后续的 git pull 或 git push 命令可以自动识别并操作关联的远程分支。
  6. 使用示例:
  7. 假设您当前位于本地分支 feature 上,并且该分支在远程仓库中尚未存在。执行以下命令即可将本地分支推送到远程仓库并建立追踪关系:
  8. shell
  9. git push -u origin feature
  10. 执行上述命令后,本地分支 feature 的更改将被推送到名为 origin 的远程仓库,并且本地分支 feature 与远程分支 origin/feature 建立了追踪关系。此后,您可以直接使用 git pull 或 git push 命令而无需显式指定远程分支。

原主:https://blog.csdn.net/weixin_43947456/article/details/125456108

【GIT】push rejected

  1. 合并提交出现问题
  2. 出错原因:是因为远程repository和本地的repository冲突导致的,在多人协同机制下,远程库的代码可能已经被其他程序员更新,而你的本地库还停留在未更新前前的状态,这种情况下的push会被远程库拒绝。(其实远程库判断的版本依据就是根据commit的history)
  3. **解决办法:**先在已有代码的分支上创建一个新的本地开发分支,然后用之前旧分支去pull一下远程库中的代码,然后将新创建的本地开发分支merge到旧分支上,即可push。

【GIT】本地分支推到源仓库

  1. git push -u mindspore r1.8:r1.8
  2. 将本地分支r1.8推送到远程仓库mindspore的r1.8分支上,并且建立起本地分支r1.8与远程分支的追踪关系。

【GIT】git报不支持http,需要使用https

  1. 报错:
  2. fatal: Unencrypted HTTP is not supported for GitLab. Ensure the repository remote URL is using HTTPS.
  3. 解决:
  4. git remote set-url origin 远程仓库地址的http+s

【GIT】gitfork使用

  1. git fork的使用
  2. 拉项目:
  3. #克隆fork仓库
  4. git clone http://gitlab.cmss.com/yangya_ext/cmdb-cloud.git (这里是fork下来的地址)
  5. #本地仓库与源远端仓库建立连接并 起个 别名
  6. git remote add upstream http://gitlab.cmss.com/YY3DEV/bc-guard/cmdb-cloud.git (这里是源仓库地址)
  7. 更新用这两条:
  8. #获取源远端仓库信息
  9. git fetch upstream
  10. git merge upstream/feature_aiops_v3.8.2
  11. (更新提示不支持http,需要使用https。看git问题解决方案)
  12. fork上传,拉取
  13. 上传:正常上传,找管理员审核
  14. 拉取:正常拉,好像是自己的远程仓库。 拉源仓库更新,更新那两条
  15. 下面将就着看,没用到
  16. #基于源远端仓库创建本地分支
  17. git checkout -b develop upstream/develop
  18. #上传当前分支到fork仓库
  19. git push develop origin/develop
  20. #修改当前本地branchname分支跟踪fork仓库branchname分支
  21. git branch --set-upstream-to=origin/develop
  22. #拉取源远程仓库的分支代码
  23. git pull upstream develop

【GIT】git配置密钥并添加到gitlub

在您的个人资料中添加SSH密钥之前,您不能通过SSH来拉取或推送项目代码

https://www.cnblogs.com/love-snow/articles/14215110.html

  1. 1、查看本地是否配置过
  2. cd ~/.ssh
  3. ls
  4. 如配置过:会显示两个文件名称
  5. 2:创建密钥
  6. ssh-keygen -t rsa -C 'xxx@xxx.com' # -C
  7. 改为自己的邮箱 一路回车
  8. 3:查看并复制密钥
  9. cat id_rsa.pub
  10. 4、添加密钥
  11. 打开gitlab,找到Profile Settings-->SSH Keys--->Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框,在Title对应的文本框中给这个sshkey设置一个名字,点击Add key按钮

此处对应第二步

此处对应第四步

(咋说呢,就是你有一个文件,你每一次commit都有记录,你可以选择回到你某一次提交,红色表示在工作区,绿色暂存区(缓存区))

粘贴:Shift+Ins

17568020819

开发人员在本地建立一个本地分支 叫xxx ,在这个分支上进行业务实现,然后完成业务后,进行自我测试,自我测试完毕后,在本地与dev分支合并,然后将dev分支推送到远程dev

dev提交前记得拉一下代码

【GIT】git提示Can't update(master has no tracked branch)

git push --set-upstream origin master

【GIT】No Changes detected

  1. 已经是最新的了,没法提交
  2. 随便打点什么就能提交了

【GIT】push to origin/master was rejected错误解决方案

  1. 1.切换到自己项目所在的目录,右键选择GIT BASH Here,Idea中可使用Alt+F12
  2. 2.在terminl窗口中依次输入命令:
  3. git pull
  4. git pull origin master
  5. git pull origin master --allow-unrelated-histories
  6. 3.在idea中重新push自己的项目
  7. git push -u origin master -f

原文链接:亲测有用push to origin/master was rejected错误解决方案_push to was rejected_辰一更的博客-CSDN博客

【GIT】git生成公钥

  1. 生成方法:
  2. 1.打开git bash
  3. 2.配置用户名和邮箱
  4. git config --global user.name “用户名,填你的名字全称 如:刘鹏 方便识别”
  5. git config --global user.email “邮箱,填你的常用邮箱,代码出错时会发邮件通知你”
  6. 3.生成私钥和公钥
  7. ssh-keygen -t rsa 并按回车3
  8. (为什么按三下,是因为有提示你是否需要设置密码,
  9. 如果设置了每次使用Git都会用到密码,
  10. 一般都是直接不写为空,直接回车就好了)
  11. 会在一个文件夹里面生成一个私钥 id_rsa和一个公钥id_rsa.pub,
  12. 默认文件夹在你打开git bash的目录,或者在你的用户目录~/.ssh文件夹下
  13. 4.复制公钥给我
  14. id_rsa.pub文件的所有内容

【GIT】凭据问题

warning: could not find UI helper ‘git-credential-manager-ui‘

  1. (命令帮助:git-credential-manager --help)
  2. 1:git-credential-manager configure
  3. 2:git-credential-manager get
  4. 3:再次拉取。弹出账号密码页面

【GIT】:GIT基础及进阶知识

概念:Git是目前世界上最先进的分布式文件版本控制系统

版本控制:将一组文件的改动记录下来,形成版本历史,需要时可以恢复

作用:1:上传,下载,2:共享代码回溯版本 3:追踪信息

Git:

控制台 :右击桌面空白 -> Git Bash Here

操作命令:Git

初始化工作区:要初始化的文件 -》空白处Git Bash Here -》git init(即:在那个文件,进入控制台,init初始化)

查看状态:git status (如在A文件夹创建B.txt文件,进入控制台查看,显示红色文件名:在工作区(即没有提交到缓存区)

编辑文件:vim文件名 -> linux的操作

.swp:非正常关闭vi/vim编辑器时会生成一个.swp文件 ,用来恢复文件

查看文件内容:cat 文件名

工作区提交缓存区:git add xxx.txt

显示绿色文件名:new file : 文件名 (在缓存区)

报错:

warning: LF will be replaced by CRLF in readme.txt.

The file will have its original line endings in your working directory.

原因:出现此问题是因为不同操作系统的使用的换行符不同:

解决:git config --global core.autocrlf false

缓存区提交本地仓库:git commit -m '备注信息'

说明:-m 后面跟随的是为你提交的备注,m是单词message信息的首字母

如果第一次提交需要填写如下内容

命令:git config --global user.email '123456@qq.com'

说明:指定邮箱

命令:git config --global user.name 'suoge'

说明:指定操作者

总结:工作区 -》缓存区 -》 本地仓库 即:工作区add到缓存区 commit到本地仓库

本地操作:

工作区暂存区比较:git diff 文件名.格式

显示:绿色+:代表新增内容

暂存区本地库比较:git diff --cached 文件名

工作区本地库比较:git diff HEAD 文件名

版本回退:

查看当前提交日志:git log

HEAD-> master:标记当前分支的当前版本所在位置,如果没有显示:git log --decorate 查看当前提交日志,且显示当前分支的当前版本所在位置

回退到上一个版本:git reset --hard HEAD^

回退到上上个版本:git reset --hard HEAD^^

回退到上100个版本:git reset --hard HEAD~100

查看所有操作日志:git reflog

回退到指定版本git reset --hard 版本号 (git reflog可以查看版本号)(回退错了,可以选择这个再回对的,先看版本号,再回退!

修改撤消:

撤销工作区修改:git checkout 文件名称

暂存区内容撤回到提交前(即工作区版本):git reset HEAD readme.txt

分支:

分支:分支就是多次提交串起来的一条线

在C3基础上,C4,C5分别开发了新功能 , c4融合c5又形成了c6

merge 命令:可以将 new 分支的变动合并至 main 分支,形成c6(c6既包含c4ye也包含c5)

分支创建与切换:(主分支(默认):master 其他分支:自己创建的)

创建分支:git branch 分支名

切换分支:git checkout 分支名

合并分支:git merge 分支名 (内容合一,分支都在)

删除分支 :git branch -d 分支名

本地仓库实际上是存储在个人电脑中的,用于存储个人提交记录与提交日志,说简单点,你现在commit提交的内容都在本地

以上为本地仓库操作。

GIT远程仓库:

常用的远程仓库:GitHub,gitee,gitlab

仓库创建:

GIT远程仓库操作-关联、拉取、推送、克隆(不用刻意记,idea会有操作)

关联:本地仓库关联远程仓库:git remote add origin 远程仓库地址

拉取:从码云仓库拉取到本地仓库:git pull

首次拉取命令:git pull origin master --allow-unrelated-histories

首次拉取需要添加:--allow-unrelated-histories

推送: git push 首次推送:git push -u origin master

克隆:新加入一个团队,把代码从远程仓库克隆过来:git clone 远程仓库

git clone(克隆) 与 git pull(拉取) 区别:

#1.相同点:都是从远程服务器拉取代码到本地

#2.不同点:

git clone(克隆) :是在本地没有版本库的时候,从远程服务器克隆整个版本库到本地,是一个本地从无到有的过程

git pull(拉取) :在本地有版本库的情况下,从远程库获取最新commit 数据(如果有的话),并merge(合并)到本地。

IDEA集成Git:

设置 -》 Git -》 Path To Git ex... -> 选择Git安装目录的Bin Git.exe目录 -》test

校验git是否集成完成,点击test,弹出校验窗口,点击git Executed successed 成功则表示集成完成)

初始化工作区:创建工程 -》VCS -》 Create Git Repository -》 选择要管理的文件夹(相当于找个文件空白地方打开控制台init)-》所有的文件都变成棕色,就成功了

忽略文件类型:

拷贝Mysql Day09 "资料"中.gitignore文件,到gitProject的根目录,如果有新的要忽视的文件类型,你可以在.gitignore中添加

工作区提交暂存区: 工程名 -> Git ->add(棕色变绿色)

暂存区提交本地仓库 :Git -》Commit (跟控制台操作同理,也可以在控制台回退版本)

IDEA中使用GIT-基本操作-差异化比较:

工作区与本地仓库比较:要操作的工程或者类-> 右击选Git -> Compare with Revision ->选择版本ID

本地仓库撤销回退:

点击下方Git -> 选择 commit时候备注的内容 -> 右击选择Reset Current Branch to Here ->点 Hard

工作区撤消回退:

选中要操作的类(add过的)->右击选择Git -> Rollback -> 弹窗点击 Rollback

IDEA中使用GIT创建与关联远程仓库:

关联远程仓库:Git -> manage remotes -> + -> 仓库名,路径

IDEA中使用GIT拉取、推送、克隆远程仓库

拉取:将码云上的内容拉取到本地:点击项目或类 -》Git -》pull -》按住Ctrl+F5

(第一次拉取会失败:解决:参见Mysql Day09 搜:第一次会拉取失败)可以尝试首次拉取命令

推送:点击工程或者类-》右击Git-》Push (成功提示:Pushed 1 commit to origin/master)

推送报错:rejected: Push to origin/master was rejected

原因:git拒绝合并两个不相干的东西

解决:本地仓库的根目录下输入指令git pull origin master --allow-unrelated-histories

克隆:复制码云上仓库地址:Git -》 clone -》 URL (来源地址),Directory(本地存放项目的位置)

IDEA中使用GIT-分支-创建、合并、删除分支:

创建分支:右下角master -》 New Branch -》

合并分支:(先提交到本地仓库,才能合并)-》附分支 -》merge into Current

IDEA中使用GIT-版本冲突:

即:多个用户对同一个文件交叉修改、

产生及解决详见:参见Mysql Day09 版本冲突及解决(我模拟不出来)

更改远程仓库地址

解决冲突

方案一:

can't commit changes due to unresolved

  1. git status 看看哪些有问题
  2. git add .提交上去
  3. (解决)

方案二:

1:放弃本地

2:重新拉取

3:本地的变动复制到新的

基本的合并

代码于dev开发

切换到master

拉取远程仓库最新代码

合并(master->合并选择当前(英文)

  1. 1、git checkout master 【进入要合并的分支】
  2. 2、git pull              【拉取最新代码】
  3. 3、git branch -a            【查看所有分支是否都pull下来了】
  4. 4、git merge dev       【使用merge合并开发分支】
  5. 5、git status        【查看合并之后的状态】
  6. 注:此时有冲突的话,解决冲突
  7. git add 冲突文件
  8. 继续提交代码
  9. 6、git commit           【如果不是使用git commit -m '备注',那么git会自动将合并的节骨作为备注,提交本地仓库】
  10. 7、git push             【本地仓库代码提交到远程仓库】

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/219832
推荐阅读
相关标签
  

闽ICP备14008679号