一、 git命令回退方法
1. Git add回退
git status 先看一下add中的文件,确定已经添加的文件。
git reset HEAD 如果后面什么都不跟的话,就是add已添加的全部撤销。
git reset HEAD xxx.cpp 只撤销所列出的文件。
2. Git commit回退
git reset --soft HEAD^
这样就成功的撤销了你的commit。注意,仅仅是撤回commit操作,您写的代码仍然保留。
HEAD^的意思是上一个版本,也可以写成HEAD~1,如果你进行了2次commit,想都撤回,可以使用HEAD~2
--mixed 不删除工作空间改动代码,撤销commit,并且撤销git add . 操作,这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft 不删除工作空间改动代码,撤销commit,不撤销git add .
--hard 删除工作空间改动代码,撤销commit,撤销git add .
顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
3. Git review回退
git checkout [分支名] 切换到需要回退的分支
git log 查看提交记录
git reset --hard 代码回退
git reset --hard [commit id] 复制最近提交的上一条提交记录的commit id
git review 重新提交修改
4. Git rebase回退
git reflog 先查看本地提交操作编号。
找到提交前的项目编号,例如4c173eb HEAD@{3}: commit: scan ,执行:git reset --hard 4c173eb
5. Git cherry-pick回退
git cherry-pick --abort.
二、git 常用命令
1、查看远程分支
git branch -r
2、查看本地分支
git branch
3、创建新分支
git branch 新分支名称
4、切换分支
git checkout 分支名称
5、创建分支的同时,切换到该分支上
git checkout -b 新分支名称
从远程仓库pull(拉取)代码到本地分支
6、指定远程分支,和本地分支
$ git pull origin 远程分支名称:本地分支名称
7、如果不写本地分支名称,则默认和远程分支同名 ,命令如下:
$ git pull origin 远程分支名称
将新分支推送到远程仓库
方法1:使用git命令
git push origin 分支名称
假设我本地创建了一个名为dev的分支,远程仓库还没有这个分支,推送的命令是:
git push --set-upstream origin dev
删除分支
1、删除本地分支(不能删除当前所在的分支,如果要删除,必须先切换到其他分支上)
git branch -d 分支名称
如果删除时报错:error: The branch '分支名称' is not fully merged. (意思是:分支未完全合并)。解决方法是使用 -D 强制删除,代码如下:
git branch -D 分支名称
2、删除远程分支
git push origin :分支名称
注意:分支名称前有个冒号,分支名前的冒号代表删除
合并分支
1、假如我们现在位于分支dev上,刚开发完自己负责的功能,执行了下列命令:
git add .
git commit -m '某某功能已完成,提交到[分支名称]分支'
git push -u origin 分支名称
2、首先切换到master分支上
git checkout master
3、如果是多人开发的话,需要把远程master分支上的代码pull下来
git pull origin master
4、然后把dev分支的代码合并到master上
git merge 分支名称
如果git merge的时候出现冲突,可以执行下面的命令取消merge:
git merge --abort:
5、然后查看状态
git status
6、最后一步,Push推送到远程仓库
git push origin master