一、首先比较svn与git的区别
比较内容 | svn | git |
分布式 | 不是 | 是 |
在线阅读 | 不支持 | 支持,并且可以在线编辑 |
完整性 | 一般 | 优秀 |
离线工作 | 不能看日志 | 没问题 |
存储方式 | 按文件 | 按元数据 |
分支 | 一个完整的目录 | 随意开辟无限个分支 |
其中SVN是集中式版本控制系统,Git是分布式版本控制系统,其工作流程如下:
集中式版本控制系统
分布式版本控制系统
如今CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。同样是开源而且免费的SVN修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制系统。
而分布式版本控制系统有BitKeeper(促使2005年linus花两周时间写出了Git,一月内linux系统源代码就由Git管理),还有类似Git的Mercurial和Bazaar等。这些分布式版本控制系统各有特点,但最流行的依然是Git,因为它最快,并且使用简单。
二、Gitlab常用指令
2.1 Gitlab启动、停止与重启
sudo gitlab-ctl start 启动Gitlab
sudo gitlab-ctl stop 停止Gitlab
sudo gitlab-ctl restart 重启Gitlab
2.2 Git常用指令
git branch 查看本地所有分支
git status 查看当前状态
git commit 提交
git branch -a 查看所有的分支
git branch -r 查看本地所有分支
git commit -m "注释" 提交并且加注释
git remote add origin git@192.168.1.162:ndshow
git push origin master 将文件给推到服务器上
git remote show origin 显示远程库origin里的资源
git push origin master:refs/for/master 即是将本地的master分支推送到远程主机origin上的对应
master分支,origin 是远程主机名,第一个master是本地分支名,第二个master是远程分支名。
git checkout --track origin/dev 切换到远程dev分支
git branch -D master develop 删除本地库
develop git checkout -b dev 建立一个新的本地分支
dev git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add . 把工作时的所有变化提交到暂存区,包括文件内容修改以及新文件,但是不包括删除的文件
git rm 文件名(包括路径) 从git中删除指定文件
git clone git@192.168.1.162:jjf/test.git 从本地服务器上将代码给拉下来
git config --list 看所有用户
git ls-files 看已经被提交的
git rm [file name] 删除一个文件
git commit -a 提交当前repos的所有的改变
git add [file name] 添加一个文件到
git index git commit -v 当你用-v参数的时候可以看commit的差异
git commit -m "commit的信息" 添加commit信息
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暂存的更新
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm --cached a.a 移除文件(只从暂存区中删除)
git commit -m "remove" 移除文件(从Git中删除)
git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
git diff --cached 或 git diff --staged 查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来
2.3 远程仓库相关命令
git clone git://github.com/jquery/jquery.git 检出仓库
git remote -v 查看远程仓库
git remote add [name] [url] 添加远程仓库
git remote rm [name] 删除远程仓库
git remote set-url --push[name][newUrl] 修改远程仓库
git pull [remoteName] [localBranchName] 拉取远程仓库
git push [remoteName] [localBranchName] 推送远程仓库
2.4 版本操作相关命令
git tag 查看版本
git tag [name] 创建版本
git tag -d [name] 删除版本
git tag -r 查看远程版本
git push origin [name] 创建远程版本(本地版本push到远程)
git push origin :refs/tags/[name] 删除远程版本