赞
踩
# mac系统通过idea终端使用git ## 一、引言 本文旨在解决使用idea过程中,提交和合并代码时idea卡顿和响应慢以及过程繁琐的问题。 ### 1.1 文章背景 结合我曾遇到的问题吧,当时因为一些小小的改动,需要频繁去将开发分支合并到test发版测试,过程繁琐不说,使用idea图形化界面还卡得要死。 后续是使用终端写git指令,效果虽然好点,但是每次add commit push merge 还是很头疼; 后来是写了一个shell脚本,把这些命令封装在一起,每次提交直接运行脚本,效果还可以; 最后是直接通过别名的方式,直接在系统下配置别名,直接在终端使用别名,效果好多了。 ### 1.2 文章目标 - 在网上看到很多同行有这方面的困扰,希望能够帮助他们 - 把我自己觉得能提升效率的方法或者方式,分享出来 - 我觉得我提供的是解决问题的方案,实际上可以有很多扩展,我们可以做很多事 - 并不是仅仅局限于idea,而是能够辐射到所有使用mac,windows,linux等开发环境的开发者。 ## 二、解决方案 ### 2.1 写一个脚本,命名为 .bashrc ,内容如下 ```shell 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 } ``` ### 2.2 将文件复制到用户目录下,即~/.bashrc,然后在~/.bash_profile(没有该文件新建一个)中添加如下内容 ```shell source ~/.bashrc ``` 终端中执行 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 关于扩展 实际能使用的功能是非常多的,我这里只是简单的举例,可以自己扩展,希望能帮到你。 ## 3 后记 关于windows 中的使用实际也很简单: - 创建.bashrc文件,把文件丢到用户目录下; - 打开idea,打开设置搜索terminal,点开shell path,选择git路径,然后确定; - 就可以在idea终端使用以上命令了 - 当然,上面的.bashrc文件,是在mac系统下写的,可能有些指令在win下不支持,可以自己修改,或者自己添加。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。