Git工作中的应用
图
git取消合并
git merge --abort
拉取远程分支 并切换到该分支(不于当前分支合并)
git checkout -b m-v3.1.0 origin/m-v3.1.0
git checkout -b 本地分支名 origin/远程分支名
git 忽略某个文件提交命令
git update-index
1、本地修改不提交到远程仓库
git update-index --assume-unchanged 文件名
2、取消本地忽略
git update-index --no-assume-unchanged 文件名
GIT本地新建分支并提交到远程仓库
Administrator@OPGZ3U8K5TX0CVZ MINGW64 /c/vve (one)
$ git push -u origin one
查看本地和远程仓库的所有分支
git branch -a
上面看了本地仓库只有master分支,那么怎么查看本地和远程仓库的所有分支呢?如下:
查看远程仓库的分支
git branch -r
去自己的工作分支
$ git checkout work
添加新的文件
$ git add .
提交工作分支的修改说明
$ git commit -m '注释'
回到主分支
$ git checkout master
获取远程最新的修改,此时不会产生冲突
$ git pull
回到工作分支
$ git checkout work
用rebase合并主干的修改,如果有冲突在此时解决
$ git rebase master
回到主分支
$ git checkout master
合并工作分支的修改,此时不会产生冲突
$ git merge work
提交到远程主干
$ git push
撤回未提交的所有数据
$ git checkout .
git修改已commit的注释信息实现
输入命令,进入vim界面
git commit --amend
在vim中输入i 编辑提交的信息 在输入 :wq 保存 在push上传就好了,这个操作是提交了注释,在没有push的时候。
git commit之后,想撤销commit
写完代码后,我们一般这样
git commit -m “本功能全部完成”
执行完commit后,想撤回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 branch -d dev20181018
撤回 push 操作(远程仓库)待验证
很多时候代码 push 后,才发现代码有问题,需要撤销 push,如何做呢,请接着看。
第一种
1、首先用 git log
命令查看历史记录
2、假设要回退到上一版本,版本号应是
Fri Jul 12 11:07:01 2019
时间的19462f6f46cf4cbc211d366359afac0c17a7c190
一、git reset --soft 19462f6f46cf4cbc211d366359afac0c17a7c190
二、注意 --hard
参数会抛弃当前工作区的修改
三、使用 --soft
参数的话会回退到之前的版本,
但是保留当前工作区的修改,可以重新提交。
3、提交回退远程分支,git push origin step5/test --force
这样就回退成功了,但是有人会发现,另一个同样的工程 pull 拉取最新代码的时候,不能拉取最新代码。
这是因为有问题的工程的版本和未回退前的版本是一样的,现在回退了也就是版本降低了,pull 是不可能从高版本降到低版本的。
如果是这样,可以在 push 一个最新的提交取代掉回退低版本的问题。
删除远程分支
1:git branch -a
(查看所有的分支)
2:有 remotes/origin
开头的就是远程分支。
3:切换其他分支
假设要删除 hehe
的远程分支,我们需要先把分支切换到 master
,因为你现在所在的分支就是 hehe
,在这个分支下,是不能删除它的。
4:删除远程分支 git push origin --delete hehe
删除本地分支:git branch -D step5/test
5:删除后可以使用 git gc --prune=Now
命令清空本地缓存
第二种
第一步:git reset --soft HEAD^1
注意:^1
为撤回最近一次的提交, ^2
就是最近两次的提交,以此类推。
第二步:git push -f
注意:撤回更改之后,需要推上远程才能保证分支干净,不推上去的话,你又拉这个分支,还是有原来的代码,我这里用的是强推 (-f)
,多人使用这个分支不推荐使用强推。