idea中使用git

idea中使用git

文章目录

  • idea中使用git
    • 一. git安装
    • 二. 基本介绍
    • 三. svn迁移项目到git(保存历史和分支)
    • 四. idea中的git使用
      • 1. 拉取与提交
        • a. 创建项目并提交
        • b. 从仓库拉取项目
        • c. 提交修改到仓库
        • d. 从仓库更新项目
      • 2. 分支操作
        • a. 创建本地分支
        • b. 提交到远程分支
        • e. 删除分支
        • c. 切换分支
        • d. 合并分支
        • f. 解决合并冲突
      • 3. 其他操作
        • a. 回滚版本

一. git安装

  1. 下载最新的 git 包

idea中使用git_第1张图片
2. 解压后随便放个位置即可,例如图

idea中使用git_第2张图片
3. 打开Idea File—> Setting

idea中使用git_第3张图片
4. 设置Git exe 如下图

idea中使用git_第4张图片
5. Test

idea中使用git_第5张图片

二. 基本介绍

git与svn的区别在于多出一个本地仓库
整体流程为:

  1. 通过 Add 把文件从IDE的工作目录添加到本地仓库的stage区
  2. 通过 Commit 把stage区的暂存文件提交到当前分支的仓库,并清空stage区
  3. 通过 Push 把本地仓库的提交同步到远程仓库

idea中使用git_第6张图片
idea中使用git_第7张图片

三. svn迁移项目到git(保存历史和分支)

#这里--trunk=trunk --tags=tags --branches=branches都需要,否则没有分支或者trunk
git svn clone  <svn地址> --no-metadata --authors-file=svn2git.txt --trunk=trunk --tags=tags --branches=branches

#进入到项目文件夹下
cd <项目名>

#这时候本地分支只能看到trunk,所以需要将分支index拷贝到本地
cp -Rf .git/refs/remotes/* .git/refs/heads/
rm -rf .git/refs/remotes

#一般会留master(默认创建)作为主分支,所以删除trunk
git branch -d trunk  

#添加git的地址
git remote add origin <git地址>

#全部推送到git
git push origin --all

四. idea中的git使用

1. 拉取与提交

a. 创建项目并提交

  1. 首先有一个远程仓库的url,例:https://gitee.com/razera_admin/gitdemo.git
  2. 创建好要提交到远程仓库的本地代码

idea中使用git_第8张图片

  1. 指定本地仓库位置(一般选择项目目录)

idea中使用git_第9张图片

idea中使用git_第10张图片

  1. 通过 Add 把文件从IDE的工作目录添加到本地仓库的stage区 【ctrl+alt+a】

idea中使用git_第11张图片

  1. 通过 Commit 把stage区的暂存文件提交到当前分支的仓库,并清空stage区

idea中使用git_第12张图片

  1. 通过 Push 把本地仓库的提交同步到远程仓库【ctrl+shift+k】

idea中使用git_第13张图片

  1. 第一次提交需要设置远程仓库地址:https://gitee.com/razera_admin/gitdemo.git

idea中使用git_第14张图片
idea中使用git_第15张图片

b. 从仓库拉取项目

  1. 点击vcs–>checkout from version control–>git

idea中使用git_第16张图片

  1. 在弹出窗口中填入需要checkout的url

idea中使用git_第17张图片

c. 提交修改到仓库

这个操作和首次提交的流程基本一致,分别是 Add -> Commit -> Push。参考 a. 创建项目并提交

d. 从仓库更新项目

获取更新有两个命令:Fetch和Pull

  1. Fetch是从远程仓库下载文件到本地的origin/master,然后可以手动对比修改决定是否合并到本地的master库。
  2. Push则是直接下载并合并。

另:idea右上角默认的update Project按钮走的是这个命令: git -c core.quotepath=false -c log.showSignature=false fetch origin --progress --prune
这里推荐使用idea的 update project

使用默认的merge和using stash即可
idea中使用git_第18张图片

2. 分支操作

a. 创建本地分支

点击new branch,然后输入名称就可创建本地分支

注意:

  1. 创建分支,基于当前分支创建
  2. 创建分支后默认checkout到新创建的分支
  3. 如果当前分支有没有提交的代码,则代码保留在当前分支和新创建的分支,但都是未提交状态
  4. 创建分支都是本地分支,在仓库更新不到,如果想在仓库更新到,需要将本地分支提交到远程分支

idea中使用git_第19张图片

创建新的分支叫做branch_test,书签的图案代表哪个是现在所在的分支。(version control中的log的黄色代表head,也能看出来,但是如果和其他分支在同一个log位置,则不好区分,所以通过书签图案区分)
idea中使用git_第20张图片

b. 提交到远程分支

push的时候自定义远程分支名字,然后直接push
idea中使用git_第21张图片
可以看到远程分支中已经出现了test_branch

idea中使用git_第22张图片

e. 删除分支

这里演示删除本地分支的操作方式,远程分支删除与本地分支删除相同
(与svn区别在,这里删除远程分支之后就直接删除了,不需要再push)
idea中使用git_第23张图片

c. 切换分支

本地分支切换分支,直接checkout就可以了,远程分支切换分支需要checkoutAs来checkout 出一个新的本地分支
idea中使用git_第24张图片

d. 合并分支

假设需要将test_branch合并到master分支上

  1. 在test_branch本地分支,更新
  2. 切换分支到本地master分支然后更新
  3. 然后选择下图中的test_branch—>merage into current
  4. 现在我还是在master的本地分支上,add–>commit–>push即可
    idea中使用git_第25张图片

f. 解决合并冲突

  1. 如果合并的时候有冲突,idea会自动弹出需要解决冲突的文件,根据需要选择

idea中使用git_第26张图片

  1. 这里说一下双击进行详细修改:左边是版本,右边是版本,中间是结果版本。箭头是合并,叉号代表忽略

idea中使用git_第27张图片
3. merge之后需要commit然后push

3. 其他操作

a. 回滚版本

方法:

  1. Revert 操作:当成一个新的提交记录,追加到提交日志当中,这样便保留了原来的提交记录。(推荐)
  2. Reset Head 指针:会抛弃原来的提交记录,使Head指针强制指向指定的版本。
  1. Revert操作

生成新的提交记录,如果有冲突需要解决冲突。好处保留了提交记录
idea中使用git_第28张图片
出现冲突,解决冲突与merage出现冲突时,解决方式一致
idea中使用git_第29张图片

  1. Reset Head指针

idea中使用git_第30张图片
如果选择Rever current branch to Here则会弹出下面窗口,选择
git reset 参数

Git Reset 选项说明

  1. Soft:在选定提交点之后所做的所有更改都将被暂存(这意味着可以到 Version Control 窗口(Alt+9)的Local Changes 选项卡,以便您可以查看它们,并在必要时稍后提交)。
  2. Mixed:在所选提交之后所做的更改将被保留,但不会暂存以进行提交。
  3. Hard:在所选提交之后所做的所有更改都将被丢弃(已暂存的和已提交的)。
  4. Keep:在选定的提交之后所做的提交更改将被丢弃,但本地更改将保持不变。

idea中使用git_第31张图片
如果是之前提交完全不想要了,则直接选择Hard就可以了,但是hard可能会弹出Push拒绝(如果整个不想要,直接取消,不要选“merage”),则需要在项目的Terminal输入下面命令 git push -f

idea中使用git_第32张图片

你可能感兴趣的:(工具)