赞
踩
提示:本文主要介绍Git命令,实现基本的代码托管。
GIT,全称是分布式版本控制系统,git通常在编程中会用到,并且git支持分布式部署,可以有效、高速的处理从很小到非常大的项目版本管理。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
简单来说git就是我们将代码提交到仓库中的一个工具,托管代码到远程,分布式托管,避免本机磁盘损坏等原因造成不可挽回的局面。
官方网站:https://github.com
是全球最大的Git代码托管平台,目前收归微软旗下
官网网站:https://gitee.com
开源中国旗下的Git代码托管平台,在国内还是很方便的
官方网站:https://about.gitlab.com
GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库
其他还有:腾讯开发者平台,阿里云Code托管平台,百度效率云等
在Windows上使用Git,可以从Git官网直接,然后按默认选项安装即可
安装完成之后鼠标右键只要出现 git bash here
菜单即说明安装成功,下面是打开的界面
1.安装git,具体前面git概述已经讲到
2.注册gitee的账号(或其他平台账号),修改个人空间地址,绑定邮箱。
3.全局配置用户名和邮箱
git config --global user.name [你的码云账号]
git config --global user.email [你的码云验证邮箱]
# 查看用户名
git config user.name
# 查看邮箱
git config user.email
4.配置密钥对:生成公钥和私钥,用于上传代码时的安全验证
在git bash
里执行命令ssh-keygen
一路回车,就可以生成密钥对,默认密钥对是存放在(/c/Users/[主机用户名]/.ssh/)
,.pub就是公钥,另外一个是私钥
,这两个文件不要动!
到线上(gitee或其他平台)打开设置->安全设置->ssh公钥,把本地的公钥文件全选复制进来,输入登录密码,就配置成功了
5.创建本地仓库
# 在本地创建一个项目文件夹,执行 git init 初始化一个本地git仓库
# 这时项目里会多出一个.git目录(这个目录默认是隐藏的,这里就是用来存放文件快照的地方)
git init
6.创建一个线上仓库
7.将本地仓库和线上仓库建立关联:
git remote add origin [线上仓库的SSH地址]
8.常用提交代码步骤
# 代码添加到暂存区
git add -A (也可以 git add [文件名] 来单独添加某一个文件)
# 代码提交到本地仓库
git commit -m '[本次提交的备注信息]'
# 代码推送到远程
git push origin master
# 查看本地所有分支 git branch # 查看本地和远程所有分支 git branch -a # 新建一个分支,但仍然停留在当前分支 git branch [分支名] # 新建一个分支,并切换到该分支 git checkout -b [分支名] # 在master分支上新建lianxi远程分支,lianxi分支代码与master保持一致 git push origin master:lianxi # 删除本地分支[只能删除merge的分支,也就是合并的分支] git branch -d [分支名] # 强制删除本地分支[使用时注意是否已经是合并的分支,并且可以废弃] git branch -D [分支名] #删除远程分支 git push origin --delete [分支名] # 切换分支 git checkout [分支名]
git pull
# git pull是git fetch后跟git merge FETCH_HEAD的合并操作
git fetch origin master # 从远程主机的master分支拉取最新内容
git merge FETCH_HEAD # 将拉取下来的最新内容合并到当前所在的分支
# 直接拉取本地分支的远程代码
git pull origin [本分支名]
# 拉取其他分支代码:例如下面新建一个分支,切换到新分支之后直接可以将master的远程代码拉取下来
git pull origin master
# 远程主机的某个分支的更新取回,并与本地指定的分支合并,完整格式可表示为:
git pull <远程主机名> <远程分支名>:<本地分支名>
假如我们现在在dev分支上,刚开发完项目,执行了下列命令
git add -A
git commit -m '本次提交了XXX'
git push origin dev
然后我们要把dev分支的代码合并到master分支上 该如何?
首先切换到master分支上
git checkout master
如果是多人开发的话 需要把远程master上的代码pull下来,如果是自己一个开发就没有必要了,为了保险期间还是pull
git pull origin master
然后我们把dev分支的代码合并到master上
git merge dev
然后查看状态
git status
得到如下信息
On branch master
Your branch is ahead of 'origin/master' by 12 commits.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
上面的意思就是你有12个commit,需要push到远程master上
执行下面命令即可
git push origin master
这样就完成了
# 显示当前分支的版本历史
git log
版本回退
# 版本回退最好要备份一份文件,以往无法找回丢失文件
# commit后面的字符串即为版本号,我们可以使用 git reset --hard [版本编号] 进行历史回退
git reset --hard '[之前填写的版本编号]'
# 版本回退
git reset --hard HEAD^^^^^^^ # ^的个数代表回退到之前多少的版本
git reset HEAD~X # X代表你要回退的版本数量,是数字
# 回退到和远程版本一样
git reset --hard origin/master // origin代表你远程仓库的名字,master代表分支名
详细请看gitee介绍版本回退:https://gitee.com/help/articles/4195#article-header2
# 克隆仓库代码
git clone [显示仓库地址]
# 例如
git clone https://gitee.com/layui-vue/layui-vue.git
# 查看远程仓库信息
git remote
# 显示所有的远程主机
$ git remote -v
# 列出某个主机的详细信息
$ git remote show [主机名]
git init # 初始化仓库 git config # 配置用户信息 git remote add origin [线上仓库地址] # 新增远程仓库的关联 git remote rm origin # 删除远程仓库的关联 git add -A # 添加到暂存区 git commit -m '[本次提交的备注信息]' # 代码提交(每一次commit都会有一个新的版本号) git push origin [分支名] # 推送到远程仓库 git status # 查看当前仓库的状态 git log # 查看日志(每一个commit在这里都能查看到,而且commit后面的随机字符串就是版本号),按字母q 退出log git reset --hard [要回退的版本号] # 回退到之前的某一个版本 git clone [线上仓库地址] # 把线上仓库代码克隆到本地 git pull origin [分支名] # 在已有的仓库基础上拉取某分支最新的线上代码,拉取之后直接合并 git fetch origin [分支名] # 在已有的仓库基础上拉取某分支最新的线上代码,拉取之后由用户决定是否合并 git branch -a # 查看分支 git branch newBranch # 基于当前分支创建newBranch分支 git branch -d myBranch # 删除myBranch分支 git diff tmp # 查看当前分支和tmp分支的区别 git merge tmp # 将tmp分支合并到当前分支
用于说明 commit 的类别,常用的7个标识。
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
看完本文就会发现,其实git的常用命令也就10多个,其他命令也不是必须记住的,需要的时候能查到就行。
当然如果还是不喜欢使用命令,可以使用Sourcetree,下载地址:https://www.sourcetreeapp.com/
这是一个Git代码管理的图形化工具,我觉得非常好用
当然本文只介绍了常用命令,如果需要学习更多可以看看廖雪峰老师的讲解:https://www.liaoxuefeng.com/wiki/896043488029600
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。