svn、Git使用总结

SVN

集中式管理工具(Cornerstone与VisualSVN-server   地址: https://pan.baidu.com/s/1o9AsFAa 密码: htbk,  VisualSVN-server官网下载地址 https://www.visualsvn.com/server/download/)

1、部署svn服务端

(1)安装VisualSVN-server(就是windows平台的一个软件,双击安装就行了)

(2)安装好后打开软件,创建一个服务端的仓库,默认会有三个文件夹

1>  Trunk(主干)
目前项目正在开发的版本
2>  Tags(只做存储作用,不能在此文件夹下开发)
存放已经上线的重大版本
3>  Branches(分支)
当发生重大bug或者有新需求时

(3)创建用户,并设置权限

2、初始化代码仓库

(1)在本地创建一个文件夹FirstRepository用于存放代码

(2)cd到FirstRepository目录下,checkout服务器的代码仓库

svn checkout http://192.168.1.103/svn/FirstRepository --username=manager --password=manager

(3)checkout服务器的代码仓库后,在trunk目录下创建项目Text(注:不要勾选git,两个同时使用会冲突)

(4)将本地trunk目录下的文件Text添加到本地仓库

svn add Text

(5)将Text提交到服务器的代码仓库

svn commit -m "注释"

3、忽略掉一些不需要共享的文件

xcshareddata : 记录了远程仓库的地址
xcuserdata : 包含了 件夹的打开结构/当前 户停留在哪 个 件中/ 户打的 断点

服务端部署到此结束===============================

平时使用只需要checkout服务器的代码仓库到本地(仅需要做一次),每开发完一个模块或者晚上下班时commit,早上上班时update就行了

svn常用命令

svn checkout :下载服务器的代码到本地 (简写svn co)
svn commit :将改动的文件提交到服务器(简写svn ci)
svn update :更新服务器的代码到本地 (简写svn up)
svn add :向本地的版本控制库中添加新文件
svn delete、svn remove :从本地的版本控制库中删除文件(简写svn del、svn rm)
svn revert :撤销之前的一切修改
svn merge :将两个版本之间的差异合并到当前文件


// 示例
svn checkout  https://192.168.1.106/svn/Weibo/ 将服务器代码仓库的内容下载到命令行当前目录下
svn commit  -m “修改了User.m文件”  就将命令行所在路径中所有改动过的文件提交到服务器
svn add /Users/Desktop/workspace/Weibo/branches/User.m  添加User.m文件到本地版本控制库中(也可以添加文件夹)
svn delete /Users/Desktop/workspace/Weibo/branches/User.m 移除文件
svn update [PATH] 将服务器的代码更新到本地,如果不写路径就是全部更新
svn update -r 版本号 将代码恢复到某个版本
 

常见问题:

Conflict : 冲突

(p) postpone :两者同时存在

(mc) mine-conflict : 当出现代码冲突的时候,使用我的代码。覆盖服务器代码

(tc) theirs-conflict :当出现代码冲突的时候,使用服务器的代码。覆盖本地代码

<<<<<<< .mine
 该位置是我的代码
=======

服务器的代码

>>>>>>> .r11

版本回退

1、svn update -r 2.0 先将代码更新到想要回退的版本(这里以2.0为例)

2、做些无痛痒的修改,然后commit覆盖掉服务器的代码就行了

注:svn一定要经常update,尽量避免冲突

=========================================================================

Git

Git核心概念

工作区(Working Directory):仓库文件夹里除.git目录以外的内容

版本库(Repository):.git目录,用于存储记录版本信息

暂缓区(stage)

分支(master):git自动创建的第一个分支

HEAD指针:用于指向当前分支

Git工作流程

Git工作原理

git add :把文件修改添加到暂存区

git commit :把暂存区的所有内容提交到当前分支

   

安装GIT

查看Git版本

git version

如果系统没有安装Git可以通过以下方式下载安装:

Windows:https://git-scm.com/download/win

设置GIT

在我们能用Git工作之前,我们需要做个一次性的配置。为了Git能跟踪到谁做了修改,我们需要设置你的用户名,密码。

git config --global user.name "your_username"
git config --global user.email your_email@domain.com

设定push的默认值为simple(详情请参考:https://www.cnblogs.com/x_wukong/p/6837792.html)

git config --global push.default simple

到此配置完成,如果换电脑,需要重新配置。

创建一个远程的代码仓库(GitHub)

创建本地仓库

1、创建一个文件夹作为本地仓库,cd到该目录下,clone刚才在GitHub上创建的代码仓库

git clone github代码仓库地址

然后在包含.git 文件夹(本地代码仓库)的路径下初始化项目。

2、如果以前有项目,在已有的项目目录下 git init创建本地仓库

git remote add origin 远程仓库名称  (添加远程仓库,也就是将本地仓库与远程仓库关联)
关联后,使用命令git push -u origin master第一次推送master分支的所有内容

添加文件

git add .  添加目录下所有文件
git add myFile, otherFile 添加特定文件

提交文件

git commit -m "本次提交注释"
git status 查看当前目录下文件的加载状态

创建分支

git checkout -b new_feature 创建并切换到新建的分支
或者先创建分支,然后手动切换到分支
git branch new_feature 创建分支
git checkout new_feature 切换到分支

git branch查看当前项目的所有分支(本地)

// 将本地的dev分支与远程仓库的dev分支关联
git branch --set-upstream dev origin/dev 

合并分支(新的分支需要先add,commit,push)

首先需要移动到主分支
git checkout master
然后合并分支
git merge new_branch

合并完成后查看下文件,如果没问题就可以删除分支了
git branch -d new_branch

删除一个分支

git branch -d new_branch 把分支合并到主分支,然后删除分支
git branch -D new_branch 直接删除分支

分支相关的命令

查看远程分支:git branch -a 
查看本地分支:git branch

创建分支:git branch <name>
切换分支:git checkout <name>

创建+切换(本地)分支:git checkout -b <name>
将本地分支推送到远程服务器:git push --set-upstream origin <name>

从远程服务器拉取online分支与本地的online分支merge:git pull origin online:online
如果本地当前分支就是online的话:git pull origin online

从远程仓库拉取一个本地不存在的分支:git checkout -b 本地分支名 origin/远程分支名

合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>

使用命令git branch –set-upstream ; test为创建的分支
$ git branch --set-upstream debug origin/test :将本地分支debug与远程test分支关联

版本回退

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

查看历史版本 
git log  查看提交历史
git reflog 
git版本号:a6a87425f2939e874b57591c53d597a73f0a52c7

回退到上一个版本:git reset ––hard HEAD^
回退到上上一个版本:git reset ––hard HEAD^^
回退到上N个版本:git reset ––hard HEAD~N(N是一个整数)
任意版本之间切换:git reset ––hard 版本号(版本号用前7位即可)

上面这些操作只是将本地的代码仓库回退,如果想要回退远程的代码仓库:
一、如果是自己的远程分支
git push -f   强推覆盖掉远程代码仓库的代码就行了
注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支

二、如果是共享的远程分支
详情见:http://blog.csdn.net/fuchaosz/article/details/52170105

GIT常用命令

git help :git指令帮助手册
git config :git的配置信息相关(修改的是.git/config文件)
配置用户名:git config “user.name” 用户名(用于跟踪修改记录)
配置邮箱:git config “user.email” 邮箱(用于多人开发间的沟通)
查看配置信息:git config –l
编辑配置信息:git config –e(用vim编辑,:wq是退出vim编辑器)
将此设置应用到整个系统中:git config ––gloabal
查看某个文件的状态:git status 文件名
查看当前路径所有文件的状态:git status
查看某个文件的修改日志:git log 文件名
查看当前路径所有文件的修改日志:git log

查看某个文件的最新改动的地方:git diff 文件名
查看当前路径所有文件最新改动的地方:git diff

在当前路径初始化仓库:git init
在其他路径初始化仓库:git init 仓库路径

保存某个文件到暂缓区:git add 文件名
保存当前路径的所有文件到暂缓区:git add .

提交某个文件到分支:git commit -m ”注释” 文件名
保存当前路径的所有文件到分支:git commit -m ”注释”

回退到上一个版本:git reset ––hard HEAD^
回退到上上一个版本:git reset ––hard HEAD^^
回退到上N个版本:git reset ––hard HEAD~N(N是一个整数)
回退到任意一个版本:git reset ––hard 版本号(版本号用7位即可)

git reflog :查看指令使用记录(能够查看所有的版本号)
git rm:删除文件(删完之后要进行commit操作,才能同步到版本库)

下载远程仓库到当前路径:git clone 仓库的URL
下载远程仓库到特定路径:git clone 仓库的URL 存放仓库的路径

git pull:下载远程仓库的最新信息到本地仓库
(git pull 可以从远程库中获取某个分支的更新,再与本地指定的分支进行自动merge(即使本地不存在这个分支))
git push:将本地的仓库信息推送到远程仓库(默认只推送当前分支,这叫做simple方式)
git push origin :将当前分支推送到origin主机的对应分支。
git checkout -- file:丢弃工作区的修改,就是让这个文件回到最近一次git commit或git add时的状态,“--” 不能省略。

git remote add <远程仓库简称> <远程仓库地址> :添加远程仓库
git remote -v : 查看远程仓库信息
git remote rm origin : 与名为origin的远程仓库解除关联




 

文件的状态:

'A' 被添加到本地代码仓库
'C' 冲突
'D' 被删除
'I' 被忽略
'M' 被修改
'R' 被替换
'X' 外部定义创建的版本目录
'?' 文件没有被添加到本地版本库内
'!' 文件丢失或者不完整(不是通过svn/git命令删除的文件)
'~' 受控文件被其他文件阻隔

git多人开发先commit,再pull,最后push原因:

先commit把代码提交到本地仓库,然后将远程服务器的代码拉过来与本地仓库的代码合并,看有没有冲突,如果有的话就解决冲突,然后add,commit,push

大神网站:

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

转载于:https://my.oschina.net/yejiexiaobai/blog/1626135

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值