idea中git操作


一、Git&GitHub

1、版本控制工具应该具备的功能

 协同修改
 多人并行不悖的修改服务器端的同一个文件。
 数据备份
 不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。
 版本管理
 在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空
间,提高运行效率。这方面 SVN 采用的是增量式管理的方式,而 Git 采取了文
件系统快照的方式。
 权限控制
 对团队中参与开发的人员进行权限控制。
 对团队外开发者贡献的代码进行审核——Git 独有。
 历史记录
 查看修改人、修改时间、修改内容、日志信息。
 将本地文件恢复到某一个历史状态。
 分支管理
 允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。

2、2Git 官网

官网地址:https://git-scm.com/

3、Git 的优势

 大部分操作在本地完成,不需要联网
 完整性保证
 尽可能添加数据而不是删除或修改数据
 分支操作非常快捷流畅
 与 Linux 命令全面兼容

4、Git 安装

5、Git 结构

二、idea中GIT操作

一、idea配置git

在这里插入图片描述

二、拉取远程main分支

D:\gitRepository\gitlab-test2(工程跟目录)\.git\config以下代码保证不写死分支

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = http://zhangsan:qwedsa123@192.168.109.145/zhangsan/gitlab-test2.git
                fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master

在这里插入图片描述
在这里插入图片描述

三、将maser合并到远程main分支

合并两个个没有关系的分支
Could Not Merge master: refusing to merge unrelated histories
以上报错就是在于本地仓库和远程仓库实际上是独立的两个仓库。假如我之前是直接clone的方式在本地建立起远程github仓库的克隆本地仓库就不会有这问题了。
我们要想办法将这两个仓库强制建立联系,

步骤1、配置本地的powershell.exe

在这里插入图片描述

步骤2、配置允许不相关分支合并

在这里插入图片描述

步骤3、合并分支

在这里插入图片描述

步骤4、push到远程仓库

在这里插入图片描述

四、创建分支

想在哪个分支上创建新的分支,右键相应分支,会在本地创建新分支,之后可以直接push到远程仓库,创建远程分支

1、创建分支

在这里插入图片描述

2、push

在这里插入图片描述

五、合并相关分支

步骤1、合并分支

在这里插入图片描述

步骤2、push

在这里插入图片描述

六、克隆代码到本地

七、回滚

步骤1、复制回滚目标版本的值

在这里插入图片描述

步骤2、回滚

在这里插入图片描述

步骤3、force push

在这里插入图片描述

八、回滚方式【soft,hard,mixed】

1.soft

–soft参数告诉Git重置HEAD到另外一个commit,但也到此为止。如果你指定–soft参数,Git将停止在那里而什么也不会根本变化。这意味着index,working copy都不会做任何变化,所有的在original HEAD和你重置到的那个commit之间的所有变更集都放在stage(index)区域中。

在这里插入图片描述

2.hard

–hard参数将会blow out everything.它将重置HEAD返回到另外一个commit(取决于~12的参数),重置index以便反映HEAD的变化,并且重置working copy也使得其完全匹配起来。这是一个比较危险的动作,具有破坏性,数据因此可能会丢失!如果真是发生了数据丢失又希望找回来,那么只有使用:git reflog命令了。makes everything match the commit you have reset to.你的所有本地修改将丢失。如果我们希望彻底丢掉本地修改但是又不希望更改branch所指向的commit,则执行git reset --hard = git reset --hard HEAD. i.e. don’t change the branch but get rid of all local changes.另外一个场景是简单地移动branch从一个到另一个commit而保持index/work区域同步。这将确实令你丢失你的工作,因为它将修改你的work tree!
在这里插入图片描述

3.mixed(default)

–mixed是reset的默认参数,也就是当你不指定任何参数时的参数。它将重置HEAD到另外一个commit,并且重置index以便和HEAD相匹配,但是也到此为止。working copy不会被更改。所有该branch上从original HEAD(commit)到你重置到的那个commit之间的所有变更将作为local modifications保存在working area中,(被标示为local modification or untracked via git status),但是并未staged的状态,你可以重新检视然后再做修改和commit
在这里插入图片描述

九、解决IDEA配置.gitignore不生效的问题

原因:
.gitignore只能忽略未被track的文件,而git本地缓存。如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法:
先把本地缓存删除(改变成未track状态),然后再提交。使用以下几个命令即可快速解决
注意:以下命令需要在你项目中右键点击 Git Bash Here进行命令窗口输入
git rm -r --cached .
git add .
git commit -m ‘update .gitignore’
然后重新回到IDEA提交,多余的文件就会消失啦~~~

问题总结:

README.md, 本地仓库和远程仓库进行关联

1、push代码遇到 Push to origin/master was rejected

在这里插入图片描述
Terminal中执行如下

1、打开terminal
2、git pull
3、git pull origin master
4、git pull origin master --allow-unrelated-histories
5、重新push,发现push成功

再重新push

2、合并分支遇到 Could Not Merge master: refusing to merge unrelated histories

Terminal中执行如下

git merge master --allow-unrelated-histories

然后重新合并

参考文章:https://blog.csdn.net/chao821/article/details/81033003

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值