【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案

【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】GIT的基本使用 及 使用过程中各种错误的解决方案_第1张图片

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

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第2张图片

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 命令而无需显式指定远程分支。

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第3张图片

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第4张图片

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

【GIT】push rejected

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第5张图片

合并提交出现问题

出错原因:是因为远程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 '[email protected]' # -C 
改为自己的邮箱 一路回车

3:查看并复制密钥
cat id_rsa.pub

4、添加密钥
打开gitlab,找到Profile Settings-->SSH Keys--->Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框,在Title对应的文本框中给这个sshkey设置一个名字,点击Add key按钮

此处对应第二步

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第6张图片

此处对应第四步

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第7张图片

(咋说呢,就是你有一个文件,你每一次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】GIT的基本使用 及 使用过程中各种错误的解决方案_第8张图片

【GIT】No Changes detected

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

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第9张图片

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

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第10张图片

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 '[email protected]'

说明:指定邮箱

命令: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

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第11张图片

分支:

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

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第12张图片

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

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

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

创建分支:git branch 分支名

切换分支:git checkout 分支名

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

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

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第13张图片

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

以上为本地仓库操作。

GIT远程仓库:

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

仓库创建:

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第14张图片

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 版本冲突及解决(我模拟不出来)

更改远程仓库地址

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第15张图片

【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案_第16张图片

解决冲突

方案一:

can't commit changes due to unresolved

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

方案二:

1:放弃本地

2:重新拉取

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

基本的合并

代码于dev开发

切换到master

拉取远程仓库最新代码

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

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,elasticsearch,大数据,java)