记录常用git命令,方便使用
常用命令
- 上传 提交代码至中央仓库
git push
- 下载 拉取中央仓库代码到本地
git pull
- 克隆版本库到本地 一般此操作为git使用的第一步
git clone +url
- 将文件上传到暂存区
add +文件名 // 指定文件
git add . // 所有文件
- 查看日志
git log // 查看日志
git log -p // 查看详细信息
git log -stat // 查看统计信息
- 查看git工作区状态
git status
- 初始化一个仓库 一般是本地最先使用的命令 紧接着使用git clone 或者git pull
git init
- 将暂存区文件提交到版本库
git commit -m
分支
{
'创建分支' : git branch feature1,
'切换分支' : git checkout feature1,
'创建并切换分支' : git checkout -b feature2,
'删除分支' : git branch -d feature2,
'强制删除' : git branch -D feature2(提交还在,一定时间后会被回收) ,
'合并分支' : git merge ,先切换到主分支,之后再进行合并,
'查看分支' : git branch,
'查看当前的commit' : git show,
'查看任意一个' : git show commitId,
'查看commit中的文件' : git show commitId 文件名,
}
合并分支 : 将一个分支合并到当前分支,合并分支的所有提交会成为当前分支的一次提交
git pull <==>git fetch +git merge
git pull <==>git fetch +git merge
查看代码改动
- 改动 区别
git diff --stages(暂存区和本地仓库) 暂存区和上一条提交的区别
git diff 工作目录和暂存区的区别
git diff head 工作目录和本地仓库最新提交的区别 (head可以更改为commitId,可以和任意一次提交之前的区别(改动))
git diff 工作目录和暂存区的区别
git diff head 工作目录和本地仓库最新提交的区别 (head可以更改为commitId,可以和任意一次提交之前的区别(改动))
git文件的几种状态
1.未被跟踪 (即没有没git收录) untracked
2.已暂存 staged
3.已提交到本地仓库 commintted
4.已经发生改变,没有提交到暂存区 changed/unstaged
2.已暂存 staged
3.已提交到本地仓库 commintted
4.已经发生改变,没有提交到暂存区 changed/unstaged
rebase ,merge
什么是rebase? 作用是什么?
- 变基 改变基础
- 作用:从分支合并到主分支(相当于将分支复制到主分支上,不是合并)
- 命令
1. 合并 git chchkout master && git merge branch1
- 变基 git checkout branch1 && git rebase master
merge与rebase异同
相同点
- 当前分支,包含了所有的历史commit
不同点
merge只增加一个commit rebase 新增多个
merge合并的是一个效果 rebase直接在后边粘贴,始终是一条线
merge合并的是一个效果 rebase直接在后边粘贴,始终是一条线
变基的注意事项
不能在master上进行变基,否则会导致master分支上的提交丢失
如果发现刚刚提交的代码错了,怎么办?
修改提交
git commit --amend -m 备注 修改最后一次提交
git commit --amend -m 备注 修改最后一次提交
如果要删除当前提交,要怎么办
git reset 本地删除 撤销
git revert 远程删除 提交一个撤销
git reset --hard + 版本号 版本还原(回退)
git revert 远程删除 提交一个撤销
git reset --hard + 版本号 版本还原(回退)