【GIT】错误集锦及解决方案
【GIT】本地和远程test关联
git branch -u origin/test 本地和远程test关联
返回:Branch 'test' set up to track remote branch 'test' from 'origin'.关联成功
备注:确保当前本地分支正确。
【GIT】当前本地分支与远程关系解除(及解除后再次绑定)
git branch --unset-upstream 当前本地分支与远程关系解除
返回:Branch 'test' set up to track remote branch 'test' from 'origin'.关联成功
再次绑定
git branch --set-upstream-to origin/dev-caoke
返回: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:git checkout -b 分支名 mindspore/分支名
(切换并新建)本地分支并将远程仓库mindspore的分支同步过来
mindspore:源仓库
2:git push -u origin 分支名
将本地新建的分支推到远程仓库(自有的,非源)
这条命令git checkout -b r1.8 mindspore/r1.8的意思是在本地仓库中创建一个名为r1.8的新分支,并将远程仓库mindspore中的r1.8分支的内容拉取到新分支中。
具体解释如下:
git checkout -b r1.8:这部分表示要创建并切换到名为r1.8的新分支。如果该分支已经存在,则直接切换到该分支。如果不存在,则创建该分支,然后切换到新创建的分支。
mindspore/r1.8:这部分表示要从远程仓库mindspore中的r1.8分支拉取内容。mindspore是源仓库的名称,r1.8是源仓库中的分支名称。
综合起来,执行这条命令会在本地仓库中创建一个名为r1.8的新分支,并从远程仓库mindspore的r1.8分支中拉取内容到这个新分支中。这样您就可以基于源仓库的r1.8分支进行后续的开发工作或跟踪源代码的变化。
git push -u 命令用于将本地分支的更改推送到远程仓库,并建立本地分支与远程分支的追踪关系。
具体解释如下:
git push: 用于将本地分支的更改推送到远程仓库。
-u 或 --set-upstream: 用于在推送的同时,建立本地分支与远程分支的追踪关系。
当您第一次将本地分支推送到远程仓库时,可以使用 git push -u 命令。这将会在推送的同时,将本地分支与远程分支关联起来,使得后续的 git pull 或 git push 命令可以自动识别并操作关联的远程分支。
使用示例:
假设您当前位于本地分支 feature 上,并且该分支在远程仓库中尚未存在。执行以下命令即可将本地分支推送到远程仓库并建立追踪关系:
shell
git push -u origin feature
执行上述命令后,本地分支 feature 的更改将被推送到名为 origin 的远程仓库,并且本地分支 feature 与远程分支 origin/feature 建立了追踪关系。此后,您可以直接使用 git pull 或 git push 命令而无需显式指定远程分支。
原主:https://blog.csdn.net/weixin_43947456/article/details/125456108
【GIT】push rejected
合并提交出现问题
出错原因:是因为远程repository和本地的repository冲突导致的,在多人协同机制下,远程库的代码可能已经被其他程序员更新,而你的本地库还停留在未更新前前的状态,这种情况下的push会被远程库拒绝。(其实远程库判断的版本依据就是根据commit的history)
**解决办法:**先在已有代码的分支上创建一个新的本地开发分支,然后用之前旧分支去pull一下远程库中的代码,然后将新创建的本地开发分支merge到旧分支上,即可push。
【GIT】本地分支推到源仓库
git push -u mindspore r1.8:r1.8
将本地分支r1.8推送到远程仓库mindspore的r1.8分支上,并且建立起本地分支r1.8与远程分支的追踪关系。
【GIT】git报不支持http,需要使用https
报错:
fatal: Unencrypted HTTP is not supported for GitLab. Ensure the repository remote URL is using HTTPS.
解决:
git remote set-url origin 远程仓库地址的http+s
【GIT】gitfork使用
git fork的使用
拉项目:
#克隆fork仓库
git clone http://gitlab.cmss.com/yangya_ext/cmdb-cloud.git (这里是fork下来的地址)
#本地仓库与源远端仓库建立连接并 起个 别名
git remote add upstream http://gitlab.cmss.com/YY3DEV/bc-guard/cmdb-cloud.git (这里是源仓库地址)
更新用这两条:
#获取源远端仓库信息
git fetch upstream
git merge upstream/feature_aiops_v3.8.2
(更新提示不支持http,需要使用https。看git问题解决方案)
fork上传,拉取
上传:正常上传,找管理员审核
拉取:正常拉,好像是自己的远程仓库。 拉源仓库更新,更新那两条
下面将就着看,没用到
#基于源远端仓库创建本地分支
git checkout -b develop upstream/develop
#上传当前分支到fork仓库
git push develop origin/develop
#修改当前本地branchname分支跟踪fork仓库branchname分支
git branch --set-upstream-to=origin/develop
#拉取源远程仓库的分支代码
git pull upstream develop
【GIT】git配置密钥并添加到gitlub
在您的个人资料中添加SSH密钥之前,您不能通过SSH来拉取或推送项目代码
https://www.cnblogs.com/love-snow/articles/14215110.html
1、查看本地是否配置过
cd ~/.ssh
ls
如配置过:会显示两个文件名称
2:创建密钥
ssh-keygen -t rsa -C 'xxx@xxx.com' # -C
改为自己的邮箱 一路回车
3:查看并复制密钥
cat id_rsa.pub
4、添加密钥
打开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
已经是最新的了,没法提交
随便打点什么就能提交了
【GIT】push to origin/master was rejected错误解决方案
1.切换到自己项目所在的目录,右键选择GIT BASH Here,Idea中可使用Alt+F12
2.在terminl窗口中依次输入命令:
git pull
git pull origin master
git pull origin master --allow-unrelated-histories
3.在idea中重新push自己的项目
git push -u origin master -f
原文链接:亲测有用push to origin/master was rejected错误解决方案_push to was rejected_辰一更的博客-CSDN博客
【GIT】git生成公钥
生成方法:
1.打开git bash
2.配置用户名和邮箱
git config --global user.name “用户名,填你的名字全称 如:刘鹏 方便识别”
git config --global user.email “邮箱,填你的常用邮箱,代码出错时会发邮件通知你”
3.生成私钥和公钥
ssh-keygen -t rsa 并按回车3下
(为什么按三下,是因为有提示你是否需要设置密码,
如果设置了每次使用Git都会用到密码,
一般都是直接不写为空,直接回车就好了)
会在一个文件夹里面生成一个私钥 id_rsa和一个公钥id_rsa.pub,
默认文件夹在你打开git bash的目录,或者在你的用户目录~/.ssh文件夹下
4.复制公钥给我
id_rsa.pub文件的所有内容
【GIT】凭据问题
:warning: could not find UI helper ‘git-credential-manager-ui‘
(命令帮助:git-credential-manager --help)
1:git-credential-manager configure
2:git-credential-manager get
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
git status 看看哪些有问题
git add .提交上去
(解决)
方案二:
1:放弃本地
2:重新拉取
3:本地的变动复制到新的
基本的合并
代码于dev开发
切换到master
拉取远程仓库最新代码文章来源:https://www.toymoban.com/news/detail-745764.html
合并(master->合并选择当前(英文)文章来源地址https://www.toymoban.com/news/detail-745764.html
1、git checkout master 【进入要合并的分支】
2、git pull 【拉取最新代码】
3、git branch -a 【查看所有分支是否都pull下来了】
4、git merge dev 【使用merge合并开发分支】
5、git status 【查看合并之后的状态】
注:此时有冲突的话,解决冲突
git add 冲突文件
继续提交代码
6、git commit 【如果不是使用git commit -m '备注',那么git会自动将合并的节骨作为备注,提交本地仓库】
7、git push 【本地仓库代码提交到远程仓库】
到了这里,关于【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!