Git是分布式本地管理
官方工具下载地址
淘宝镜像下载地址,这个比较快
无脑安装就行,安装后git会在本地搭一个小型的私人版本管理仓库,跟svn不同,svn是你改了就提交,版本退回的也是提交上去的版本,git是你先提交到本地电脑的仓库,这个仓库能够提供版本记录功能,等你测完出了bug,只需要回退本地的版本就行,线上的版本跟你一点关系都没有
svn可以自己搭一个服务器,git也行,但那是因为svn没有大公司提供服务,而git有大名鼎鼎的github,这是个外国的服务器,打开特别的慢,但是有很多开源的大佬可以下载很多代码下来学习,并且在github创建私人项目,是不能不公开的,想要私人查看需要付费,于是可以选择码云gitee,账号用github登陆,打开快,可以私有化项目,每个人有免费的1G的空间,更大就付费,很良心
git和github和gitee有什么关系
git是一个工具,这个工具配合git服务器使用,git服务器是哪个公司的跟git一点关系没有,github是外国的git服务器,gitee是国内的git服务器,gitee可以用github账号登陆
创建github账号
如果你要用码云也要去github创建账号,我就不写创建了,就是填填邮箱而已,百度
绑定密钥
svn是账号密码就可以操作的,重复操作只要记住密码就行,git工具不行,每次操作都要账号密码,github 和 gitee需要本地密钥才能实现记住密码的功能
打开cmd命令行
# 名字是注册的github名字
git config --global user.name "pdt"
# 邮箱
git config --global user.email "799738313@qq.com"
# 查看git配置
git config --list
# 生成密钥
ssh-keygen -t rsa -C "799738313@qq.com"
然后去C:user用户名.ssh中找到id_rsa.pub文件
用notepad++ 打开并复制公钥(用记事本打开可能会添加十六进制字符)
然后打开github的配置页面,或者码云的配置页面,都是点击头像有个setting,设置,有个ssh配置,因为我有两个电脑,所以就配置了两个
创建项目
创建项目就不哔哔了,百度
下拉代码
复制创建好的项目的SSH链接,记住是SSH链接,还有个https链接,别用,问就是别用
然后鼠标右键,点击Bash Here
在弹出的git命令窗口上
git clone 刚才的ssh地址,回车
下拉的文件会有个.git
的隐藏文件就可以了,git默认是没有可视化助手的,想要提交文件右键文件,重新打开git命令工具
# 把文件添加到缓存,主要这个点一定要写
git add .
# 情况缓存区,主要这个点一定要写
git rm -r --cached .
# 把文件提交到本地仓库
git commit -m "本次提交内容备注"
# 提交线上服务器
git push
# 更新别人的代码
git pull
#查看仓库当前的状态
git status
# 查看和git版本库有什么不同,可以查看修改了什么内容,查看difference
git diff
# 查看提交日志
git log
# 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:
git log --pretty=oneline
# 用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
# 回退到上一个版本
git reset --hard HEAD^
# 回退到指定版本
git reset --hard commitId(具体版本的id)
git还有个远程分支和本地分支
# 查看本地分支
git branch
# 查看远程分支
git branch -r
# 可以查看本地分支对应的远程分支
git branch -vv
# 新建本地分支
git branch -b test
# 切换到某个分支
git checkout [name]
# 删除test分支
git checkout -d test
# 需要先回到主分支,再把test分支上同步到merge分支上
git merge test
# 自己新建的本地分支要提交服务器,服务器会自动创建新分支
git push --set-upstream origin [name]
# 切换远程的Release分支并在本地创建myRelease本地分支,同时切换到myRelease分支
git checkout -b myRelease origin/Release
# 提交只要绑定了远程分支,就能直接push,不需要写 origin [远程分支name]
git push
git的操作太乱了,知识点也太多,我只用过单人开发的模式,无分支,也不需要回退什么版本,而且我也没有用命令去敲,出了错误修到脑壳疼,同样建议用带有GIT/SVN的编辑工具进行可视化操作
文件忽略
比svn的忽略容易多了,需要在一级目录下创建.gitignore
文件,写上忽略文件名就行
自动部署
就是每次提交后,会自动打包发布代码,这个没试过
搭一个git服务器
用不到,用到了再去研究