这里写自定义目录标题
- git 的简单使用
- git配置
- 配置用户名
- 邮箱配置
- 在你的github 或者gitee上新建仓库
- 创建本地仓库
- 提交代码到本地仓库
- 更改提交信息
- 回滚代码仓库
- 先使用git log查看历史版本
- 在使用git reset --hard命令回滚
- 查看提交之后文件是否做了改动
- 将所有改动文件添加到缓存区:
- 将文件撤销回到最近一次修改的状态
- 查看单个文件可回滚版本
- 删除文件
- 查看提交历史
- git基本组成框架:Workspace、Index / Stage、Repository、Remote
- git rm后恢复文件
- 在使用git reset重置所有缓存区操作
- 重置完成之后在使用git checkout命令将文件取消操作
- git创建分支:git branch、git checkout
- git切换分支:git checkout
- git合并分支:git merge
- git查看分支:git branch -a
- git删除本地分支:git branch -D 分支名
- git删除远程分支:git push origin --delete
- 关联远程仓库
- git push推送到远程
git 的简单使用
git配置
初次使用git需要设置你的用户名以及邮箱,这将作为当前机器git的标识,如果你用它来下载远程仓库一些需要登录权限的仓库会要求登录,git默认使用配置邮箱以及用户名登入,但会要求你手动输入密码
config:参数是用来配置git环境的
–global:长命令表示配置整个git环境
配置用户名
git config --global user.name “你的用户名”
邮箱配置
git config --global user.email “你的邮箱”
在你的github 或者gitee上新建仓库
创建本地仓库
git init: 初始化
提交代码到本地仓库
add:将文件添加到缓存区
commit:提交到本地仓库
更改提交信息
–amend:重写上一次的提交信息
修改完成后按下ctrl+o键
在按下回车,就会提示已写入,用#是注释,不会被提交,git会自动过滤
下面的G和O这种符号^在ascii里对应ctrl键,所以就是ctrl+x
正如刚刚改写提交的,想要确定是否改写成功,我们可以使用git log查看一下
回滚代码仓库
git reset --hard
reset参数是重置命令
–hard是重置代码仓库版本
有三种模式
–soft 、–mixed以及–hard是三个恢复等级。
使用–soft就仅仅将头指针恢复,已经add的暂存区以及工作空间的所有东西都不变。
如果使用–mixed,就将头恢复掉,已经add的暂存区也会丢失掉,工作空间的代码什么的是不变的。
如果使用–hard,那么一切就全都恢复了,头变,aad的暂存区消失,代码什么的也恢复到以前状态。
1.回滚到指定历史版本
可以看到没有生成新的版本号,而是直接改写了刚刚提交的注释
这里来解释一下上面提交的信息是什么意思
第一行的commit是哈希算法算出的id,正如一开始所说,分布式是没有一个主版本号的,它们都是用id来做标志的,同时用master作为主仓库,其它的分支怎么迭代都不会影响到master,后面我会介绍如何使用分支
目前我们的仓库就是master,因为我们没有拉取分支是直接用git init创建的,就是master。
先使用git log查看历史版本
git log
在使用git reset --hard命令回滚
git reset --hard 要回滚id
2.回滚当前仓库指向的版本
上面我们说过,HEAD是指向当前仓库的,历史版本中可能有别的分支,我们只想迭代我们仓库的上一个版本,这个很简单,我们只需要用HEAD来指向就可以了
git reset --hard HEAD^
后面的3,代表以当前版本为基数,回滚多少次。HEAD3代表回滚master前三个版本
如果觉得log打印内容过多,可以加上–pretty=oneline选项简洁输出
查看提交之后文件是否做了改动
git status
我们在提交完成之后,有时候可能自己不小心改动了某个文件,或者别人,我们可以使用git status查看文件是否被改动
我们修改一下刚刚提交的test.c文件,在里面随便输点字符
保存退出,然后使用git status查看
将所有改动文件添加到缓存区:
git add --all、git add .
如果你实在不确信哪些文件是改动过的,你只需要使用git add --all
这个命令会将当前目录下包括子目录下所有改动的文件提交到暂存区,注意只包括改动的文件,不改动的不会放到缓存区。
这个命令还会把删除的文件也提交进去
如你在本地删除了min.c 这个命令会把删除信息也记录进去,然后在提交的时候把仓库里对应的min.c也删除掉,也就是说你在本地做的删除操作会被记录,提交仓库时会删除同样的文件,如果不想删除文件,可以使用git add .,注意后面有一个“.”点的符号,这个命令跟git add --all一样,但是不会记录删除操作。
最后别忘记使用git commit提交到仓库中
将文件撤销回到最近一次修改的状态
git checkout – file
查看单个文件可回滚版本
git log filename
当我们想回滚指定文件到指定版本时,需要查看该文件有多少个版本可以回滚时,可以使用git log filename命令
删除文件
git rm
如果我们使用普通的命令,rm删除文件,git状态会提示你删除了文件,你只需要使用add重新提交一次就可以了。
查看提交历史
git reflog
git基本组成框架:Workspace、Index / Stage、Repository、Remote
Workspace:开发者工作区,也就是你当前写代码的目录,它一般保持的是最新仓库代码。
Index / Stage:缓存区,最早叫Stage,现在新版本已经改成index,位于.git目录中,它用来存放临时动作,比如我们做了git add或者git rm,都是把文件提交到缓存区,这是可以撤销的,然后在通过git commit将缓存区的内容提交到本地仓库
Repository:仓库区,是仓库代码,你所有的提交都在这里,git会保存好每一个历史版本,存放在仓库区,它可以是服务端的也可以是本地的,因为在分布式中,任何人都可以是主仓库。
Remote:远程仓库,只能是别的电脑上的仓库,即服务器仓库。
git rm后恢复文件
git rm、git reset、git checkout
此方法仅限git rm,因为git rm会先将文件放入缓存区,且没有使用commit提交的情况下
首先使用git rm删除一个文件
在使用git reset重置所有缓存区操作
git reset
重置完成之后在使用git checkout命令将文件取消操作
git checkout d.c
可以看到文件又恢复了
如果已经提交了想恢复怎么办?
这里给一个方法,就是把当前目录全部提交一次,这样做是为了防止我们等下回滚的时候导致一些修改的文件被替换掉了,然后我们回滚到有那个文件的版本,将那个文件copy到别的文件目录,这个文件目录要是你记得的,然后在回滚到最新版本代码,在将那个文件copy回来,在提交进去。
git创建分支:git branch、git checkout
git切换分支:git checkout
git合并分支:git merge
git查看分支:git branch -a
git删除本地分支:git branch -D 分支名
git删除远程分支:git push origin --delete
关联远程仓库
git remote add origin url
git push推送到远程
git push -u origin master