mac系统idea中的git/gitee使用(pull、push、冲突处理、分支、多仓库push)

一、确保已经安装了git

默认安装git的目录是/usr/bin/git;在mac下使用which + 命令 可以查看路径

amin@bogon ~ % which git
/usr/bin/git

安装git的路径要配置在idea的git配置项中,如果是默认路径则不需要修改

二、安装码云gitee的插件(可选)

在idea的插件中搜索gitee安装,然后重启idea,进入preferences — version control — gitee 里面添加登录账号即可。

gitee官方给的idea插件安装教程( 可能教程有点老可以参考下) :https://gitee.com/help/articles/4117#article-header0

用手机号登录没有邮箱的在设置–邮箱设置中设置下邮箱

三、在idea中使用git(idea将git命令提供了一个相对可视化的操作菜单)

1、随便新建一个项目创建一个文件

2、创建一个本地的项目并将文件夹推送到git

一旦推送的git服务器地址确定后面都会在该git服务器上进行拉取/提交

我这里使用 share project on gitee 是不成功的(见下图)
一直不成功,知道原因的朋友请留言告知下

下面的操作是我成功实现推送git代码push的过程:

A、将本地项目文件夹创建一个仓库

选择新建的项目文件夹路

B、将项目切换为“project files”然后在下面文件夹上右键–git–add,将项目文件夹添加到git仓库文件

C、 add完毕后,还是在项目文件夹右键选择git– commit 进行提交到本地仓库的操作。

D、 将commit后的文件夹push到远程git服务器上

远程仓库新建好后,再次进行提交操作即可

push完毕后刷新仓库即可看到提交的文件

3、仓库的代码被其他项目成员进行了修改,现在要拉取最新的代码下来。

我们现在直接在web上对刚才的hello.txt进行修改,模拟其他项目成员修改并提交了新内容,现在要同步下来

在idea上进行git pull即可

这里因为只是在后面加了内容,所以pull的时候不会与本地的hello.txt文件产生冲突,所以也不必去处理冲突。

3.1、我们本地一片空白,需要从远程仓库下载git项目

如果要直接下载一个git项目(本地之前没有该仓库),只需要Get from Version Control 填写仓库地址下载即可,一般你在网上找到的git仓库都是免费仓不需要验证账户,填写地址后直接下载即可。

4、模拟我们在本地对git项目进行了一些修改,其他项目成员在我没有提交的时候又提交了新代码到git,其他人提交后我才进行提交(可能会产生冲突)。

A、直接在web上修改hello.txt模拟其他同事提交的新代码

B、对刚才pull到本地的hello.txt文件进行修改

本地并不知道远程仓库该分支的最新代码是什么

C、在idea上完成了step3的代码编写,需要提交到远程仓库

跟上面操作一样修改内容后,如果有新文件/文件夹要先进行add,然后在进行commit,然后再进行push操作。

通过上面不同项目人员对master分支的修改,可以发现同一个hello文件的同一行存在冲突,git不知道如何处理,这个时候就需要手工进行冲突处理了!

在弹出来的冲突对比窗口中处理冲突文件

修改完毕后apply一下

重新提交push

三、其他操作

1、创建一个新分支

如果你需要创建一个独立的分支专门用来自己开发,在没有完成前你又不想与master或其他分支进行合并,可以创建一个新分支

创建分支的时候如果勾选了“checkout branch”分支创建完毕后,会在本地git目录把分支切换到branchtest

注意这里只是本地有这个分支了,如果此时你去git的web页面查看还看不到这个新分支因为你还没有push提交

2、在新分支上进行修改并提交

上面提交操作后,远程仓库会生成branchtest分支以及刚才分支下的代码

3、在idea上进行分支合并

在idea上将branchtest分支代码合并到master分支上

切换后我们可以看到,master分支的hello文件还停留在第4步(因为第5步我们是在branchtest分支下添加的),现在我们要把branchtest分支代码合并过来

