GIT常用命令
分享一些git的常用命令
版本概念
每次提交都是一个新的版本,所以每次提交代码,需要下载最新版本,然后在最新版本上往前提交
git初始设置
#设置用户信息 --用户名和邮箱
git config --global user.name "username"
git config --global user.email "email"
#设置文本编辑器,默认为vim
git config --global core.editor emacs
#查看Git配置信息
git config --list
#查看某项配置
git config <key>
git config user.name
#创建一个空的初始化仓库或初始化现有仓库
git init
下载文件
# 从远端下载工程到本地
git clone url
分支命令
老版本git
#查看本地分支
git branch
#查看本地和远程分支
git branch -a
#创建分支
git branch 分支名
#切换分支
git checkout 分支名
#切换和创建分支
git checkout -b 分支名
#删除本地分支
git branch -d 分支名(remote/origin/分支名)
git branch -D 分支名 #强制删除
#删除远程分支
git push origin --delete 分支名(remote/origin/分支名)
#分支迁移
git stash (隐藏未提交(commit)的内容)
git checkout dev
git stash apply (放开未提交的内容)
版本控制工具里面拉取下来
新版本git
# 创建并切换到Dev分支
git switch -c dev
本地分支和远程分支
# 更新远程分支
git remote update origin -p
#查看本地分支和远程分支的关联关系
git branch -vv
# 关联本地分支与远程分支
git branch --set-upstream-to=origin/dev
查看代码变更
# 此命令比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异
# 未添加到缓存区的变更
git diff
# 查看文件状态(未跟踪,已修改的等)
# -s 输入格式更紧凑
git status -s
git status -uno
代码提交
# 提交到暂存区
git add <filename> 提交单个文件到暂存区
git add . 提交所有修改的文件到暂存区
git add -A 提交当前目录的所有文件
git add -p 选择要添加的更改
# 提交到本地仓库
# message 为提交信息说明
git commit -m "message" 把暂存区的文件提交到本地仓库
git commit -a -m "message" 把工作区文件提交到本地仓库
# 本地仓库提交到远端仓库
git push origin dev 提交到远端dev仓库
git日志
# 查看commit日志,可以获取commitID
git log
# 查看提交日志 ,设置打印格式
git log --pretty=oneline
#查看历史命令
git reflog
#显示日志内容
git show commitID
#显示当前版本提交的文件
git show commitID --stat
版本回退
##### 根据对应的commitID ,回退到上一个版本,如要回退多个版本,应多次执行下面的命令
git revert commitID
####返回到最后一次提交
git reset --HEAD
pull合并失败
# 处理方案一
#保留本地的更改,终止合并,重新合并,重新拉取
git merge --abort
git reset --merge
git pull
#处理方案二
#舍弃本地代码(注意备份),远端版本覆盖本地版本
git fetch --all
git reset --hard origin/master
git fetch
####git pull 报错:please commit your changes or stash them before you can merge 的解决方案
git stash #隐藏本地修改
git pull
git stash pop #放开本地修改,解决冲突
更新代码
#从远程获取最新版本到本地,不会merge(合并)
git fetch 远端分支名
git fetch origin master #从远程的origin的master主分支上获取最新版本
git log -p master..origin/master #比较本地分支和origin/master分支的区别
git merge origin/master #合并
#从远程获取最新版本并merge(合并)到本地
git pull
#方式二(推荐使用)
git fetch origin dev-webapp:temp #拉取到临时分支
git merge temp #有冲突信息,解决冲突
git add .
git commit -m "提交信息"
git push origin dev-webapp
git冲突解决
## 知识点:解决代码冲突的两种方式
##rebase,merge。重要区别是合并之后commit 的个数不一样;rabase保留原分支上的每一个commit,merge只会生成一个commit
#方法一:使用merge解决冲突
git fetch #下载所有分支代码
git checkout origin/master #直接切到远端的master分支
git merge master #将master分支的修改合入
提示冲突,手动解决
git add -A
git commit
git push
#方法二:使用rebase解决冲突
git fetch
git rebase origin/master #以
git add -A
git rebabe --continue
git push origin master
git push -f origin master 强制提交
MAVEN打包
#maven工程打war包
mvn -clean package -DskipTests