.gitconfig配置文件
[user]
name = xxxx
email = xxxx
[alias]
co = checkout
br = branch
cm = commit
st = status
pl = pull
ps = push
last = log -1 HEAD
unstage = reset HEAD --
df = diff
dfl = diff HEAD~
dfc = diff --cached
chp = cherry-pick
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --
[core]
editor = vim
[color]
ui = auto
常用命令
Git有三大区(工作区、暂存区、版本库)以及几个状态(untracked、unstaged、uncommited)
diff
git diff 默认情况是 工作区跟暂存区的比较
git diff --cached 暂存区跟版本区的比较
git diff HEAD 工作区跟版本区的比较
工作区添加文件到暂存区
git add . 或者 git add --all 提交全部文件
暂存区 到 本地区
commit -m 注释本次commit
commit -a 加了-a,在 commit 的时候,能帮你省一步 git add ,但也只是对修改和删除文件有效, 新文件还是要 git add,不然就是 untracked 状态
推送到远端
git push 命用于从将本地的分支版本上传到远程并合并。
git push <远程主机名> <本地分支名>:<远程分支名>
如果本地分支名与远程分支名相同,则可以省略冒号:
git push <远程主机名> <本地分支名>
git push 相当于本地仓库分支 与远端仓库的分支merge
git push origin master
本地master分支与远端origin仓库的master分支合并。。。
查看远程主机信息
git remote -v
配置远程仓库
git remote add origin 'url'...
eg
git push origin master
查看提交记录
git log
git reflog 回退后查看版本
撤销当前暂存区的所有修改到当前版本
checkout .
回退到版本
git reset --hard ID
可以通过
分支管理
查看分支
git branch
// 创建并且切换分支
git checkout -b dev
相当于
$ git branch dev
$ git checkout dev
Switched to branch 'dev'
// 合并分支
git merge <name>
删除远程分支
> git st
On branch dev
Your branch is ahead of ‘origin/dev’ by 1 commit.
(use “git push” to publish your local commits)
当前分支dev 新建的dev(合并了git merge 后新建的dev) 领先之前提交的dev 一个commit 想删除远端的dev分支
如果要删除dev分支,首先要切换到其他分支比如master分支才可以。
如果dev为远端默认分支 也需要切换到其他分支,不然会拒绝
查看所有的分支
git branch -a
删除指定分支
git push origin -d dev
初始化项目push 报错
git init
git add .
git commit -m "first commit"
git remote add origin https://gitee.com/lqx12345/netty_demo.git
git push oringin master..
发现报错 error: failed to push some refs to '
原因是远端oringin仓库里的文件和本地有冲突 这边需要处理一下
如果直接
git pull origin master
最后在pull的时候看git log会发现多出了一条 merge commit,这个 commit 就是在执行 git pull origin master 的时候自动生成的。如果多人多次如此操作,那么提交记录就会出现很多条这种自动生成的 merge commit,非常难看。
git pull --reb origin master
git pull --rebase origin master
执行 git pull --rebase 的时候必须保持本地目录干净。即:不能存在状态为 modified 的文件。(存在Untracked files是没关系的)
如果有想要继续修改的文件但这次无法上传,可以执行 git stash,这个操作会将所有modified 文件贮藏起来,再次切换到分支只需要git stash pop这些文件就会出现