当前位置:   article > 正文

mac系统下通过idea使用git指令_idea mac 配置 git

idea mac 配置 git

mac系统通过idea终端使用git

一、引言

本文旨在解决使用idea过程中,提交和合并代码时idea卡顿和响应慢以及过程繁琐的问题。

1.1 文章背景

  • 结合我曾遇到的问题吧,当时因为一些小小的改动,需要频繁去将开发分支合并到test发版测试,过程繁琐不说,使用idea图形化界面还卡得要死;
  • 后续是使用终端写git指令,效果虽然好点,但是每次add commit push merge 还是很头疼;
  • 后来是写了一个shell脚本,把这些命令封装在一起,每次提交直接运行脚本,效果还可以;
  • 最后是直接通过别名的方式,直接在系统下配置别名,直接在终端使用别名,效果好多了。

1.2 文章目标

  • 在网上看到很多同行有这方面的困扰,希望能够帮助他们
  • 把我自己觉得能提升效率的方法或者方式,分享出来
  • 我觉得我提供的是解决问题的方案,实际上可以有很多扩展,我们可以做很多事
  • 并不是仅仅局限于idea,而是能够辐射到所有使用mac,windows,linux等开发环境的开发者。

二、解决方案

2.1

写一个脚本,命名为 .bashrc ,内容如下

alias gs="git status" # to see changes that have been staged and which haven't
alias ga="git add . "  # add 
alias gb="git branch" # branches
alias gf="git fetch origin --recurse-submodules=no --progress --prune" # git fetch
alias gbr="git branch -r" # remote branches
alias gcu="git rev-parse --abbrev-ref HEAD" # current branch
alias gac="git add . && git commit -m" # to stage and commit changes
#git push and pull
alias gp="git push" # + remote & branch names
alias gpl="git pull" # + remote & branch names
# Pushing/pulling to origin remote
alias gpo="git push origin" # + branch name
alias gcb="git checkout -b" # To create a new branch and checkout into it
alias gcm="git checkout master"
alias gcmp="git checkout master && git  pull"
alias gct="git checkout test"
alias gctp="git checkout test && git  pull"
alias gcp="git checkout pre"
alias gcpp="git checkout pre && git  pull"
alias gcd="git checkout dev"
alias gcdp="git checkout dev $$ git pull"
alias gl="git log"
alias g="git"
alias gd="git branch -d"


alias mc="mvn clean"
alias mci="mvn clean -U install -Dmaven.test.skip=true "
alias mcc="mvn clean -U compile -Dmaven.test.skip=true "
alias md="mvn -Dfile.encoding=UTF-8 smart-doc:rpc-html "
alias mr="mvn spring-boot:run"
# pull add commit push 
gacp(){ git pull && git add . && git commit -m "$1" && git push;}

gmttp(){
    currentbranch=$(git rev-parse --abbrev-ref HEAD)
    git checkout test && git pull && git merge "$currentbranch" && git push && git checkout "$currentbranch";
}
gmttpi(){
    currentbranch=$(git rev-parse --abbrev-ref HEAD)
    git checkout test && git pull && git merge "$currentbranch" && git push && mci && git checkout "$currentbranch";
}
gmtpp(){
    currentbranch=$(git rev-parse --abbrev-ref HEAD)
    git checkout pre && git pull && git merge "$currentbranch" && git push && git checkout "$currentbranch";
}
gmttp2(){
    currentbranch=$(git rev-parse --abbrev-ref HEAD)
    git checkout "$1" && git pull && git merge "$currentbranch" && git push && git checkout "$currentbranch";
}

# 合并代码,不切换回来
gm(){
    currentbranch=$(git rev-parse --abbrev-ref HEAD)
    git pull && git add -A && git commit -m $1 
    git push && git checkout $2 && git pull 
    git merge "$currentbranch" && git push 
}
# 合并代码 切换回来
gmc(){
    currentbranch=$(git rev-parse --abbrev-ref HEAD)
    git pull  
    git add -A 
    git commit -m $1 
    git push 
    git checkout $2 
    git pull 
    git merge "$currentbranch" 
    git push 
    git checkout "$currentbranch"
}

# push新分支
gpNew(){
    currentbranch=$(git rev-parse --abbrev-ref HEAD)
    git push --progress --porcelain origin refs/heads/$currentbranch:refs/heads/$currentbranch --set-upstream
}
gdRemote(){
    git push --progress --porcelain origin :$1
}
gc(){
    git checkout $1 && git pull
}
# 切换分支 ,存在分支,直接切换,不存在时从master拉取新分支并提交
gcSafe(){
    git checkout $1
    if [ $? -eq 0 ] ; then
       echo "$1 分支存在,切换成功。"
       git pull
    else
       echo "$1 分支不存在,开始新建"
       sourceBranch=master
       if [ -n "$2" ]; then
          sourceBranch=$2
       fi
       git checkout -b $1 origin/$sourceBranch^0 --
       echo "从 $sourceBranch 拉取远程分支 $1 成功"
       git push --progress --porcelain origin refs/heads/$1:refs/heads/$1 --set-upstream
       echo "push 成功!"
    fi
}

# 编辑本文件
eb(){
    echo "开始编辑.bashrc文件==="
    open ~/.bashrc
}

# 加载本文件
rb(){
    source ~/.bash_profile
    echo "执行成功!"
}

# 给文件设置最高权限 
c7(){
    chmod 777 $1
}

#去桌面
god(){
    cd ~/Desktop
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124

2.2

文件复制到用户目录(~)下,然后在~/.bash_profile(没有该文件新建一个)中添加如下内容

source ~/.bashrc
  • 1

终端中执行 source ~/.bash_profile

2.3 使用,举几个简单的例子

在idea中,打开终端,输入命令:

  • gmc 提交代码 test,表示的意思就是在当前分支提交代码,切换到test分支,然后合并到test并提交,最后切换回来当前分支继续开发;
  • gcSafe feat_20240101,表示如果存在feat_20240101分支,切换到feat_20240101分支,如果不存在,从master拉取feat_20240101分支;
  • gc test ,表示切换到test分支,test分支不存在不切换;
  • eb 打开并编辑.bashrc文件;
  • rb 重新加载.bashrc文件;
  • gbr 显示远程分支;
  • gb 显示本地分支;
  • gdRemote test ,删除远程分支test;
  • gd test,删除本地分支test;
  • mci,mc,mvn命令,可以自己查看一下,我这里就不解释了。

2.4 关于扩展

实际能使用的功能是非常多的,我这里只是简单的举例,可以自己扩展,希望能帮到你。

三 后记

关于windows 中的使用实际也很简单:

  • 创建.bashrc文件,把文件丢到用户目录下;
  • 打开idea,打开设置搜索terminal,点开shell path,选择git路径,然后确定;
  • 就可以在idea终端使用以上命令了
  • 当然,上面的.bashrc文件,是在mac系统下写的,可能有些指令在win下不支持,可以自己修改,或者自己添加。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/411659?site
推荐阅读
相关标签
  

闽ICP备14008679号