因为branchtest分支是我从本地提交到远程的,所以branchtest分支本地及远程的代码是一模一样的,所以我这里合并就直接选择本地的branchtest分支进行合并。

因为branchtest分支是新增的代码行,所以与现有的不会有冲突,不需要手动处理。操作后hello文件已经是最新的有step5的文件。

注意执行完上面操作只是你本地的master分支与branchtest分支合并了,你还需要把本地的master分支进行commit及提交才会推送到远程git仓库!

4、在idea上删除分支(VCS — Git — Branches — Local Branches –branchtestr –Delete)

如果你发现某个分支不能删除,说明你的idea当前在用这个分支,你需要先切换checkout到别的不需要删除的分支上。比如我们要删除branchtest分支,我会先选择master然后checkout,之后再选择branchtest分支delete!

删除远程分支会弹出二次确认框

5、将本地的分支进度进行暂存

暂存的好处是,可以将进度暂存,然后你可以直接pull最新分支代码下来而不用处理因为自己进度与远程仓库的冲突代码。

注意使用stash changes暂存后,会撤销本地上次pull下来的改动,从下面截图中新增的step6行被撤销也可以验证这点,当然你后面取出暂存后也会恢复的。

因为我没有ignore目录所以diea对workspace.xml会有修改在 unstash时会出错,这时候按提示修改该xml文件内容匹配才行
恢复暂存后再次提交

6、给git项目进行tag打标签

打标签的目的可以理解为拍快照,打完标签后就是一个固定不变的内容了,而分支与标签的不同在于在master或其他分支上代码是可以不断提交以及被修改/覆盖的。是一个变化的路线。一般每个固定的版本节点会进行打标签。

打完tag需要进行commit提交

上面push几次tag没push成功,需要在单独的push里面勾选tag再push才行

注意要选择Push tags (如果选择All所有分支的tag都会提交到远程仓库, 如果选择Current Branch只提交当前分支的tag)

7、使用tag标签

使用前可以先pull一下最新的代码下来,然后在分支管理里面选择Checkout Tag or Revidion,输入tag即可

也可在git历史操作里面选择tag进行checkout

8、使用git进行回滚等操作

git reset header功能主要用于回退git,回退到的目标点位后,后面的其他版本commit都会消失,有点像时光倒退的感觉。

git revert commit 作用是“反向操作”某一commit提交的变化内容,并形成新的一个commit版本,也可理解为会在当前版本中“反向操作”被revert版本中的改动代码,然后提交一个新的版本。这个操作不影响历史提交,只是以某种方式(“反向操作”被revert版本的改动代码)提交了一个新的版本。

目前该功能没有亲测,参考地址 https://blog.csdn.net/yxlshk/article/details/79944535

四、将git仓库发布到不同的git服务器

有时候从github下载的项目需要推送到gitee或自建的git仓库,就需要修改仓库配置。可以在仓库目录的隐藏文件夹.git里面的config配置文件,也可以直接在idea里面操作。

VCS — Git — Remotes

新增时填写仓库别名(不可重复方便区分)以及仓库地址

随便修改下hello文件,然后进行commit 提交

如果目标仓库你从未在idea里面进行登录,还会弹出登录框。

idea中的remotes管理貌似不支持多个url,我们也尝试直接修改config文件配合git命令实现一次提交多个仓库

我在配置文件中建了一个名为allin的remote,后面可直接 git push allin,这种方法虽然能push成功,但是pull操作好像取的是第一个url

vim .git/config
如果需要登录,会提示输入对应仓库的用户名及密码

至此在idea中的主要git相关操作教程已经完毕,后面有时间再整理下git常用的命令行语句。

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/mac-idea-gitee-pull-push-tag/

赞赏

微信赞赏支付宝赞赏

windows安装go交叉编译linux,另附git、gcc安装
p20161218
h5-xiaochengxu-union