栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Git与SVN

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Git与SVN

Git Git简介

Git 与 SVN版本控制器区别

git是分布式的版本控制系统,svn是集中式的版本控制系统
集中式与分布式区别:
    你的本地是否有完整的版本库历史!
    假设SVN服务器没了,那你丢掉了所有历史信息,因为你的本地只有当前版本以及部分历史信息。
    假设GitHub服务器没了,你不会丢掉任何git历史信息,因为你的本地有完整的版本库信息。你可以把本地的git库重新上传到另外的git服务商。
安装Git
# ubuntu安装git
sudo apt install git

配置用户信息

git config --global user.name "Your Name"
git config --global user.email "email@example.com"
​
"--global:配置全局。即这台机器所有的Git仓库都会使用这个配置"
创建版本库
版本库:repository。可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
​
# 创建一个空目录作为版本库
cd ~
mkdir learngit
cd learngit
​
# 将这个目录变成Git可以管理的仓库
git init
​
"新增的`.git`目录是Git来根曾管理版本库的。默认是隐藏的,可以通过`ls -a`查看"

添加文件到仓库

# 创建文件,写入内容
vim readme.txt
​
# 文件添加到仓库
git add readme.txt
​
# 文件提交到仓库
git commit -m "wrote a readme file"
" 使用命令git add ,注意,可反复多次使用,添加多个文件;使用命令git commit -m ,完成。"
时光机穿梭
# 修改文件内容
vim readme.txt
​
# 查看仓库当前的状态
git status
​
# 查看修改内容
git diff
​
# 文件添加到仓库
git add readme.txt
​
# 查看仓库当前的状态
git status
​
# 文件提交到仓库
git commit -m "add distributed"
​
# 查看仓库当前的状态
git status
版本回退
# 修改文件内容
vim readme.txt
​
# 文件添加到仓库
git add readme.txt
​
# 文件提交到仓库
git commit -m "append GPL"
​
# 查看提交历史
git log --pretty=oneline
"--pretty=oneline 每行显示一条commit"
​
# 回退到上一个版本
git reset --hard HEAD^
"Git中,HEAD代表当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^"
​
# 回退到指定版本
git reset --hard 
​
# 查看命令历史
git reflog
工作区和暂存区
工作区:电脑里看到的目录,如learngit。
版本库:工作区中有一个隐藏目录.git,这个是Git的版本库。其中包含暂存区与分支
​
git add:把提交的所有修改放到暂存区
git commit:一次性把暂存区的所有修改提交到分支
管理修改
每次文件的修改,如果不 git add 到暂存区,就不会加入到 commit 中
撤销修改
## 撤回工作区的文件
vim readme.txt

# 丢弃工作区的修改
git checkout -- readme.txt

## 撤回提交到暂存区的文件
vim readme.txt
git add readme.txt

# 暂存区的修改回退到工作区
git reset HEAD readme.txt

# 丢弃工作区的修改
git checkout -- readme.txt

## 撤回提交到版本库的文件
git reset --hard HEAD^
删除文件
vim test.txt
git add test.txt
rm test.txt
git status
​
# 版本库中删除文件
git rm test.txt
git commit -m "remove test.txt"
​
vim test.txt
git add test.txt
rm test.txt
git status
​
# 恢复误删的文件
git checkout -- test.txt
"git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。"
远程仓库
# 创建SSH Key
~目录中查找是否有.ssh目录。id_rsa:私钥  id_rsa.pub:公钥
ssh-keygen -t rsa -C "youreamil@example"
​
# GitHub配置
添加远程库
# 添加远程库
git remote add origin git@github.com:qingxuly/learngit.git
​
# 本地仓库推送到远程库上
git push -u origin master
"-u:Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。"
​
# 把本地master分支的最新修改推送至GitHub
git push origin master
​
# 查看远程库信息
git remote -v
​
# 删除orign,只是解除了本地和远程的绑定关系
git remove rm origin
从远程库克隆
登陆GitHub,创建新的仓库gitskills
​
# 克隆一个本地库
git clone git@github.com:qingxuly/gitskills.git
分支管理 标签管理 SVN SVN简介 SVN概念
repository(源代码库):源代码统一存放的地方

Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份

Commit(提交):当你已经修改了代码,你就需要Commit到repository

Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更
安装SVN
# ubuntu安装git
sudo apt install apt-get install subversion
SVN使用
# 文件checkout到本地目录
svn checkout svn_path local_path
​
# 版本库中添加新的文件
svn add file
​
# 改动的文件提交到版本库
svn commit -m "message" [-N] [--no-unlock] PATH
​
# 加锁/解锁
svn lock -m "message" [--force] PATH
svn unlock PATH
​
# 更新版本
svn update -r m PATH
svn update      # 更新到最新版本
svn -r 200 test.php     # 将文件还原到历史版本200
svn update test.php     # 文件更新到最新版本
​
# 查看文件或者目录状态
svn status PATH
"显示文件及子目录的状态,正常不显示"
"? 不在svn的控制中    M 内容被修改     C 发生冲突      A 预订加入到版本库      K 被锁定"
​
# 删除文件
svn delete PATH -m "注释内容"
svn delete test.php +   svn ci -m "message"     (推荐)
​
# 查看日志
svn log PATH
​
# 查看文件详细信息
svn info PATH       # 将修改的文件与仓库中最新版本比较
svn diff -r m:n PATH    # 版本之间对比
​
# 将两个版本之间的差异合并到当前文件
svn merge -r m:n path   # 一般会产生冲突,需要处理一下
​
# 版本库中添加文件夹
svn mkdir PATH
​
# 代码库URL变更
svn switch      # 更新工作副本到不同的URL
# https://www.cnblogs.com/dabaopku/archive/2011/05/21/2052820.html
​
# 解决冲突
svn resolved    # 移除工作副本的目录或文件的“冲突”状态

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/751027.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号