git 是一款分布式版本管理系统。其实我们平时使用的命令有git add … git commit -m “” git push
现在介绍一些也比较常用的命令。
1. 版本回退
使用git log
指令可以查看提交的历史记录,如下:
提示:这里的commit 23318b11
这个是提交的版本号。
如果此时发现出错了,想进行版本回退,首先要知道现在的版本号是多少,此时是23318
, 在git中当前的版本用HEAD
。
使用git reset --hard + 版本号
, 想回退到那个版本就写那个版本号即可
如果此时你刚回退的那一版想再弄回来,此时只要是你没有关闭黑窗口,找到那个版本号,即可恢复回来。
提示:git reflog
可以查看命令历史,方便确定回到那个版本。
2.工作区和版本库
工作区就是值的是我们电脑中的文件夹。其中有一个隐藏的.git
是版本库。
暂存区:就是我们git add .
就是把文件添加到了暂存区了。
git commit
就是把暂存区的东西提交到了当前的分支中。
3.撤销修改
比如说现在修改了一个文件突然发现有一句话写错了,想要纠正,检查下状态如下:
这时发现可以 git checkout -- file
可以丢弃工作区的修改,有两种使用的情况
一种是文件修改后还没有被放到暂存区,撤销就可以直接回到和版本库之前一样。
一种是已经添加到暂存区,现在撤销就回到添加暂存区后的状态,也就是回到最近一次的git add
或者git commit
-
现在还未被加到暂存区
此时已经又回来了。 -
已经添加到了暂存区
现在显示已经又回来了。
4.删除文件
当一个文件已经加到暂存区了,此时要删除,可以使用rm file
命令,进行操作。
如果想直接从版本库中删除,直接用git rm file
即可删除,就如上图所示。
如果想进行回退则使用 git checkout -- file
即可。
5. 指令
git branch
查看本地分支名
git branch -l
查看本地分支名
git branch -a
查看远程和本地分支名
git branch -r
查看远程分支名
git branch + 分支名
创建分支
git checkout + 分支名
切换分支
git checkout -b + 分支名
创建分支并切换分支
git merge + 分支名称
合并分支(在test上使用git merge dev, 则就把dev分支合并到了test上)
git branch -d + 分支名
删除本地分支
git push --delete + 分支名称
删除远程分支
git branch -D <name>
强制删除(没有被合并过的分支)
git remote
查看远程信息
rm + 文件名
删除本地文件
git clone -b + 分支名+ 仓库地址
克隆指定分支的代码
git add . -f
会吧一些忽略的文件也提交上去
6. 解决冲突
主要发生在两个分支改了同一个位置,导致合并的时候出错了
文件内容展示
解决完之后直接add commit push 即可。
7. 多人协作
多出现于好几个人共同开发,因推送时间不同导致本地和远程代码不同步造成的出错。
第一个人在dev分支上工作并提交:
在第一个人提交后,第二个人同样做出了改动,进而提交,导致本地和远程仓库不同步出错
可看出给的提示是先git pull 一下,把最新的提交拉下来,进而同步,
这是因为本地dev分支与远程origin/dev分支的链接没有指定,设置一下即可
git branch --set-upstream-to=origin/dev dev
接着再进行pull
本地文件变化
将合并的冲突解决掉,push成功
8. 分支重命名
git branch -m oldName newName
oldName旧分支名称, newName新分支名称
例如:git branch -m rep newRep
将旧的分支名称为rep的修改为新的名称newRep
注意:修改后的新分支push到远程会创建一个新分支,分支名称为修改后的名称,旧的分支不会删除
若想删除远程的旧分支,则使用命令git push --delete origin rep
即可
9. git stash 临时保存和再恢复
-
git stash
直接临时保存起来(名称比较乱,不容易恢复)
这里的30ecb9c a
就是这一条临时报存的名称,如果是多条不容易区别 -
git stash save + 名称
给创建临时报存,并给一个名称
注意:
每次进行一次git stash会将最新的临时保存,放到最前面
-
git stash show
查看这次临时存储有什么改动
-
git stash list
查看存了多少次
-
git stash pop
恢复最新的一次存储记录 -
git stash pop stash@{num}
恢复指定的存储记录
-
git stash drop stash@{num}
删除指定的某个保存 -
git stash clear
删除所有保存
注意点
- 在使用
git add . -f
会吧一些忽略的文件也提交上去,一般看好再提交。 git reomte
查看远程信息(一般不重命名的话是origin)git remote rename oldName newName
修改远程信息名称