空闲时间吧,整理几篇短小实用的字典类文档,主要是java开发环境相关的包括git、maven、idea的基本配置和操作。

配置

git --version
git config --global user.name "liudong"
git config --global user.email "liudong@shukun.com"

创建

//本地初始化
git init //生成一个.git目录
git -rf .git

//远程拉取
git pull = git fetch+git merge

分支操作

//创建一个新分支
git branch xxx
git branch -d experimental //小写的-d,表示“在分支已经合并到主干后删除分支”, 大写的-D 的话,则表示“不论如何都删除分支
//拉取远程分支
git pull
git checkout branch feat/metabyld //如果远程分支名叫origin/feat/metabyld 则去掉Origin即可
//本地分支操作
git branch //查看本地分支
git show-branch //查看更详细的分支情况
git checkout branch //切换本地分支
git merge branchNameXX //合并本地分支,操作前先切换到另一个分支,然后pull代码,最后在merge
git branch -r 查看远程分支
git clone /home/rocrocket/git-study/rocrocket myrepo //clone 远程分支到 myrepo本地
git checkout -b 本地分支xxx origin/远程分支xxx //检出远程分支到本地
git pull //更新本地仓库,是 git fetch 和 git merge 命令的一个组合
git fetch /home/bob/myrepo master:bobworks ////此命令意思是提取出 bob 修改的代码内容放在本地bobworks分支上,同样这个参数也适合pull
git whatchanged -p branch1..branch2 //查看两个分支的区别

提交文件

//显示本地的修改内容,在提交之前有效
git stauts
//正常提交
git add . 加入本地分支,最后的.也可换成具体的文件名称
git restore . 和add相反的操作
git commit -m "log" 提交到远程分支
git commit -a //不建议用,这个命令这个命令相当于add+diff+commit三个的组合,但有个问题如果有新增文件会不被提交
//查看提交详情
git log 查看所有提交记录
git log --oneline --graph --decorate //图形化显示
git show commitid 查看提交详情
git show commitid filename
//暂时把本的变化保存,然后再恢复回来,用于有冲突时拉远程数据用
git stash || git stash save "name1"
git stash pop || git stash apply "name1"
git stash list
git stash show
git stash clear
//上面开发日志的正确写法要分三行:第一行:概要信息;第二行:空行;第三行:详细信息,以便给一些自动化的邮件服务器截取

恢复

git reset -soft //相当于git commit 的逆向操作,只撤销 commit,保留 working tree 和 index file
git reset -hart //相当于git commit + git add的逆向操作,会把源代码也恢复回去,撤销 commit、index file 和 working tree,即撤销销毁最近一次的 commit
git rest -mixed //相当于最近一次的git reset -soft操作,撤销 commit 和 index file,保留 working tree
git reset //和 git reset –mixed 完全一样
git reset –fielname // 用于删除登记在 index file 里的某个文件

TAG

git tag V3 5b888 //以后可以用 V3 来代替复杂的名称
git show V3

Submodule

git clone <repository> --recursive 递归的方式克隆整个项目
git clone project.git plt-universe-api --recursive 递归的方式克隆带有子模块的服务
git submodule add <repository> <path> 添加子模块
git submodule add <repository>
git submodule init 初始化子模块
git submodule update 更新子模块
git submodule foreach git pull 拉取所有子模块
git rm <submodule-name> 删除子模块
git clone project.git subProject
cd subProject
git submodule init
git submodule update
cd ..