项目简介
- 版本控制工具:git
- 项目远程仓库: 码云
shell:git bash
谨以此纪念我的毕业设计完整流程
1.建立远程仓库
① 建立远程仓库的好处:能够帮助我们更好的管理代码,更安全。
② 我使用的是码云来托管我的代码,因为码云的私人仓库是免费的
③ 登录注册以后就可以看到如下界面
④ 为了更好的模拟真实的开发流程,我们建立一个组织并命名为iTravel
⑤ 新建项目,因为项目既有前端代码又有后台代码,这里我们命名为iTravel-fe,fe表明这是一个前端项目
设置语言,以及权限改为私有,然后创建
建立好远程仓库后,我们就可以通过远程仓库提供的https或者ssh地址在本地clone我们的代码
2.克隆项目到本地
① 因为git是分布式版本控制系统,所以每个机器都要自报家门(用户名和邮箱地址)
② 如果git采用https协议,每次pull,push都要输入密码,相当麻烦
③ 如果采用ssh协议,使用ssh秘钥,可以省去每次都要输入密码的问题
④ 公钥我们一般是给服务器的,通过在服务器授权中添加公钥,当我从远地仓库中下载项目的时候,在git clone xxx的时候,⑤ 服务器通过他所绑定的公钥来匹配我的私钥。如果匹配,则就可以正常下载,如果不匹配,则失败。
⑥ 大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个。
⑦ 打开git bash
⑧ 首先设置git的user name和email
⑨ 这是全局配置用户名和密码发方式
$ git config --global user.name "你的名字"
$ git config --global user.email "你的邮箱地址"
⑩ 如果你公司的项目是托管在gitlab上,如果你不进行单独的配置,会默认使用全局的配置
针对公司的项目,在项目的根目录下进行单独配置
$ git config user.name "你的名字"
$ git config user.email "你的邮箱地址"
注意!user.name和user.email后面都有一个空格,如果没有这个空格将会配置失败(踩过的第一个坑)
接下来在本机中生成公钥和私钥
$ ssh-keygen -t rsa -C "你的邮箱地址"
然后会在~/.ssh目录下生成三个文件
让我们使用ls命令查看 .ssh下的文件目录信息
$ ls ~/.ssh
id_rsa id_rsa.pub known_hosts
id_rsa是私钥,id_rsa.pub是公钥
接着使用cat命令查看公钥
$ cat ~/.ssh/id_rsa.pub
然后复制我们的公钥,进入项目>管理>部署公钥管理>添加个人公钥
粘贴我们刚才复制的公钥,输入信息
这样我们的ssh认证就完成了
那么我们终于可以使用git克隆代码到本地了
$ git clone ssh地址
下面介绍一些常用的Linux 命令
回到当前路径的上一层
$ cd ..
删除指定文件夹
$ rm -rf iTravel-fe
新建文件夹
$ mkdir iTravel-fe
打开文件夹
$ cd iTravel-fe
创建文件
$ vim test.html
键入信息以后,按esc切换到命令行,
输入:wq命令即可保存文件
:wq
git init
使用git init命令把当前目录变成git可以管理的仓库,并且会在根目录下创建一个.git的目录,这个目录是git用户跟踪管理版本库的,因此不要随意更改这个目录下的内容
$ git init
ls命令 ls -a命令 ls -al命令区别
使用 ls 命令显示当前目录下的文件和文件夹
$ ls
使用ls -a命令显示当前目录下的所有文件和文件夹,包括隐藏的.和..
$ ls -a
ls -al 显示当前目录下的所有文件及文件夹包括隐藏的.和..等并显示详细信息,详细信息包括大小,属组,创建时间
$ ls -al
将本地库与远程库关联起来
当我们在本地创建了一个仓库后,又想在github或者码云上创建一个仓库,并且让两个库进行远程同步,这样github上的仓库既可以作为备份,又可以让其他人通过该库进行协作,就键入下面的命令
$ git remote add origin git@gitxxxxxxxxxxxxx
接下来我们就可以将远程的master分支代码拉下来
$ git pull origin master
查看git状态
$ git status
查看文件的前后变化(工作区与暂存区)
$ git diff test.index
查看提交日志,显示从最近到最远的提交日志
查看文件的暂存区与分支变换(暂存区与分支)
$ git diff --cached
查看日志
$ git log
如果你觉得输出的日志信息太过烟花缭乱,尝试加上–pretty=oneline
$ git log --pretty=oneline
回退版本
在git中,我们一般用HEAD表示当前版本,对应的上一个版本就是HEAD^,上上个版本就是HEAD^^,如果回退到100个版本肯定很难受,直接用HEAD~100
使用git reset命令回退
$ git reset --hard HEAD^
回退到指定版本(commit id)
$ git rest --hard xxxxxxxx(此处替换成commit id)
版本号不必写全,git会自动查找,但是也不能写的太少
此时如果你想恢复到新版本,查看命令历史
$ git reflog
就可以看到最新版本的版本号
当文件修改后未提交到暂存区,将会回退到版本库一样的状态
当文件以及提交到暂存区,又做了修改,就会回退到添加到暂存区的状态
用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区
$ git reset HEAD index.html
然后再用checkout恢复工作区
添加文件
先明确几个概念
①工作区:我们电脑看到的目录
②暂存区:通过add命令添加到的位置
提交修改到暂存区(stage)
$ git add .
将提交到暂存区的提交到分支
$ git commit -am "test"
上传本地代码到远程服务器(设置推送到master分支)
$ git push --set-upstream origin master
删除文件
rm test.html
配置gitignore文件,设置哪些文件的变化不受git监控
vim .gitignore
编辑 gitignore
.DS_Store
/node_modules/
/dist/
touch命令创建一个长度为0的文件
$ touch .DS_Store
切换到其他分支
新建分支
$ git branch iTravel_v1.0
切换分支
$ git checkout iTravel_v1.0
组合命令:新建一个分支并切换到它上
$ git checkout -b iTravel_v1.0
查看分支
$ git branch
合并指定分支到当前分支
$ git merge dev
删除分支
$ git branch -d dev
撤销修改
注意一定要有–,否则就变成切换分支命令了
$ git checkout --index.html